본문 바로가기
Working on

NVIDIA NVTAGS ( Topology-Aware GPU Selection ) 메뉴얼 읽기 - 2

by Warehaus 2021. 6. 7.

2. Getting started 

이 섹션은 NVTAG 설치를 위한 요구사항과 설치방법 그리고 어떻게 사용하는지에 대한 내용을 제공한다.

 

2.1 사전 준비사항

NVTAGS를 설치하기 위한 사전 준비사항, 이해를 위한 내용은 아니니 가이드에서 보는게 빠르다.

https://docs.nvidia.com/datacenter/nvtags/latest/nvtags-user-guide/index.html#nvtags-req

 

2.2 설치

설치에 대한 부분도 가이드 이해가 필요한 부분이 아니라서 넘어간다.

https://docs.nvidia.com/datacenter/nvtags/latest/nvtags-user-guide/index.html#install-nvtags

 

3. NVTAGS 사용하기

이 섹션에서는 NVTAGS Tune and NVTAGS Run 두가지 모드에 대한 추가 정보를 제공한다.

NVTAGS는 bare-metal 또는 Singularity 기반의 컨테이너 어플리케이션을 지원하고 srun기반 Slurm integration 을 지원한다.

3.1 NVTAGS Tune 모드

NVTAGS Tune모드에서는 어플리케이션과 시스템 프로파일링 데이터가 GPU 할당을 최적화 하는데 사용 된다.

Tune 모드는 GPU 할당을 최적화 하기 위한 평가를 위해 어플리케이션의 프로파일링 정보가 필요하다. NVTAGS는 MPI profiler library를 사용하는데, 이는 동적으로 MPI application에 연결하고 GPU 통신 패턴을 구성하기 위해 MPI call 을 intercept한다.

프로파일링이 끝나면, NVTAGS는 어플리케이션과 시스템 토폴로지 정보를 이용하여 더 나은 gpu assignment를 확인한다. 프로파일링 결과와 권장되는 gpu 할당은 local NVTAGS 캐시에 캐싱된다.

Default cache 경로는 사용자가 변경 가능하며, 만약 명시된 경로가 없는경우,  nvtags는 해당 경로를 생성하여 관리한다.

비록 NVTAGS가 기본 설정만으로 효과적인 gpu 할당을 지원하지만, 일부 설정을 변경하였을 때 더 나은 효과를 내기도 한다. 이 단계는 기본 프로파일링과 매핑설정을 변경함으로써 가능하며 추가 정보는 About the NVTAGS CLI를 확인하도록 한다.

Tuning이 완료됨에 따라 더 나은 설정이 발견되면 아래와 같은 메시지가 나타나게 된다.

Better mapping found!
Max Congestion_improvement: 10.00%
Avg Congestion_improvement: 17.27%
0,1,3,2,7,6,4,5

 

3.1.1 NVTAGS Tune을 이용한 어플리케이션의 수행

NVTAGS Tune mode를 이용하여 실행할 수 있는 몇가지 방법이 있다.

- Bare metal with mpirun

NVTAGS 를 TUNE WITH PROFILING MODE로 돌리려면, 앞에 NVTAGS TUNE 과 RUN며영어를 붙여라. 그리고 실행하고자 하는 바이너리를 명시하면 된다.

nvtags tune --runner-bin mpirun --num-procs <number of processes> --app-run-cmd '<application run cmd>' [options]

 

- Bare metal with srun

Tune 모드로 수행하려면, RUN 명령어를 NVTAGS TUNE과 함께 수행한다

nvtags tune --runner-bin srun --num-procs <number of processes> --–app-run-cmd '<application run cmd>' [options]

 

- Singularity with srun

nvtags tune --runner-bin srun --num-procs <number of processes> --sing-img <path to singularity image> --app-run-cmd '<application run cmd>' [options]

 

3.2 NVTAGS Run 모드

여기서는 NVTAGS run 모드에 대한 내용을 다룬다.

Run mode에서는 NVTAGS는 CUDA_VISIBLE_DEVICES를 설정함으로써 권장되는 효율적인 GPU 할당을 적용한다.

NVTAGS는 CPU와 NIC 를 affinity 정보와 gpu 할당을 이용하여 고정이 가능하다.

다중 노드 워크로드를 위해서는, NVTAGS는 호스트파일 또는 슬럼 호스트 ID를 이용하는 노드를 선택 가능하다.

 

3.3 About the NVTAGS CLI

Tune과 Run두가지 NVTAGS 모드에 대해 추가적인 정보를 이 섹션에서 제공한다. 각종 옵션정보들이 있어서 추후 사용 시 참고하면 될 것 같다.

3.3. About the NVTAGS CLI

 

NVIDIA Topology-Aware GPU User Guide :: NVIDIA Topology-Aware GPU Selection Documentation

The NVIDIA® Topology-Aware GPU Selection (NVTAGS) 1.0 User Guide provides a detailed overview about how you can use NVTAGS with your application on single- or multi-node, multi-GPU servers. This guide also provides information about NVTAGS CLI options and

docs.nvidia.com

 

출처 : https://docs.nvidia.com/datacenter/nvtags/latest/nvtags-user-guide/index.html