SIMD

SIMD

SIMD 是 Single Instruction, Multiple Data,中文一般叫 单指令多数据流

它的核心意思很简单:

一条指令,同时处理多个数据。

比如普通标量加法一次只能做一个:

a[i] = b[i] + c[i];

如果不用 SIMD,CPU 可能是这样做:

  • 先算 b[0] + c[0]
  • 再算 b[1] + c[1]
  • 再算 b[2] + c[2]

但如果用了 SIMD,比如一个 128 位寄存器一次能放 4 个 int,那就可以一条加法指令同时算:

  • b[0] + c[0]
  • b[1] + c[1]
  • b[2] + c[2]
  • b[3] + c[3]

也就是“批量并行”。

所以 SIMD 特别适合这种场景:

  • 数组遍历
  • 向量加减乘除
  • 图像处理
  • 音视频处理
  • 矩阵运算
  • 机器学习里的底层数值计算
  • 字符串/字节批量比较

常见指令集有:

  • x86 上的 SSEAVXAVX2AVX-512
  • ARM 上的 NEON

你可以简单理解成:

  • 标量计算:一次处理 1 个数据
  • SIMD:一次处理一批数据
posted @ 2026-09-05 15:10  光風霽月  阅读(9)  评论(0)    收藏  举报