01. MIG(Multi-Instance GPU)란?
하나의 물리적 GPU를 최대 7개의 독립적인 GPU 인스턴스로 분할하여 사용할 수 있게 하는 기술입니다.
기존의 시간 분할(Time-slicing) 방식이나 소프트웨어적인 가상화와 달리, MIG는 하드웨어 레벨에서 격리(Isolation)를 제공합니다. 즉, 분할된 각 인스턴스는 고유한 메모리, 캐시, Compute Core를 할당받습니다. 이로 인해 하나의 인스턴스에서 부하가 발생하더라도 다른 인스턴스의 성능에 영향을 주지 않는 것이 특징입니다.
02. 핵심 구성 요소
MIG를 구성할 때 가장 혼동하기 쉬운 두 가지 개념이 Instance Profile과 GPU Config(Placement)인데,
이를 '조각'과 '조합'의 관점에서 이해하면 명확합니다.
1) Profile (프로파일): 분할 가능한 '조각
물리적 GPU를 나눌 때, 사용자가 임의의 용량으로 자를 수 있는 것은 아닙니다. NVIDIA 아키텍처에 의해 미리 정의된 '가능한 조각의 규격'이 존재하며, 이를 Profile이라고 합니다.
Profile은 주로 Compute Slice 수와 Memory 용량으로 명명됩니다.
- 표기법: {Compute Slice}g.{Memory Size}gb
- 예시 (A100 80GB 기준):
- 1g.10gb: 1개의 연산 슬라이스와 10GB 메모리를 가진 가장 작은 단위
- 3g.40gb: 3개의 연산 슬라이스와 40GB 메모리를 가진 중간 단위
- 7g.80gb: GPU 전체를 하나로 쓰는 단위 (MIG 비활성화 상태와 유사)
2) Config (컨피그): 조각들의 유효한 '조합'
Config는 하나의 물리적 GPU라는 한정된 공간 안에 '어떤 Profile들을 어떻게 배치할 것인가'에 대한 전체 설정(Configuration)을 의미합니다. 하나의 GPU 안에서 여러 Profile을 혼합하여 생성할 수 있지만, 모든 조합이 가능한 것은 아닙니다. 물리적인 파티션 배치(Placement) 규칙을 따라야 하기 때문입니다.
- Config의 개념: GPU 전체 자원(Total Slices)을 Profile들로 채우는 조합의 집합
- 배치 예시:
- Case A (균등 분할): 1g.10gb × 7개 (작은 인스턴스 7개 생성)
- Case B (대형 분할): 3g.40gb × 2개 (남는 공간 발생 가능)
- Case C (혼합 분할): 4g.40gb × 1개 + 2g.20gb × 1개 + 1g.10gb × 1개
03. 시스템 구현
실제 GPU 관리 시스템이나 MLOps 플랫폼을 개발할 때, 사용자(관리자)에게 복잡한 MIG Placement Rule을 모두 노출하는 것은 비효율적입니다. 따라서 내부적으로 복잡한 Config ID를 관리하더라도, 사용자 인터페이스(UI)에서는 직관적인 형태로 데이터를 가공하여 보여주어야 합니다.

사용자 관점의 데이터 표현 (Representation)
사용자가 MIG를 설정할 때 가장 중요하게 생각하는 것은 "내부적인 파티션 번호"가 아니라, "사용 가능한 자원의 종류와 개수"입니다. 따라서 드롭다운 메뉴나 선택지 구성 시 다음과 같은 포맷이 권장됩니다.
[Profile 이름] × [생성 개수]
UI 적용 예시: 드롭다운 메뉴에서 복잡한 Config ID 대신, 해당 Config가 의미하는 자원 할당량을 직관적으로 선택하게 합니다.
- MIG 1g.10gb (x7) : 10GB짜리 인스턴스 7개 생성
- MIG 3g.40gb (x2) : 40GB짜리 인스턴스 2개 생성
- Mixed Strategy : 혼합 구성 (별도 표기)
이러한 방식은 사용자가 "이 설정을 선택했을 때, 내가 쓸 수 있는 GPU 조각이 몇 개 생기는가?"를 즉관적으로 인지할 수 있게 도와주며, 운영 편의성을 크게 높여줍니다.
04. 정리
- MIG: 하나의 GPU를 하드웨어적으로 격리된 여러 개의 작은 GPU로 나누는 기술.
- Profile: 나눌 수 있는 최소 단위의 규격 (예: 1g.10gb).
- Config: 한정된 GPU 자원 안에서 Profile들을 배치하는 전체 조합.
- Application: 시스템 구현 시에는 복잡한 조합 규칙보다, 결과적으로 확보되는 자원의 스펙과 수량을 중심으로 UI를 설계하는 것이 효율적이다.
댓글