C SIMD版本检查
我使用的是英特尔Core2Duo E4500处理器。它应该有SSE3,SSSE3设施。但是如果我尝试在程序中使用它们,它会显示以下错误“SSE3指令集未启用” 有什么想法吗?用于检查可用的指令集 如果您使用的是Visual Studio,则在C SIMD版本检查,c,gcc,simd,C,Gcc,Simd,我使用的是英特尔Core2Duo E4500处理器。它应该有SSE3,SSSE3设施。但是如果我尝试在程序中使用它们,它会显示以下错误“SSE3指令集未启用” 有什么想法吗?用于检查可用的指令集 如果您使用的是Visual Studio,则在C/C++->code Generation->Enable Enhanced Instruction Set中有一个选项 下面是如何在中启用它 从以上链接: -msse3 -mssse3 尝试添加此gcc命令行选项: -march=core2 -msse
C/C++->code Generation->Enable Enhanced Instruction Set
中有一个选项
下面是如何在中启用它
从以上链接:
-msse3
-mssse3
尝试添加此gcc命令行选项:
-march=core2 -msse3
对浮点操作启用sse优化可能也是一个好主意:
-mfpmath=sse
在Linux上,如果您在执行代码的同一台机器上编译,那么可以查看
cat/proc/cpuinfo输出的标志字段,使用任何最新的gcc,您应该能够使用-march=native
来利用所有CPU功能。如果您在asm
中使用了不受支持的指令,那么在编译过程中它应该会告诉您 你能澄清一点吗,你的程序是什么,你能访问源代码吗?如果是,哪个编译器?…哪个编译器选项?我正在使用gcc4.4.1编写c程序。请提供更多信息。甚至是一个例子。您如何“使用”sse指令(汇编、编译器指令等)?您使用什么编译器选项,是谁发出错误?(复制粘贴用于编译任何操作的命令行)cat/proc/cpuinfo给出SSSE3,但它不显示SSSE3,但同样对于SSSE3,它也显示SSSE3指令集未启用。海报肯定是在尝试编写一个程序,该程序将在运行时选择是否使用SIMD指令?使用CPU-Z可以让人检查他们的硬件,但对于编程使用是无用的。@Edmund:答案被接受了;所以我认为可以肯定地说,这就是海报想要的。