我目前正在研究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
我会继续寻找,但如果有人注意到我脑子里已经死了,我会很感激指向这些旗帜的使用!
提前感谢任何提示 . 干杯,MArk .
1 回答
使用时,-qopt-report5始终为 disabled - O0 . 这是 "by definition" ,因为opt-report == "optimization report"和O0 == "no optimization",所以没有什么可报告的 .
自动矢量化通常从O2优化级别开始启用,因此如果您想要探索矢量化方面,那么您需要至少使用“-O2 -opt-report5”组合或“更高” .
如果你想关联性能"peaks"和"optimization report",请考虑使用Intel "Vectorization Advisor"(了解更多here,暂时从这个位置下载:https://software.intel.com/en-us/advisor_getting_started_intro)