提问人:blipblop 提问时间:1/4/2017 最后编辑:sepp2kblipblop 更新时间:1/5/2017 访问量:2505
如何在Visual Studio 2015中仅禁用SIMD自动矢量化优化(适用于C++)?
How to disable only SIMD auto-vectorization optimization in Visual Studio 2015 (for C++)?
问:
我的问题只是如何在 Visual Studio 2015 中仅禁用 SIMD 自动矢量化优化(保留发布模式的其他优化):
1)正在编译的整个项目;
2)对于部分代码。
在第一种情况下,我想学习如何为整个项目禁用它。对于第二种情况,我想知道是否也可以针对代码的特定区域执行此操作,类似于使用 and 时所有优化的可能性。#pragma optimize("", off)
#pragma optimize("", on)
这样做的目的是将一些手动优化的代码与编译器的自动 SIMD 矢量化进行比较。
答:
2赞
Chuck Walbourn
1/5/2017
#1
使用 或 进行构建时,会自动启用可视化 C++ 自动矢量化器。/O2
/Ox
要查看它正在做什么,请使用 或 进行构建。/Qvec-report:1
/Qvec-report:2
您可以通过使用#pragma loop(no_vector)
请参阅 MSDN
没有记录在案的方法可以全局禁用自动矢量化器,同时保持标准优化的启用状态。
评论
0赞
blipblop
1/6/2017
谢谢你的回答。你到底在哪里找到上面的报价?我没有在您包含的任何链接中找到(也没有在食谱中)。也许您错过了感兴趣的参考资料?
0赞
Chuck Walbourn
1/6/2017
这与其说是一句话,不如说是一句旁白。没有记录在案的编译器开关可以禁用自动矢量化器。
评论
/arch:IA32