加载中...

SIMD(Single Instruction, Multiple Data,单指令多数据)是弗林分类法中的一类并行体系结构:一条指令同时作用于一组打包在宽寄存器中的数据元素,例如一条加法指令一次完成8对32位整数相加。
CPU提供专门的向量寄存器(如128位、256位、512位)和向量指令,数据以打包(packed)形式存放,运算单元按通道(lane)并行处理。程序可通过编译器自动向量化、内建函数(intrinsics)或汇编来利用SIMD。
SIMD广泛用于图像与视频编解码、音频处理、加密、字符串处理、物理仿真和深度学习推理等数据并行场景。主流指令集扩展包括x86的SSE、AVX系列,Arm的NEON与SVE,以及RISC-V的V扩展。
优点是以较小的硬件代价获得成倍的数据吞吐;缺点是要求数据规则排布,分支多、访存不规则的代码难以受益,宽向量单元还会带来功耗与降频问题。

登录 后参与讨论
暂无讨论,来发表第一条评论吧