我目前正在开发 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
我会继续寻找,但如果有人注意到我脑死亡,我会很感激指导如何一起使用这些标志!
预先感谢您的任何提示。 干杯, 马克。
最佳答案
当您使用 -O0 时,
-qopt-report5 始终禁用。 这是“根据定义”,因为 opt-report == “优化报告”并且 O0 == “无优化”,所以没有什么可报告的。。 p>
自动矢量化通常从 O2 优化级别开始启用,因此如果您想探索矢量化方面,那么您至少需要使用“-O2 -opt-report5”组合或“更高”。
如果您想要关联性能“峰值”和“优化报告”,请考虑使用英特尔“矢量化顾问”(了解更多信息 here ,立即从此位置下载:https://software.intel.com/en-us/advisor_getting_started_intro )
关于英特尔 icc 编译器 -O 标志和 -qopt-report,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084382/