40

是否有任何好的 C/C++ 教程或示例来学习英特尔 SSE 和 AVX 指令?

我在 Microsoft MSDN 和 Intel 网站上发现很少,但从基础知识了解它会很棒..

4

4 回答 4

15

对于有视觉倾向的 SIMD 程序员,Stefano Tommesani 的网站是 x86 SIMD 编程的最佳介绍。

http://www.tommesani.com/index.php/simd/46-sse-arithmetic.html

这些图表仅针对 MMX 和 SSE2 提供,但是一旦学习者精通 SSE2,就可以相对容易地继续阅读正式规范。


以 A 到 M 开头的 Intel IA-32 指令

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf

以 N 到 Z 开头的 Intel IA-32 指令

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2b-manual.pdf


此外,对于英特尔 SIMD 程序员来说,了解 SSE2 代之外的指令所需的最低架构也很重要。

在维基百科上按世代浏览:

在单个页面上搜索给定的英特尔 SIMD 助记符(通过文本搜索):


于 2014-04-10T07:07:34.257 回答
4

这里有一个很好的介绍

代码项目 SSE

此外,如果您安装了Microsoft DirectX SDK,则来自 xnamath 的源代码有很多使用 sse 内在函数的矢量/矩阵操作(检查 sdk 包含文件夹、xnamath.h、xnamathconvert.inl、xnamathmatrix.inl ...)

于 2012-12-01T21:12:35.873 回答
3

Apple 的开发者网站上有一些好东西,例如SSE Performance Programming

于 2012-11-27T08:54:34.853 回答
2

您可能会发现查看如何将 SIMD 应用于某些常见算法的示例很有用。在 2011 年游戏开发者大会上,英特尔发表了一个名为“热点、FLOPS 和 uOps:To-the-Metal CPU 优化”的演讲,试图展示游戏中常见算法的 SIMD。演讲提到了一些英特尔示例代码,展示了如何将 AVX 应用于布料计算

于 2014-02-21T00:45:17.763 回答