Intel Advisor 最佳标志和设置

Intel Advisor optimal flags and settings

我正在阅读 this 有关使用 Intel Advisor 进行代码矢量化的教程。特别是在此页面中,他们建议:

Build the target sample application in release mode ... compiler options: -O2 -g

以下:

To build your own applications to produce the most accurate and complete Vectorization Advisor analysis results, build an optimized binary in release mode using the following settings.

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

现在,我有几个问题:

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

新的 Intel Advisor 教程的相关入口点是 Getting Started, where you can pick and choose appropriate sub-tutorials. Vectorization Advisor sub-tutorial for Linux can be found here。它准确地说:

-qopt-report=5 : necessary for version 15.0 of the Intel compiler; unnecessary for version 16.0 and higher

关于 -vec、-simd、-openmp,本教程稍微混淆了 Advisor 正常运行所需的标志(-g、-O2,可选 -opt-report) 与 "proper" 编译器运行所需的标志(-vec、-simd 和 -openmp)。后面的只是控制编译器矢量代码生成的标志,它们与 Advisor 分析功能无关,因此您可以使用也可以不使用它们。


为了让你更深入的理解:有一个重要的特征 Advisor,称为​​ Intel Advisor Survey "Compiler Integration"。 此功能利用与 opt-report 相对相似但不完全相同的数据。 为了使此功能正常工作,您需要

  1. 使用 Intel 编译器 14.x beta,15.x,16.x 或 17.x
  2. -g(启用调试信息)和 -O2 或更高(启用 some优化)
  3. 可选(仅适用于英特尔编译器15.x)-qopt-report5

无论编译器版本(上面第 1 项)或 opt-report 和版本(上面第 3 项)如何,Intel Advisor 中的所有其他功能都同样有效,但它们仍然需要 -g(上面选项 2 的一部分) ).某些功能不需要 -O2,但在分析性能方面时处理 -O0 或 -O1 编译的二进制文件通常无用。