我目前正在研究HPC,我对icc编译器有疑问。
我想要做的是通过[O0..O3]更改优化级别时查看正在发生的事情。我想要的数据,关于矢量化以及代码是否是折叠内联等,似乎都在-qopt-report
标志生成的报告中。
我决定对报告使用最高级别的详细程度
-qopt-report5 (I think this is the correct way to use it)
但是,当降低O级时,报告会逐渐变小,直到使用-O0
标志时变为空:
icc -O0 -qopt-report5 -c test1.c
我会继续寻找,但如果有人注意到我脑子里已经死了,我会很高兴指出一起使用这些旗帜!
提前感谢任何提示。 干杯, 标记
答案 0 :(得分:2)
-qopt-report5始终禁用。 这是"根据定义" ,因为opt-report =="优化报告"和O0 =="没有优化",因此无需报告。
自动矢量化通常从O2优化级别开始启用,因此如果您想要探索矢量化方面,那么您至少需要使用" -O2 -opt-report5"组合或"更高"。
如果你想关联性能"峰值"和"优化报告",考虑使用英特尔"矢量化顾问" (阅读更多here,暂时从此位置下载:https://software.intel.com/en-us/advisor_getting_started_intro)