我已经添加64配置到我的C ++项目编译我的应用程序的64位版本。一切看起来正常,但编译器会发出如下警告:

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'`

有SSE2优化真的不适用于64位的项目?

有帮助吗?

解决方案

好象是所有的64位处理器具有SSE2。由于编译器选项总是接通缺省无需手动开机。

维基百科

  

<强> SSE指令:采用Intel的SSE和SSE2作为核心指令的原始AMD64架构。在2005年4月加入SSE3指令SSE2取代的x87指令集的IEEE 80位精度与任一IEEE 32位或64位浮点数学的选择。这提供了许多其他现代兼容的CPU浮点运算。该SSE和SSE2指令也已经扩展到八个新的XMM寄存器操作。 SSE和SSE2是在现代x86处理器的32位模式下可用;但是,如果他们在32位程序中使用,这些程序只能在系统与具有该功能的处理器工作。这不是64位程序的问题,请所有AMD64处理器已经SSE和SSE2,因此,使用SSE和SSE2指令代替的x87指令不减少的套机在其x64程序可以运行。 SSE和SSE2一般都比较快,复制大多数的传统的x87指令的功能,MMX和3DNow!

其他提示

我明白,如果你选择SSE2,althought它仍然傻出现的警告。如果选择/拱但是你仍然得到警告:AVX。我敢肯定,它会得到固定的SP1。其只是有点垃圾和烦恼。

在编译器选项/弓:AVX将无法在旧CPU的工作,因此你需要确保你的CPU支持它。我就遇到了这个问题,当我不得不重新编译1.12 tensorflow包我的老至强CPU不支持。

我已经接通/拱:SSE2(如基里尔)张贴以上,但得到完全相同的问题。微软编译器会发出警告(INFO),这个选项将被忽略。

Command line warning D9002 : ignoring unknown option '/arch:SSE2'

从微软的文档我的理解是,此选项仅适用于x86和这没有意义,我要么。

然而MSDN上说:

/arch:SSE and /arch:SSE2 are only available when you compile for the x86 platform.

和其SSE是在x64反正使用。因此,我只是删除了选项现在

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top