0

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 튜토리얼에서 가져온 샘플 이미지입니다 :

enter image description here

이 내 응용 프로그램의 스크린 샷입니다

이 내가 사용하고 컴파일 및 링커 플래그는 :

enter image description here

_clone, [stack], _start_libc_start_main 이전의 모든 기능을 이해할 수 없습니다.

+1

실행 시간은 프로그램을로드하고 응답을 위해 main() – James

답변

1

James는 정확합니다. _clone, [stack], _start 및 _libc_start_main과 같은 항목은 CRT, Cray sys lib (Cray env를 사용하는 경우), OMP 런타임 내부 또는 일반 시스템 호출에 해당합니다.

또한 프로파일에서 어떤 벡터화 정보도 활성화되어 있지 않습니다 (비어있는 "왜 벡터화하지 않습니까?", 껍질을 벗기다 남은 부분은 없으며, SIMD 효율성 메트릭 등은 없습니다). 컴파일 플래그가 합당한 것 같아서, 내 다음 추측은 디버그 정보를 별도의 파일로 스트립하거나 꽤 오래된 ICL 버전을 사용한다는 것입니다. ipo를 제거하면 누락 된 정보를 사용할 수도 있습니다.

+0

을 호출하는 것입니다. 'INTEL_PROFILER'는 Intel Advisor (스레드 및 벡터화 분석 용)와 [this] (https://software.intel.com/en-us/node/605665)와 같은 Intel VTune이 제안한 모든 플래그를 포함합니다. 코드는 이미 omp를 사용하여 병렬화되었으므로 (따라서 omp 런타임 내부가 있습니다) 그리고이를 개선하려고합니다. Myabe는 당신이 제안하는 것처럼'ipo' 때문입니다. 그렇지 않으면 나는 내 사건이 튜토리얼 하나와 왜 다른지를 정말로 이해하지 못한다. – justHelloWorld

+0

나는 본다. 당신이 염려하는 것은 쓰레드 튜토리얼의 스크린 샷이 GUI와 다르다는 것입니다. 그 이유는 다음과 같습니다 : 스레딩 어드바이저 자습서는 Vectorization Tutorial보다 오래되었으므로, 일부 스크린 샷은 더 이상 사용되지 않을 수 있지만 새로운 Advisor에서는 이전보다 시스템 호출에 대한 분석이 더 많습니다. 일반적으로 Vectoization이 주요 초점이 아니더라도 가장 최신의 도구 기능이 훨씬 더 최신의 "Vectorizatoin tutorial"(https://software.intel.com/en-us/intel- 고문 - 자습서 - 벡터화 -linux-cplusplus – zam