본문으로 바로가기

[Ubuntu 20.04] How to install Intel VTune on Ubuntu

category ETC... 2022. 1. 18. 22:22

본 포스팅에서는 Ubuntu 20.04에서 최신 버전의 Intel VTune을 설치하는 방법에 대해 기술한다.

 

Intel VTune은 프로그램 성능을 측정하기 위해 사용되는 툴 중 하나로서 많은 개발자들에 의해 사용되고 있다.

 

최신 버전의 VTune은 (Version 2022.1.1) 설정하기 까다로운 부분이 존재하기 때문에 해당 내용을 본 포스팅에 기술한다.

 

 

1. Intel VTune 다운로드

 

VTune은 다음과 같이 Intel 공식 사이트에서 다운받을 수 있다.

(https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html#gs.m7u8g1)

 

사용자의 시스템 구성에 따라 "Develop in the Cloud"와 Download the Toolkit" 둘 중 하나를 선택하면 된다.

필자는 "Download the Toolkit"을 선택하였다.

 

이후 다음과 같이 "Operating System", "Distribution", "Installer Type"을 선택하였다.

 

 

 

 

이후 "Download" 버튼을 클릭하면 "~/Download" 경로에 "L_BaseKit_p_2022.1.1.119.sh" 파일이 존재한다.

 

* sh 파일은 버전에 따라 다를 수 있다.

 

이후 "~/Download" 경로에서 아래의 명령어로 Intel VTune 설치를 수행할 수 있다.

sudo sh ./l_BaseKit_p_2022.1.1.119.sh

 

이후 웬만하면 동의 버튼을 모두 누른 후 설치를 하면 된다.

 

설치 방법은 아래와 같이 "Recommended Installation"과 "Custom Installation" 이렇게 두 가지를 선택할 수 있다.

 

특별한 경우가 아니라면 "Recommended Installation"을 선택하자.

 

 

이후, 아래와 같은 화면 ("Intel oneAPI Base Toolkit")을 만났다면 설치가 100% 완료될 때까지 기다리자.

 

 

 

2. Profiling을 위한 환경 설정

 

기본적으로 설치가 끝나면 다음과 같은 경로에 Intel VTune 설치 및 실행 관련 파일이 저장되어 있다

 

/opt/intel/oneapi/vtune/latest

 

이후, 간단한 sample 바이너리 실행을 위해 다음과 같은 command로 vtune를 실행시킬 수 있다.

 

/opt/intel/oneapi/vtune/2022.0.0/bin64$ ./vtune-gui

 

하지만, 다음과 같이 Performance 프로파일 도구들을 곧 바로 사용할 수 없다.

 

HotSpot의 경우는 다음과 같은 에러가 존재한다.

 

 

이를 해결하기 위해 "/etc/sysctl.d/10-ptrace.conf"에서 다음과 같이 "kernel.yama.ptrace_scope" 변수를 수정 해야한다.

 

sudo vi /etc/sysctl.d/10-ptrace.conf

kernel.yama.ptrace_scope = 0

 

Microarchitecture Exploration은 다음과 같은 경고가 존재한다.

 

 

이것은 다음과 같은 명령으로 "/proc/sys/kernel/kptr_restrict" 값을 변경할 수 있다.

 

$ su
Passwd:

# echo 0 > /proc/sys/kernel/kptr_restrict

 

 

만일 "Input and Output"에서 문제가 발생하면 해결하기가 꽤 어려워진다.

 

간단하게 정리하면 Intel에서 제공하는 Sampling Driver 설치가 정상적으로 되었는지 확인 해야한다.

 

다음과 같은 방법으로 설치 여부를 확인할 수 있다.

 

$ cd /opt/intel/openapi/vtune/2022.0.0/sepdk/src
$ ./insmod-sep -q

 

만일 해당 명령어의 결과에 특정 드라이버가 정상적으로 로드되지 않았다라고 하면 실제로 해당 모듈들이 로드되지 않았는지 "lsmod"로 확인 해야한다.

 

만일 해당 모듈들이 로드되어 있다면 이것은 group ownership의 문제이다.

 

"./insmod-sep -q"의 결과를 잘 확인해보면 대부분의 커널 모듈의 group이 "vtune"으로 설정되어 있다. 

 

이것을 현재 사용자 계정의 그룹으로 변경 해주어야 한다.

 

이것은 다음과 같은 명령어로 해결이 가능하다.

 

$ ./boot-script -g <user name>

 

이후 다시"./insmod-sep -q"의 결과를 확인해보면 커널 모듈의 group이 바뀐 것을 확인할 수 있다.

 

Trouble-shooting on boot-script

간혹 boot-script를 이용해 해당 문제를 해결하려고 하더라도, group을 변경시키지 못할 때가 존재한다.

 

아래 사이트를 이용하여 해당 문제를 해결할 수 있다.

 

1. Build the Sampling Driver

2. Install the Sampling Drivers

 

위와 같은 두 단계를 수행하면 된다.

 

https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/set-up-analysis-target/linux-targets/build-install-sampling-drivers-for-linux-targets.html