使用SSE / AVX在Ivy Bridge上进行最大SIMD整数乘法?

有人能够告诉我怎样才能算出最大数量的32位无符号整数乘法,我可以通过SSE / AVX使用SIMD在Ivy Bridge CPU上同时完成这些操作?

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

另外,我不确定它是否仅仅关注寄存器的数量,或者是否需要查看CPU的端口。 看起来像端口0和端口5可以处理SSE整数ALU?


每个时钟可以执行一次pmulld = 4次乘法。

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

没有这样的可能。 当然,你可以把8个整数放在一个ymm寄存器中,但是你会被卡住。 你需要做一些有用的指令在AVX2中。


正如你可以在这里看到的:

  • 长整型例程可以从SSE中受益吗?
  • SSE乘以2个64位整数
  • 目前没有解决方案来改善长整数与SSE或AVX的乘法。

    链接地址: http://www.djcxy.com/p/85657.html

    上一篇: Maximum SIMD integer multiplications on Ivy Bridge using SSE/AVX?

    下一篇: FMA3 in GCC: how to enable