c++ - Intel Advisor 最佳标志和设置

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

我正在阅读 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. 我认为在 Release模式下我们没有产生任何调试信息(这是在“ Debug模式”下产生的),所以不应该包含 -g
  2. 最奇怪的是,在为示例代码(/opt/intel/advisor_*/... 中的vec_samples)给出的 Makefile 中仅使用了 -g -O2 为什么他们不包括所有其他选项。为什么?

最佳答案

新的 Intel Advisor 教程的相关入口点是 Getting Started ,您可以在其中挑选合适的子教程。可以找到适用于 Linux 的 Vectorization Advisor 子教程 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)与正常运行所需的标志“适当的”编译器运行(-vec、-simd 和 -openmp)。后面的只是控制编译器 vector 代码生成的标志,它们与 Advisor 分析功能无关,因此您可以使用也可以不使用它们。


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

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

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

关于c++ - Intel Advisor 最佳标志和设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001174/

相关文章:

c++ - 如何让我自己写的迭代器支持->?

c++ - 找不到或不匹配 'mpiexec' 的调试信息。无法找到或打开 PDB 文件

c - 为什么同一函数的第二次调用永远执行?

r - 在没有矢量化 FUN 参数的情况下调用外积

c++ - Xcode 10 调用不可用的函数 std::visit

c++ - 如何完整读取INI文件?

R并行共享内存对象(Windows)

c++ - vc++ 不再使用基于范围的语法对简单的 for 循环进行矢量化

r - 在 start= 和 end= 上向量化 window.zoo

c++ - 常量的C++最佳做法