SIMD Program 高性能C++ SIMD编程
SIMD
计算机结构分类
- SISD:单指令流单数据流
- SIMD:单指令流多数据流
- MISD:多指令流单数据流(罕见)
- MIMD:多指令流多数据流
Intel x86-64 SIMD 指令集
- SSE/SSE2/SSE3/SSE4/SSE5指令集
- AVX/AVX2/AVX512指令集
SSE 16个128位寄存器
AVX 16个256位寄存器
AVX512 32个512位寄存器
AVX2/AVX512类型定义
- AVX2
__m256 单精度浮点型
__m256d 双精度浮点型
__m256i 整型 - AVX512
__m512 单精度浮点型
__m512d 双精度浮点型
__512i 整型
A:使用AVX512相比于AVX2的优势? - 寄存器变化,宽度加倍,数量加倍。
- AVX512性能较高,因为能够并行的指令数目增加。
SIMD优势
支持SIMD指令的CPU在设计时增加了一些专用的向量寄存器,这些专用的向量寄存器可以同时放入多个数据,CPU只需执行一条指令,即可完成多个计算操作,多个计算操作并行执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Writer-X!