【问题标题】:Intel icc compiler -O flags and -qopt-report英特尔 icc 编译器 -O 标志和 -qopt-report
【发布时间】:2015-09-14 01:39:16
【问题描述】:

我目前正在研究 HPC,我有一个关于 icc 编译器的问题。

我想做的是看看当我通过 [O0..O3] 更改优化级别时发生了什么。我想要的数据,关于矢量化和代码是否内联折叠等,似乎在-qopt-report 标志生成的报告中。

我决定在报告中使用最大程度的详细程度

-qopt-report5  (I think this is the correct way to use it)

但是,当降低 O-level 时,报告会逐渐变小,直到使用 -O0 标志时变为空:

icc -O0 -qopt-report5 -c test1.c

我会继续寻找,但如果有人注意到我已经脑死亡,我将不胜感激指出一起使用这些标志!

提前感谢您的任何提示。 干杯, 标记。

【问题讨论】:

    标签: intel icc


    【解决方案1】:
    当您使用 -O0 时,

    -qopt-report5 始终禁用。 这是“根据定义”,因为 opt-report == “优化报告”而 O0 == “没有优化”,所以没有什么可报告的。 p>

    自动矢量化一般来说是从O2优化级别开始启用的,所以如果你想探索矢量化方面,那么你至少需要使用“-O2 -opt-report5”组合或“更高”。

    如果您想关联性能“峰值”和“优化报告”,请考虑使用英特尔“Vectorization Advisor”(阅读更多here,现在从这个位置下载:https://software.intel.com/en-us/advisor_getting_started_intro

    【讨论】:

    • 谢谢先生。这是我第一次使用这个编译器。我目前正在处理的节点只有命令行,所以没有 X 工具或 Windows。冒着听起来更愚蠢的风险,vec-report[n] 是否仍然是发现代码是否内嵌折叠的最佳方法?
    • -opt-report5 将为您提供最大量的信息,包括内联。如果内联对您来说最重要,请考虑 -opt-report-phase(具体用法取决于您使用的编译器版本;对于新的英特尔编译器(15.x 或更高版本),请查看此处:software.intel.com/en-us/node/525003,对于较旧的编译器:software.intel.com/sites/default/files/compiler_qrg12.pdf)。
    • 关于 X 工具,Advisor(以及 Parallel Studio 中的类似工具)支持使用模式,您可以在集群节点上收集数据,但在具有 GUI 子系统的单独主机(或笔记本电脑)上查看数据。但是专门用于内联-我更喜欢直接使用 opt-report,尽管我不知道为什么它对您很重要
    • 最终评论:在最近的 ICC/IFORT 版本中 - 最好对所有内容使用 opt-report(以及它的变体,如 opt-report-phase)。 vec-report 相对已过时,尽管我认为到目前为止它还没有被弃用。
    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2021-11-07
    • 2021-01-31
    • 2021-08-08
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    相关资源
    最近更新 更多