NVIDIA A100 MIG
Multi Instance GPU
Nvidia GPU A100에서 새롭게 생긴 기능 MIG는 CUDA 애플리케이션을 위한 최대 7의 개별 GPU 인스턴스로 안전하게 분할하여 최적의 GPU 활용을 위해 사용자에게 별도의 GPU 리소스를 제공하기 위해 등장했다.
A100 MIG 모드 사용 시 참고사항
- GPU-GPU P2P 지원되지 않는다.
- 그래픽 API가 지원되지 않는다.
- CUDA 애플리션은 컴퓨팅 인스턴스와 상위 GPU 인스턴스를 단일 CUDA 장치로 취급한다.
- GPU 인스턴스 간의 CUDA IPC는 지원되지 않으며, Compute 인스턴스에서 CUDA IPC가 지원된다.
- CUDA 디버깅 및 메모리 / race checking 지원됨.
- GPU 인스턴스에서 사용될 때 GPUDirect RDMA가 지원됨.
- CUDA MPS는 MIG 위에 지원되며, 유일한 제한은 최대 클라이언트 수(48)가 컴퓨팅 인스턴스 크기에 비례하여 낮아진다.
MIG 고려 사항
- MIG 기능은 CUDA 11.0 / R450 release부터 NVIDIA GPU 드라이버의 일부로 제공됨.
- NVIDIA DRIVER는 450.82 이상 사용.
그렇다면 MIG를 구성할 때 나오는 용어들부터 알아보도록 하겠다.
root@ubuntu:~# nvidia-smi
Tue Dec 1 19:56:47 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.45.01 Driver Version: 455.45.01 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 A100-PCIE-40GB Off | 00000000:01:00.0 Off | On |
| N/A 44C P0 65W / 250W | 0MiB / 40536MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
| 1 A100-PCIE-40GB Off | 00000000:25:00.0 Off | 0 |
| N/A 43C P0 42W / 250W | 0MiB / 40536MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| MIG devices: |
+------------------+----------------------+-----------+-----------------------+
| GPU GI CI MIG | Memory-Usage | Vol| Shared |
| ID ID Dev | BAR1-Usage | SM Unc| CE ENC DEC OFA JPG|
| | | ECC| |
|==================+======================+===========+=======================|
| No MIG devices found |
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
GPU Context
GPU Context는 CPU 프로세서와 유사하다. 고유 한 주소 공간, 메모리 할당 등을 포함하여 GPU에서 작업을 실행하는 데 필요한 모든 리소스를 캡슐화한다.
GPU Engine
GPU 엔진은 GPU에서 작업을 실행하는 것이다. 가장 일반적으로 사용되는 엔지는 컴퓨터 명령을 실행하는 컴퓨팅 / 그래픽 엔진이다.
다른 엔진으로는 DMA 수행을 담당하는 CE(복사 엔진), 비디오 디코딩을 위한 NVDEC, 인코딩을 위한 NVENC 등이 있다. 각 엔진들은 독립적으로 예약할 수 있으며 다른 GPU Context에 대해 작업을 실행할 수 있다.
GPU Memory Slice
GPU 메모리 슬라이스는 해당 메모리 컨트롤러 및 캐시를 포함하여 A100 GPU 메모리의 가장 작은 부분이다. GPU 메모리 슬라이스는 용량과 대역폭을 모두 포함하여 GPU 메모리 리소스의 1/8이다.
GPU SM Slice
GPU SM 슬라이스는 A100 GPU에서 SM 중 가장 작은 부분이며, GPU SM 슬라이스는 MIG 모드에서 구성할 때 A100에서 사용할 수 있는 총 SM수의 1/7이다.
GPU Slice
GPU 슬라이스는 단일 GPU 메모리 슬라이스와 GPU SM 슬라이스를 결합한 A100 GPU의 가장 작은 부분이다.
GPU Instance(GI)
GPU 인스턴스는 GPU 슬라이스와 GPU 엔진 (DMA, NVDEC 등)의 조합이다. GPU 인스턴스 내의 모든 것은 항상 모든 GPU 메모리 슬라이스 및 기타 GPU 엔진을 공유한다.
하지만 SM 슬라이스 컴퓨팅 인스턴스(CI)로 더 세분화될 수 있다. GPU 인스턴스는 메모리 QoS를 제공합니다. 각 GPU 슬라이스에는 사용 가능한 용량과 대역폭을 모두 제한하고 메모리 QoS를 제공하는 전용 GPU메모리 리소스가 포함된다. 각 GPU 메모리 슬라이스는 총 GPU 메모리 리소스의 1/8을 가져오고 각 GPU SM 슬라이스는 총 SM 수의 1/7을 얻는다.
Compute Instance(CI)
GPU 인스턴스는 여러 컴퓨팅 인스턴스로 세분화 될 수 있다. 컴퓨팅 인스턴스(CI)에는 상위 GPU 인스턴스의 SM 슬라이스 및 기타 GPU 엔진(DMA, NVDEC 등)의 하위 집합이 포함되며, CI는 메모리와 엔진을 공유한다.
'linux' 카테고리의 다른 글
Anaconda 다운로드 설치 및 파이썬 가상환경 사용하기 (303) | 2020.12.29 |
---|---|
쿠버네티스(kubernetes)란 ? 기본 개념부터 알아보자 (1330) | 2020.12.24 |
nvidia smi 꼭 알아야 할 TIP - temp,serial,topology matrix (458) | 2020.12.19 |
NVIDIA-SMI 확인방법 및 활용하기 (7949) | 2020.12.18 |
MIG GPU INSTANCE 구성 (461) | 2020.12.02 |
최근댓글