我正在阅读有关使用英特尔顾问进行代码矢量化的this教程。特别是在这个页面中,他们建议:
在发布模式下构建目标示例应用程序...编译器选项:-O2 -g
以下:
构建自己的应用程序以生成最准确的和 完成Vectorization Advisor分析结果,构建优化 使用以下设置在发布模式下使用二进制文件。
-g -O2 (or higher) -qopt-report=5 -vec -simd -qopenmp
现在,我有几个问题:
-g
vec_samples
中的/opt/intel/advisor_*/...
)提供的Makefile中,仅使用-g -O2
为什么它们不包含所有其他选项。为什么?答案 0 :(得分:1)
新的英特尔顾问教程的相关切入点是Getting Started,您可以在其中挑选和选择适当的子教程。可以找到适用于Linux的 Vectorization Advisor子指南 here。它恰恰说:
-qopt-report = 5:英特尔编译器15.0版本所必需的;版本16.0及更高版本不需要
关于 -vec,-simd,-openmp ,教程稍微混淆了正确的Advisor运行所需的标志(-g,-O2,可选-opt-report)与所需的标志。 "适当"编译器功能(-vec,-simd和-openmp)。后者只是控制编译器矢量代码生成的标志,它们与Advisor分析功能无关,因此您可能会也可能不会使用它们。
为了让您更深入了解:有一个重要特征 顾问,称为英特尔顾问调查"编译器集成"。 此功能利用与opt报告相对相似但不相同的数据。 为了使此功能正常工作,您需要
无论编译器版本(上面的第1项)或选择报告和版本(上面的第3项),英特尔顾问中的所有其他功能同样运行良好,但它们仍然需要-g(上面选项2的一部分)。某些功能不需要-O2,但在分析性能方面时,处理-O0或-O1编译的二进制文件通常是无用的。