英特尔顾问优化标志和设置
Intel Advisor optimal flags and settings
我正在阅读关于使用英特尔顾问进行代码矢量化的教程。特别是在本页中,他们建议:
在发布模式下构建目标示例应用程序。。。编译器选项:-O2-g
以及以下内容:
构建自己的应用程序,以生成最准确和完成矢量化顾问的分析结果,构建优化的二进制在释放模式下使用以下设置。
-g -O2 (or higher) -qopt-report=5 -vec -simd -qopenmp
现在,我有几个问题:
- 我认为在发布模式中,我们没有生成任何调试信息(在"调试模式"中生成),因此不应包含
-g
- 最奇怪的是,在为示例提供的Makefile中,代码(
/opt/intel/advisor_*/...
中的vec_samples
)只使用-g -O2
,为什么它们不包括所有其他选项。为什么
新的英特尔顾问教程的相关入门点是"入门",您可以在其中选择适当的子教程Linux的矢量化顾问子教程可以在这里找到。它准确地说:
-qopt-report=5:英特尔编译器15.0版所必需版本16.0及更高版本不需要
关于-vec、-simd、-openmp,本教程略微混淆了Advisor正常运行所需的标志(-g、-O2,可选-opt report)与"正确"编译器正常运行所需要的标志(-vec、/simd和-openmp)。后面的只是控制编译器矢量代码生成的标志,它们与Advisor评测功能无关,所以您可以使用也可以不使用它们。
为了让您更深入地了解:Advisor,称为"英特尔顾问调查"编译器集成"。此功能利用了与opt报告相对相似但不完全相同的数据。为了使这个功能发挥作用,你需要
- 使用英特尔Coimpiler14.x测试版、15.x、16.x或17.x
- -g(启用调试信息)和-O2或更高版本(启用一些优化)
- 可选(仅适用于"英特尔编译器15.x")-qopt-report5
"英特尔顾问"中的所有其他功能,无论是"编译器"版本(以上第1项)还是"选择报告和版本"(以上第3项),都能正常工作,但它们仍然需要-g(以上第2项的一部分)-某些功能不需要O2,但在分析性能方面时,处理-O0或-O1编译的二进制文件通常是无用的。
相关文章:
- 在 CMake 中为每个目标设置编译器/链接器标志
- 如何正确设置 ios 标志以进行流操作?
- 有关使用标志位设置内部错误标志的说明
- 如何在CMakeLists.txt中正确设置CMake标志
- 设置用于调试的 g++ 编译器标志
- 如何在Qt中取消设置标志?
- SDL_CreateWindow在设置标志时失败SDL_WINDOW_VULKAN
- 如何在 cmake 中设置编译器特定的标志
- 如何在图像位中设置标志以标记音频文件的结尾
- 添加 swig pythoncode 以在 Python 对象上设置自己的标志
- 如何在cmake中的源文件之后设置库标志?
- 为什么我必须将错误状态标志设置为 goodbit 才能使其工作
- while 循环是否在设置标志的情况下运行多次?
- 设置 Xcode 标志以便将 python 嵌入我的C++项目中
- 如何嵌入在C++中设置标志的 python 代码
- 检索自最后n秒以来设置标志的次数的有效方法
- 在信号处理程序中设置标志
- 如何在 c++ 中设置标志的格式
- 说双向文件声明不隐式设置标志是否正确
- 如何为 fstream 对象设置标志FILE_FLAG_BACKUP_SEMANTICS