【问题标题】:Directory of Vectorization Report for Intel C++ Compiler in VS 10VS 10 中英特尔 C++ 编译器的矢量化报告目录
【发布时间】:2012-02-21 16:00:42
【问题描述】:

在 VS 10 中,我将“矢量化诊断级别”设置为“n=2”,并将“优化诊断阶段”设置为“hpo”,如“英特尔 C++ 编译器矢量化指南”中所述。但是,(这可能是一个愚蠢的问题),该报告在哪里? “输出”中既没有显示内容,也没有项目目录。

【问题讨论】:

    标签: c++ intel vectorization icc


    【解决方案1】:

    我在编写的项目中遇到了同样的问题。 它是基于 SDK 中给出的示例代码的插件。

    如果编译/构建过程配置为“调试”模式,则不会应用优化,因此不会给出报告。

    你可能有同样的问题。

    我在确定如何切换到“发布模式”时遇到问题(在配置面板中不可用): Switching from Debug into Release Mode with VS2010 as IDE and Intel C++ Compiler 13

    如果它对您有用,请告诉我们。

    【讨论】:

      【解决方案2】:

      矢量化诊断通常作为正常编译器诊断输出的一部分发出,例如

      $ icc -Wall -msse3 foo.c -vec-report=2 -o foo
      
      ...
      
      foo.c(1337): (col. 5) remark: loop was not vectorized: existence of vector dependence.
      foo.c(1337): (col. 5) remark: loop was not vectorized: not inner loop.
      foo.c(1337): (col. 5) remark: loop was not vectorized: not inner loop.
      foo.c(1337): (col. 5) remark: loop was not vectorized: existence of vector dependence.
      foo.c(1337): (col. 5) remark: loop was not vectorized: existence of vector dependence.
      foo.c(1337): (col. 5) remark: loop was not vectorized: nonstandard loop is not a vectorization candidate.
      foo.c(1337): (col. 5) remark: loop was not vectorized: not inner loop.
      foo.c(1337): (col. 5) remark: LOOP WAS VECTORIZED.
      foo.c(1339): (col. 5) remark: loop was not vectorized: existence of vector dependence.
      foo.c(1339): (col. 5) remark: loop was not vectorized: existence of vector dependence.
      foo.c(1339): (col. 5) remark: loop was not vectorized: not inner loop.
      foo.c(1339): (col. 5) remark: loop was not vectorized: statement cannot be vectorized.
      foo.c(1339): (col. 5) remark: loop was not vectorized: not inner loop.
      
      ...
      
      $
      

      【讨论】:

      • “正常编译器诊断输出”和“输出”窗口一样吗?
      • 是的,上面的例子只是普通的控制台输出——只要你没有重定向stdout或stderr并且你有-vec-report=2或大于你应该看到这样的东西。
      • 不幸的是,没有显示任何内容。顺便说一句,“将诊断发送到文件”设置为“否”。另外,我没有对 stdout 和 stderr 做任何事情。
      • 你使用的是什么环境?尝试按照上面的示例从命令行对其进行测试。
      • 就环境一词的理解,我尝试了调试和发布模式。我检查了我的命令行,它包含与诊断相关的必需命令。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 2014-02-03
      • 2013-11-11
      • 2010-11-21
      相关资源
      最近更新 更多