英特尔顾问最佳标志和设置

时间:2017-02-02 11:34:32

标签: c++ parallel-processing vectorization intel intel-parallel-studio

我正在阅读有关使用英特尔顾问进行代码矢量化的this教程。特别是在这个页面中,他们建议:

  

在发布模式下构建目标示例应用程序...编译器选项:-O2 -g

以下:

  

构建自己的应用程序以生成最准确的和   完成Vectorization Advisor分析结果,构建优化   使用以下设置在发布模式下使用二进制文件。

-g -O2 (or higher) -qopt-report=5 -vec -simd -qopenmp

现在,我有几个问题:

  1. 我认为在发布模式下我们没有产生任何调试信息(在"调试模式"中生成),因此不应包含-g
  2. 最奇怪的是,在为示例代码(vec_samples中的/opt/intel/advisor_*/...)提供的Makefile中,仅使用-g -O2为什么它们不包含所有其他选项。为什么?

1 个答案:

答案 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. 使用英特尔 Coimpiler 14.x beta,15.x,16.x或17.x
  2. -g (启用调试信息)和 -O2 或更高版本(启用部分优化)
  3. 可选(仅限英特尔编译器15.x) -qopt-report5
  4. 无论编译器版本(上面的第1项)或选择报告和版本(上面的第3项),英特尔顾问中的所有其他功能同样运行良好,但它们仍然需要-g(上面选项2的一部分)。某些功能不需要-O2,但在分析性能方面时,处理-O0或-O1编译的二进制文件通常是无用的。