首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于整数和浮点性能的SSE4和SSE2 --哪个更快?

关于整数和浮点性能的SSE4和SSE2 --哪个更快?
EN

Stack Overflow用户
提问于 2013-08-24 19:28:15
回答 1查看 1.3K关注 0票数 4

虽然您通常在CPU上获得比浮点性能更好的整数算术性能,但是否有人能澄清SIMD versions.For实例的情况:

代码语言:javascript
复制
 __m128i _mm_mul_epi32(__m128i a, __m128i b);
//(multiplies 2 integer vectors)

相对于:

代码语言:javascript
复制
__m128 _mm_mul_ps(__m128 a , __m128 b );
//(multiplies 2 float vectors)

这会产生更高的性能吗?(假设机器具有SSE4功能),我这么说,是因为我根据SSE2指令编写了自己的小数学库,我不知道是否应该继续使用__m128i。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-24 22:25:02

让我展示一下我第一个回答这些问题的地方:英特尔内在指南在线。您提供了内在的,它告诉您它做了什么,并通过Haswell (很快还包括Broadwell)处理器为Nehalem提供了延迟和吞吐量。以下是研究结果:

_mm_mul_ps

代码语言:javascript
复制
                Latency    Reciprocal throughput
Haswell         5          0.5
Ivy Bridge      5          1
Sandy Bridge    5          1
Westmere        4          1
Nehalem         4          1

_mm_mul_epi32

代码语言:javascript
复制
                Latency    Reciprocal throughput
Haswell         5          1
Ivy Bridge      3          1
Sandy Bridge    3          1
Westmere        3          1
Nehalem         3          1

较低的延迟和交互吞吐量更好。从这些表格中我们可以得出结论:

  • 除了哈斯韦尔,_mm_mul_epi32的延迟小于_mm_mul_ps
  • 在Haswell上,延迟是一样的,
  • 除了哈斯韦尔的吞吐量是一样的,
  • 在Haswell上,_mm_mul_ps的吞吐量是_mm_mul_epi32的两倍。

哈斯韦尔的吞吐量是唯一令人惊讶的。

如果您希望获得前Nehalem处理器和/或AMD处理器的结果,请参阅Agner的指令表手册或运行他的测试程序,这是他用来测量延迟和吞吐量的方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18422302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档