Kir*_*sky 31 c++ optimization 64-bit visual-studio-2008 sse2
我已经在我的C++项目中添加了x64配置来编译我的应用程序的64位版本.一切看起来都很好,但编译器发出以下警告:
`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'`
Run Code Online (Sandbox Code Playgroud)
SSE2优化真的不适用于64位项目吗?
Kir*_*sky 42
似乎所有64位处理器都有SSE2.由于默认情况下编译器选项始终打开,因此无需手动将其打开.
来自维基百科:
SSE指令:最初的AMD64架构采用Intel的SSE和SSE2作为核心指令.SSE3指令于2005年4月添加.SSE2取代了x87指令集的IEEE 80位精度,可选择IEEE 32位或64位浮点数学.这提供了与许多其他现代CPU兼容的浮点运算.SSE和SSE2指令也已扩展为在8个新的XMM寄存器上运行.SSE和SSE2在现代x86处理器中以32位模式提供; 但是,如果它们用于32位程序,那么这些程序只能在具有该功能的处理器的系统上运行.这在64位程序中不是问题,因为所有AMD64处理器都具有SSE和SSE2,因此使用SSE和SSE2指令而不是x87指令不会减少可以运行x64程序的机器集.SSE和SSE2通常比传统x87指令,MMX和3DNow!的大多数功能更快,并且复制了它们的大多数功能.
小智 6
编译器选项 /arch:AVX 不适用于旧 CPU,因此您需要确保您的 CPU 支持它。当我不得不为不支持的旧 Xeon CPU 重新编译 1.12 张量流包时,我遇到了这个问题。
我已经打开了上面发布的 /arch:SSE2 (如 Kirill),但遇到了完全相同的问题。Microsoft 编译器发出警告 (INFO),表明此选项将被忽略。
Command line warning D9002 : ignoring unknown option '/arch:SSE2'
Run Code Online (Sandbox Code Playgroud)
根据 Microsoft 文档,我的理解是此选项仅在 x86 上可用,这对我来说也没有意义。
然而 MSDN 上说:
/arch:SSE and /arch:SSE2 are only available when you compile for the x86 platform.
Run Code Online (Sandbox Code Playgroud)
无论如何,SSE 是在 x64 上使用的。因此我现在删除了该选项。
归档时间: |
|
查看次数: |
22465 次 |
最近记录: |