SSE 4内存负载优化



当使用SSE指令/intrinsic时,比如对于256位寄存器,是否有人能够通过在下一个32字节块上使用预取指令或通过其他技术来减少从内存加载扩展寄存器所花费的时间?假设要加载的数据已经在内存中正确对齐。

有关x86 CPU性能的更多信息,请参阅x86标签wiki。硬件预取器非常擅长锁定顺序访问模式,因此通常不需要软件预取指令。

通常,对宽向量进行加载并将其解压缩到单独的整数寄存器中是不明智的。一旦您接触到一条缓存线,从它获得更多的负载是很便宜的,并且从L1缓存到寄存器的吞吐量通常不是问题。使用ALU指令将256b的负载解包为单独的32或64b整数只需要更多的指令,并且意味着您更有可能在ALU吞吐量上遇到瓶颈。

最新更新