知识卡片

SIMD向量化包处理的代价权衡

专业/工作 · 1110.c

内容

延续[[指令级并行与SIMD的区别]]中”拆数据流”的思路,SIMD指令用更宽寄存器一次搬运更多数据,理论上能吃满处理器访存带宽,但报文里大量字段是8位、16位这种窄位宽,甚至描述符格式本身就不字节对齐——直接套用SIMD需要频繁做格式微调(如shuffle指令重排字节),这部分开销有时并不比省下的访存开销小。DPDK的应对是不强求一套代码打天下:同一网卡驱动往往实现多套收发函数,一套追求全功能(大包聚合、卸载特性等),一套专攻高性能(向量化路径),让用户依据场景取舍,而非让向量化复杂度拖累所有路径。

参考来源

《深入浅出DPDK》第7章《网卡性能优化》