4GPU Server
8GPU Server
HGX Server
2GPU Workstation
4GPU Workstation
Compact AI
10GPU Server
Open Source
NVIDIA
HCI
MLOps
HW/SW 유지보수
AS

출처 : https://www.nvidia.com/ko-kr/technologies/multi-instance-gpu/
AI 및 딥러닝 환경에서는 GPU의 성능이 점점 중요해지고 있습니다.
하지만 모든 작업이 GPU 전체 자원을 필요로 하는 것은 아닙니다.
예를 들어 80GB 또는 94GB의 대용량 GPU에서 간단한 추론이나 개발 환경을 실행할 경우 GPU 메모리와 연산 자원의 상당 부분이 사용되지 않을 수 있습니다.
이러한 GPU 자원을 여러 사용자 또는 여러 작업에 효율적으로 할당하기 위해 NVIDIA에서 제공하는 기술이 MIG(Multi-Instance GPU) 입니다.
MIG(Multi-Instance GPU)는 하나의 물리적인 NVIDIA GPU를 여러 개의 독립적인 GPU 인스턴스로 분할하여 사용할 수 있도록 하는 기술입니다.
하나의 GPU를 여러 사용자가 공유하는 것과 비슷해 보이지만, 일반적인 GPU 공유 방식과는 차이가 있습니다.
MIG는 GPU의 연산 자원뿐만 아니라 GPU 메모리, L2 Cache, 메모리 컨트롤러 등의 하드웨어 자원을 인스턴스별로 분리하여 할당합니다.
따라서 하나의 GPU를 여러 개의 독립적인 GPU처럼 사용할 수 있습니다.
예를 들어 하나의 GPU를 다음과 같이 구성할 수 있습니다.

각 MIG Instance는 운영체제나 컨테이너 환경에서 별도의 GPU 리소스처럼 사용할 수 있습니다.
NVIDIA MIG는 Ampere 아키텍처부터 지원되며, GPU 제품에 따라 최대 7개의 GPU Instance까지 구성할 수 있습니다.
MIG는 GPU의 연산 자원과 메모리 자원을 Instance별로 분할합니다.
각 Instance에는 할당된 GPU 메모리와 연산 자원이 존재하기 때문에 여러 작업이 동시에 실행될 수 있습니다.
MIG는 단순히 GPU 메모리 용량만 나누는 것이 아닙니다.
GPU Instance별로 GPU 메모리 시스템과 L2 Cache, 메모리 컨트롤러 등의 자원을 분리하여 다른 Instance의 작업이 직접적인 영향을 주는 것을 최소화합니다.
따라서 여러 사용자가 하나의 GPU를 공유하는 환경에서도 비교적 예측 가능한 성능을 제공할 수 있습니다.
하나의 물리적인 GPU에서 여러 개의 MIG Instance를 구성하면 서로 다른 작업을 동시에 실행할 수 있습니다.
예를 들어,
MIG 1 → AI 모델 학습
MIG 2 → AI 모델 추론
MIG 3 → 개발/테스트
와 같은 구성이 가능합니다.
NVIDIA는 MIG의 이러한 특성을 통해 여러 워크로드를 동시에 실행하면서 GPU 활용률을 높일 수 있다고 설명하고 있습니다.
MIG는 Kubernetes 환경에서도 활용할 수 있습니다.
NVIDIA GPU Operator 및 NVIDIA Device Plugin 등을 활용하면 Kubernetes에서 MIG Instance를 GPU 리소스로 관리할 수 있습니다.
예를 들어 하나의 GPU를 여러 MIG Instance로 구성한 후 Kubernetes에서 각각의 GPU 자원을 Pod에 할당할 수 있습니다.

이를 통해 여러 사용자가 하나의 GPU 서버를 공유하는 AI 개발 및 MLOps 환경을 구성할 수 있습니다.
NVIDIA 역시 MIG를 Docker 기반 컨테이너 환경과 Kubernetes 환경에서 사용할 수 있도록 지원하고 있습니다.
MIG는 GPU를 임의의 용량으로 자유롭게 나누는 방식이 아닙니다.
GPU 제품에 따라 NVIDIA가 정의한 MIG Profile을 기준으로 Instance를 생성합니다.
예를 들어 GPU에 따라 다음과 같은 형태의 Profile이 제공될 수 있습니다.
1g.x
2g.x
3g.x
4g.x
7g.x
여기서 g는 GPU의 연산 자원 단위를 의미하며, 뒤의 메모리 용량은 GPU 제품에 따라 달라집니다.
예를 들어 일부 GPU에서는 다음과 같이 구성할 수 있습니다.
Physical GPU
│
├── 1g Instance
├── 1g Instance
├── 1g Instance
├── 1g Instance
└── 3g Instance
중요한 점은 GPU 모델마다 지원하는 MIG Profile과 최대 Instance 개수가 다르다는 것입니다.
MIG는 nvidia-smi를 통해 관리할 수 있습니다.
먼저 nvidia-smi에서 MIG가 disabled 인지 확인 합니다.

MIG Mode를 활성화하려면 다음과 같은 명령을 사용할 수 있습니다.
sudo nvidia-smi -i 0 -mig 1
이 때, -i 0 은 MIG Mode를 활성화할 GPU 번호 입니다.

다음으로 GPU가 지원하는 MIG Profile을 확인합니다.
sudo nvidia-smi mig -lgip

