Ivy Bridge上使用SSE/AVX的最大SIMD整数乘法

Maximum SIMD integer multiplications on Ivy Bridge using SSE/AVX?

本文关键字:SIMD 整数 AVX Bridge SSE Ivy      更新时间:2023-10-16

有人能告诉我如何通过SSE/AVX使用SIMD在Ivy Bridge CPU上同时计算32位无符号整数乘法的最大数量吗?

我知道AVX确实有256位寄存器用于乘法,但这是用于浮点的(AVX2引入了256位整数寄存器)。因此,我不太确定使用浮点寄存器进行整数乘法是否更好(如果可能的话)?

此外,我不确定这是否只取决于寄存器的数量,或者我是否需要查看CPU的端口。看起来端口0和端口5可以处理SSE整数ALU?

每个时钟可以进行一次pmulld=4次乘法运算。

因此,我不太确定使用浮点寄存器进行整数乘法是否更好(如果可能的话)?

这样的事情是不可能的。当然,您可以在ymm寄存器中放入8个整数,但随后就会陷入困境。你需要在AVX2中使用它们来做一些有用的事情。

如您所见:

  • 长整型例程可以从SSE中获益吗
  • 2个64位整数的SSE乘法

目前还没有改进长整数与SSE或AVX相乘的解决方案。