【问题标题】:Reference manual/tutorial for SIMD intrinsics? [closed]SIMD 内在函数的参考手册/教程? [关闭]
【发布时间】:2011-10-15 00:48:48
【问题描述】:

我正在研究使用这些来提高某些代码的性能,但是对于 *mmintrin.h 标头中定义的函数似乎很难找到好的文档,有人可以为我提供指向这些好的信息的指针吗?

编辑:对如何开始的非常基本的教程特别感兴趣。

【问题讨论】:

  • ?关门了??为什么???这个问题不相关吗……答案(给出的2个)没有帮助吗……

标签: simd intrinsics


【解决方案1】:

http://software.intel.com/en-us/articles/intel-intrinsics-guide 有一个方便的英特尔内部指南,适用于 Mac/Linux/Windows - 它涵盖了从 MMX 到各种风格的 SSE 到 AVX2 的所有英特尔 SIMD 内容等。

您还可以从Intel获取以下PDF:

  • 英特尔® 64 和 IA-32 架构软件开发人员手册,第 2A 卷:指令集参考,A-M (253666-021)

  • 英特尔® 64 和 IA-32 架构软件开发人员手册,第 2B 卷:指令集参考,N-Z (253667-021)

  • 英特尔® SSE4 编程参考 (D91561-001)

更新

现在有一个online version of the intrinsics guide,因此您不再需要安装任何东西,而且它始终是最新的。

【讨论】:

  • 非常有用,但我花了一些时间来弄清楚如何让这个东西在 Linux 上运行。我第一次看到文件名中包含空格和括号的 shell 脚本。
  • 英特尔内部指南对初学者来说晦涩难懂且毫无用处。有没有更适合教学和初学者的东西(可能有一些 hello world 示例)?
【解决方案2】:

这是我找到的关于 MMX/SSE 编程的最佳介绍。 (我已经为 SSE2 编程了 5 年,我仍然觉得这个教程在概念上是最清晰的。)

http://www.tommesani.com/Docs.html

这不是完整的说明列表;因此,一旦您准备好了解更多信息,请按照 @PaulR 的建议开始阅读英特尔内在函数指南。

要记住的重要一点是,MMX/SSE 在数据移动(随机排列或任意排列,或单个元素的更改)方面往往受到严格限制。这是 CPU 芯片设计的限制。分散收集说明仅在几年前添加,甚至可能在您客户的计算机上不可用。

MMX/SSE 有大量矢量化技巧,类似于 http://www.hackersdelight.org/ 规定的利用位并行操作的技巧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多