여기서 기본적으로 사용할 수 있는 주요 Profile은 다음과 같습니다. (RTX PRO 6000 Blackwell 사용 기준)
| MIG Profile | 할당 메모리 | GPU Slice | 최대 Instance |
|---|---|---|---|
| `1g.24gb` | 23.62 GiB | 1 | 4 |
| `2g.48gb` | 47.38 GiB | 2 | 2 |
| `4g.96gb` | 95.00 GiB | 4 | 1 |
즉 RTX PRO 6000 Blackwell에서는 기본적인 구성을 다음과 같이 생각할 수 있습니다.
1g.24gb × 4
또는
2g.48gb × 2
또는
4g.96gb × 1
구성이 가능합니다.
확인이 되었으면 원하는 Profile의 ID를 -cgi 옵션으로 지정하여 GPU Instance를 생성합니다.
sudo nvidia-smi mig -cgi 14,14,14,14 -C
sudo nvidia-smi mig -cgi 5,5 -C
sudo nvidia-smi mig -cgi 14,14,5 -C
여기서 -cig는 GPU Instance를 생성할 Profile을 지정하는 옵션이고, 5는 2g.48gb Profile의 ID입니다.
마지막의 -C는 GPU Instance와 함께 기본 Compute Instance까지 생성하도록 합니다.
프로필 생성 여부는 nvidia-smi 또는 nvidia-smi -L 로 확인이 가능합니다.


GPU 사용이 종료된 것을 확인한 후에는 기존 Compute Instance와 GPU Instance를 삭제하고 MIG Mode를 Disable할 수 있습니다.
# MIG Compute Instance 삭제
sudo nvidia-smi mig -dci
# MIG GPU Instance 삭제
sudo nvidia-smi mig -dgi
# MIG Mode Disable
sudo nvidia-smi -i 0 -mig 0
작은 GPU 작업을 여러 개의 MIG Instance에 분산하여 하나의 GPU를 효율적으로 사용할 수 있습니다.
각 Instance에 GPU 연산 및 메모리 자원이 할당되기 때문에 여러 사용자가 GPU를 공유하는 환경에 적합합니다.
MIG는 단순한 시간 분할 방식이 아니라 GPU 하드웨어 자원을 분할하기 때문에 다른 작업의 영향을 줄이고 일정한 수준의 QoS를 제공할 수 있습니다.
여러 사용자나 여러 팀이 하나의 GPU 서버를 공유해야 하는 환경에서 유용합니다.
특히 연구실, 대학, 기업의 AI 플랫폼처럼 하나의 GPU 서버를 여러 사용자가 사용하는 환경에서 활용도가 높습니다.
MIG가 모든 GPU 작업에 적합한 것은 아닙니다.
대규모 AI 학습처럼 GPU 전체의 연산 능력과 메모리가 필요한 작업에서는 MIG로 GPU를 분할하는 것보다 GPU 전체를 하나의 작업에 할당하는 것이 적합합니다.
GPU 자원을 원하는 용량으로 자유롭게 나눌 수 있는 것이 아니라 GPU에서 지원하는 MIG Profile을 사용해야 합니다.
따라서 실제 환경에서는 필요한 GPU 메모리와 연산량에 맞는 Profile을 선택해야 합니다.
MIG Mode 설정뿐만 아니라 GPU Instance 및 Compute Instance 구성, Kubernetes 연동 등을 고려해야 합니다.
특히 Kubernetes 환경에서는 GPU Operator와 NVIDIA Device Plugin 등의 구성까지 함께 고려해야 합니다.
지원되는 Profile과 최대 Instance 개수는 GPU 모델마다 다릅니다.
따라서 MIG를 구축하기 전에 사용하려는 GPU의 MIG 지원 여부와 Profile을 확인해야 합니다.
GPU를 여러 사용자가 사용하는 방법에는 여러 가지가 있습니다.
대표적으로 Time-Slicing과 MIG를 비교할 수 있습니다.
| 구분 | Time-Slicing | MIG |
|---|---|---|
| 자원 분할 | 시간 단위 공유 | 하드웨어 자원 분할 |
| GPU 메모리 | 공유 | Instance별 할당 |
| 연산 자원 | 공유 | Instance별 분리 |
| 성능 예측 | 상대적으로 어려움 | 상대적으로 일정 |
| 격리 수준 | 낮음 | 높음 |
| 멀티 테넌트 | 가능 | 적합 |
| GPU 활용 | 향상 | 향상 |
즉, 단순히 GPU를 여러 작업이 번갈아 사용하는 환경과 달리 MIG는 GPU 하드웨어 자원을 여러 개의 독립적인 Instance로 구성한다는 차이가 있습니다.
MIG는 다음과 같은 환경에서 특히 유용합니다.
하나의 GPU에서 여러 개의 작은 추론 서비스를 동시에 운영할 수 있습니다.
여러 연구자가 하나의 GPU 서버를 사용하는 경우 사용자별 GPU 자원을 분리하여 할당할 수 있습니다.
Kubernetes 기반 AI 플랫폼에서 사용자 또는 프로젝트별 GPU 자원을 할당하는 용도로 활용할 수 있습니다.
대규모 GPU가 필요하지 않은 개발 및 테스트 작업을 작은 MIG Instance에 할당할 수 있습니다.