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只需执行一条指令,即可完成多个计算操作,多个计算操作并行执行。