Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 汇编中的SIMD SSE2说明_C_Assembly_Simd_Sse2 - Fatal编程技术网

C 汇编中的SIMD SSE2说明

C 汇编中的SIMD SSE2说明,c,assembly,simd,sse2,C,Assembly,Simd,Sse2,我目前正在重写一个使用64位字的程序,以使用128位字。我正在尝试使用Intel的SIMD SSE2内部函数。我的新程序使用SIMD intrinsic,比我原先预计的速度快一倍时慢了约60%。当我查看它们各自的汇编代码时,它们非常相似,长度大致相同。但是,编译的目标代码文件要长60% 我还对这两个程序运行了callgrind,它告诉我每行有多少指令读取。我发现,与原始版本相比,我的程序的SIMD版本对于同一操作的指令读取量通常更少。理想情况下,这应该会发生,但这没有意义,因为SIMD版本需要更

我目前正在重写一个使用64位字的程序,以使用128位字。我正在尝试使用Intel的SIMD SSE2内部函数。我的新程序使用SIMD intrinsic,比我原先预计的速度快一倍时慢了约60%。当我查看它们各自的汇编代码时,它们非常相似,长度大致相同。但是,编译的目标代码文件要长60%

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

我的问题: SSE2内部函数是否转换为更多的汇编指令?SSE2指令是否需要更长时间才能运行?还是有其他原因导致我的新程序如此缓慢


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

您应该发布一些代码来演示这个问题。在接触SSE之前,请阅读本文。否则你将弊大于利。你运行了cachegrind,只查看了指令读取?我还应该看什么cachegrind?发布你的代码-如果我们能看到代码,SIMD noobs会犯很多常见的新手错误,很容易发现。