使用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或AVX的乘法。
链接地址: http://www.djcxy.com/p/85657.html上一篇: Maximum SIMD integer multiplications on Ivy Bridge using SSE/AVX?