1

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

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

和以下:

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

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

现在,我有几个问题:

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

1 回答 1

1

新 Intel Advisor 教程的相关入口点是Getting Started,您可以在其中挑选合适的子教程。可在此处找到适用于 Linux的 Vectorization Advisor 子教程。它准确地说:

-qopt-report=5 : Intel 编译器 15.0 版本所必需的;16.0 及更高版本不需要

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


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

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

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

于 2017-02-02T21:02:49.813 回答