【发布时间】:2017-01-04 10:01:48
【问题描述】:
我的问题只是如何在 Visual Studio 2015 中仅禁用 SIMD 自动矢量化优化(保留发布模式的其他优化):
1) 正在编译的整个项目;
2) 部分代码。
在第一种情况下,我想了解如何在整个项目中禁用它。对于第二种情况,我想知道是否也可以对代码的特定区域执行此操作,类似于使用#pragma optimize("", off) 和#pragma optimize("", on) 时所有优化的可能。
这样做的目的是将一些手动优化的代码与编译器的自动 SIMD 矢量化进行性能比较。
【问题讨论】:
-
关闭 SSE 支持还不够?
-
你不能在 x64 上这样做,因为所有 x64 都至少有 SSE2。
-
@Mysticial 所以你的意思是我只有为 x86 编译才能做到这一点?
-
@MSalters 你的意思是指定
/arch:IA32? -
@blipblop 正确。 Visual Studio 不允许您在 x64 上禁用 SSE2,因为所有 x64 处理器都有 SSE2。所以从他们的角度来看,在 x64 构建上添加禁用 SSE2 的能力是没有意义的。您的特定用例非常小众。另一种方法是使用没有自动矢量化的旧版本 VS。 (VS2010-ish 和更早的 IIRC)
标签: visual-studio compilation vectorization simd