【问题标题】:What are these functions given by Intel Advisor?Intel Advisor 提供了哪些功能?
【发布时间】:2017-04-17 07:45:50
【问题描述】:
我正在尝试使用 Intel Advisor 来了解我的应用程序中的热点。
这些是我正在使用的编译和链接器标志:
INTEL_OPT=-O3 -simd -xCORE-AVX2 -parallel -ipo -qopenmp -fargument-noalias -ansi-alias -no-prec-div -fp-model fast=2
INTEL_PROFILE=-g -qopt-report=5 -Bdynamic -shared-intel -debug inline-debug-info -qopenmp-link dynamic -parallel-source-info=2 -ldl
这是取自this教程的示例图片:
这是我的应用程序的屏幕截图:
我不明白_clone、[stack]、_start 和_libc_start_main 之前的所有这些函数是什么。
【问题讨论】:
标签:
c++
performance
parallel-processing
intel
intel-parallel-studio
【解决方案1】:
James 是正确的:_clone、[stack]、_start 和 _libc_start_main 等内容对应于 CRT、Cray sys 库(如果您使用 Cray env)、OMP 运行时内部或一般系统调用。
此外,在您的个人资料中,您似乎没有启用任何矢量化信息(空的“为什么不进行矢量化”、没有剥离剩余分解、没有 SIMD 效率指标等)。由于您的编译标志似乎是合理的,我的下一个猜测是您要么将调试信息剥离到单独的文件中,要么使用相当旧的 ICL 版本。删除 ipo 也可能有助于启用丢失的信息。
【讨论】:
-
感谢您的回答。 INTEL_PROFILER 包含 Intel Advisor(用于线程和矢量化分析)和 Intel VTune 建议的所有标志,例如 this。代码已经使用 omp 并行化(所以有 omp 运行时内部),我正在尝试改进它。 Myabe 是因为您建议的ipo。否则我真的不明白为什么我的案例与教程案例如此不同。
-
我明白了。您担心的是 THREADING 教程中的 SCREEN-SHOT 与您的 GUI 不同。原因如下:Threading Advisor 教程比 Vectorization Tutorial 旧得多,所以其中的一些屏幕截图可能已经过时,而在新的 Advisor 中,系统调用的分析比以前更多。一般来说,即使 Vectoization 不是您的主要关注点,请注意,在software.intel.com/en-us/… 的最新“Vectorizatoin 教程”中更好地描述了最强大和最新的工具功能