본문 바로가기 대메뉴 바로가기

테크니컬 스토리

아이티마야의 새로운 기술 뉴스를 만나보세요.
NVIDIA MIG(Multi-Instance GPU)
등록일
2026.09.09
첨부파일
NVIDIA MIG(Multi-Instance GPU)
하나의 GPU를 여러개로 나눠서 사용해보자!

출처 : https://www.nvidia.com/ko-kr/technologies/multi-instance-gpu/


AI 및 딥러닝 환경에서는 GPU의 성능이 점점 중요해지고 있습니다.

하지만 모든 작업이 GPU 전체 자원을 필요로 하는 것은 아닙니다.

예를 들어 80GB 또는 94GB의 대용량 GPU에서 간단한 추론이나 개발 환경을 실행할 경우 GPU 메모리와 연산 자원의 상당 부분이 사용되지 않을 수 있습니다.

이러한 GPU 자원을 여러 사용자 또는 여러 작업에 효율적으로 할당하기 위해 NVIDIA에서 제공하는 기술이 MIG(Multi-Instance GPU) 입니다.


1. MIG란?

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까지 구성할 수 있습니다.

2. MIG의 주요 특징
① GPU 자원 분할

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 활용률을 높일 수 있다고 설명하고 있습니다.


④ Kubernetes 환경 지원

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 환경에서 사용할 수 있도록 지원하고 있습니다.

3. MIG Profile

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 개수가 다르다는 것입니다.

4. MIG 설정 방법

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 GiB14
`2g.48gb`47.38 GiB22
`4g.96gb`95.00 GiB41

즉 RTX PRO 6000 Blackwell에서는 기본적인 구성을 다음과 같이 생각할 수 있습니다.

1g.24gb × 4

또는

2g.48gb × 2

또는

4g.96gb × 1

구성이 가능합니다.

확인이 되었으면 원하는 Profile의 ID를 -cgi 옵션으로 지정하여 GPU Instance를 생성합니다.

24GB MIG 4개 구성
sudo nvidia-smi mig -cgi 14,14,14,14 -C
48GB MIG 2개 구성
sudo nvidia-smi mig -cgi 5,5 -C
24GB × 2 + 48GB × 1 구성
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 로 확인이 가능합니다.

MIG Mode disable

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
5. MIG 사용 시 장점
1. GPU 활용률 향상

작은 GPU 작업을 여러 개의 MIG Instance에 분산하여 하나의 GPU를 효율적으로 사용할 수 있습니다.

2. 자원 격리

각 Instance에 GPU 연산 및 메모리 자원이 할당되기 때문에 여러 사용자가 GPU를 공유하는 환경에 적합합니다.

3. 예측 가능한 성능

MIG는 단순한 시간 분할 방식이 아니라 GPU 하드웨어 자원을 분할하기 때문에 다른 작업의 영향을 줄이고 일정한 수준의 QoS를 제공할 수 있습니다.

4. 멀티 테넌트 환경

여러 사용자나 여러 팀이 하나의 GPU 서버를 공유해야 하는 환경에서 유용합니다.

특히 연구실, 대학, 기업의 AI 플랫폼처럼 하나의 GPU 서버를 여러 사용자가 사용하는 환경에서 활용도가 높습니다.


6. MIG의 단점

MIG가 모든 GPU 작업에 적합한 것은 아닙니다.

1. GPU 전체 자원을 사용하는 작업에는 부적합

대규모 AI 학습처럼 GPU 전체의 연산 능력과 메모리가 필요한 작업에서는 MIG로 GPU를 분할하는 것보다 GPU 전체를 하나의 작업에 할당하는 것이 적합합니다.

2. Profile 제약

GPU 자원을 원하는 용량으로 자유롭게 나눌 수 있는 것이 아니라 GPU에서 지원하는 MIG Profile을 사용해야 합니다.

따라서 실제 환경에서는 필요한 GPU 메모리와 연산량에 맞는 Profile을 선택해야 합니다.

3. 설정 및 관리 필요

MIG Mode 설정뿐만 아니라 GPU Instance 및 Compute Instance 구성, Kubernetes 연동 등을 고려해야 합니다.

특히 Kubernetes 환경에서는 GPU Operator와 NVIDIA Device Plugin 등의 구성까지 함께 고려해야 합니다.

4. GPU 모델별 차이

지원되는 Profile과 최대 Instance 개수는 GPU 모델마다 다릅니다.

따라서 MIG를 구축하기 전에 사용하려는 GPU의 MIG 지원 여부와 Profile을 확인해야 합니다.


7. MIG와 일반 GPU 공유 방식의 차이

GPU를 여러 사용자가 사용하는 방법에는 여러 가지가 있습니다.

대표적으로 Time-SlicingMIG를 비교할 수 있습니다.

구분Time-SlicingMIG
자원 분할시간 단위 공유하드웨어 자원 분할
GPU 메모리공유Instance별 할당
연산 자원공유Instance별 분리
성능 예측상대적으로 어려움상대적으로 일정
격리 수준낮음높음
멀티 테넌트가능적합
GPU 활용향상향상

즉, 단순히 GPU를 여러 작업이 번갈아 사용하는 환경과 달리 MIG는 GPU 하드웨어 자원을 여러 개의 독립적인 Instance로 구성한다는 차이가 있습니다.


9. MIG가 적합한 환경

MIG는 다음과 같은 환경에서 특히 유용합니다.

AI 추론 서버

하나의 GPU에서 여러 개의 작은 추론 서비스를 동시에 운영할 수 있습니다.

연구실 / 대학 GPU 서버

여러 연구자가 하나의 GPU 서버를 사용하는 경우 사용자별 GPU 자원을 분리하여 할당할 수 있습니다.

MLOps 플랫폼

Kubernetes 기반 AI 플랫폼에서 사용자 또는 프로젝트별 GPU 자원을 할당하는 용도로 활용할 수 있습니다.

개발 및 테스트 환경

대규모 GPU가 필요하지 않은 개발 및 테스트 작업을 작은 MIG Instance에 할당할 수 있습니다.

PLEASE WAIT WHILE LOADING...