SIMD SSE2装配说明

时间:2014-06-24 20:06:27

标签: c assembly simd sse2

我目前正在重写一个使用64位字来使用128位字的程序。我正在尝试使用英特尔的SIMD SSE2内在函数。我的新程序,使用SIMD内在函数,比我预期的速度快两倍,比原来慢了约60%。当我查看每个组件的汇编代码时,它们非常相似并且长度大致相同。但是,目标代码(编译文件)的时间延长了60%。

我还在两个程序上运行了callgrind,它告诉我每行有多少指令读取。我发现我的程序的SIMD版本对于相同的操作通常比原始版本中的指令读取更少。理想情况下,这应该发生,但它没有意义,因为SIMD版本需要更长的时间才能运行。

我的问题: SSE2内在函数转换为更多汇编指令吗? SSE2指令运行时间更长吗?还是有其他原因导致我的新程序如此之慢?

附加说明:我在C语言编程,在Linux Mint上编程,并使用gcc -O3 -march = native编译。

0 个答案:

没有答案