知识卡片

SIMD单指令多数据的并行本质

专业/工作 · 552

内容

SIMD指令让一条指令同时处理多个数据,属于数据层面的并行——CPU把一个宽位宽寄存器(如512位的ZMM)切成多个小整数或浮点数同时参与同一次运算,而不是像多核并行那样让多条不同的指令流各自独立执行。这类指令特别适合图像、视频、压缩、哈希这类”同一套运算逻辑要在大量数据上重复执行”的场景,因为并行的瓶颈从”指令调度开销”变成了”数据本身能不能被打包进一个寄存器”。发散:SIMD和多核并行不是互斥关系而是正交的两个维度——真正压榨CPU算力的做法是先用多核把任务拆到不同线程,再让每个线程内部用SIMD压榨单核算力,两者叠加起来才是硬件性能的真正上限。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第4章《存储加速》