我在MS Visual Studio 2010中使用英特尔C ++编译器v.13 for OS Windows。此编译器支持矢量化代码。我想禁用此选项,但保存启用的-O2优化。我在/Qvec-
窗口中设置了此目标Project -> Properties -> Configuration Properties -> C/C++ -> Command Line -> Additional Options
标志(标签“从父项继承或项目默认值”已启用)。在所有选项部分中显示了以下这些键:
/ Zi / nologo / W3 / Od / Ot / Qipo / Qopt-matmul / D“WIN32”/ D“NDEBUG”/ D “_CONSOLE”/ D“NOALIAS”/ D“_UNICODE”/ D“UNICODE”/ EHsc / MT / GS / Gy / fp:fast / QaxAVX / Zc:wchar_t / Zc:forScope / Qopenmp / Qstd = c99 / Qstd = c ++ 11 /Fp"Release\mformat.pch“/ Fa”Release \“/ Fo”Release \“ /Fd"Release\vc100.pdb“/ Qvec-report2 / Gd
但是在编译报告中输出了这条消息:
service.cpp(164):警告:SIMD LOOP已被矢量化。
service.cpp(535):警告:SIMD循环已被矢量化。
service.cpp(543):警告:循环未向量化:非标准循环 不是矢量化候选者。
等...
节目时间不变。我如何禁用矢量化而没有设置\Od
键?
答案 0 :(得分:0)
在文档"A Guide to Vectorization with Intel® C++ Compilers"
中找到了这个允许对矢量化与非矢量化代码进行比较, 可以使用开关/ Qvec-(Windows *)或禁用矢量化 -no-vec(Linux *或Mac OS * X)。
Intel® Composer XE Suite页面上的大量其他有用信息。