是否有任何好的 C/C++ 教程或示例来学习英特尔 SSE 和 AVX 指令?
我在 Microsoft MSDN 和 Intel 网站上发现很少,但从基础知识了解它会很棒..
是否有任何好的 C/C++ 教程或示例来学习英特尔 SSE 和 AVX 指令?
我在 Microsoft MSDN 和 Intel 网站上发现很少,但从基础知识了解它会很棒..
对于有视觉倾向的 SIMD 程序员,Stefano Tommesani 的网站是 x86 SIMD 编程的最佳介绍。
http://www.tommesani.com/index.php/simd/46-sse-arithmetic.html
这些图表仅针对 MMX 和 SSE2 提供,但是一旦学习者精通 SSE2,就可以相对容易地继续阅读正式规范。
以 A 到 M 开头的 Intel IA-32 指令
以 N 到 Z 开头的 Intel IA-32 指令
此外,对于英特尔 SIMD 程序员来说,了解 SSE2 代之外的指令所需的最低架构也很重要。
在维基百科上按世代浏览:
在单个页面上搜索给定的英特尔 SIMD 助记符(通过文本搜索):
这里有一个很好的介绍
此外,如果您安装了Microsoft DirectX SDK,则来自 xnamath 的源代码有很多使用 sse 内在函数的矢量/矩阵操作(检查 sdk 包含文件夹、xnamath.h、xnamathconvert.inl、xnamathmatrix.inl ...)
Apple 的开发者网站上有一些好东西,例如SSE Performance Programming。
您可能会发现查看如何将 SIMD 应用于某些常见算法的示例很有用。在 2011 年游戏开发者大会上,英特尔发表了一个名为“热点、FLOPS 和 uOps:To-the-Metal CPU 优化”的演讲,试图展示游戏中常见算法的 SIMD。演讲提到了一些英特尔示例代码,展示了如何将 AVX 应用于布料计算。