Skip to content

Nvidia:MIG

MIG(Multi-Instance GPU) 는 NVIDIA GPU 하나를 하드웨어 수준에서 여러 개의 독립된 GPU로 쪼개는 기술입니다. Ampere 세대(A100)에서 도입되어 H100, B200 등 데이터센터 GPU 계열에서 지원됩니다.

시분할과 무엇이 다른가

앞서 device plugin에 넣은 time-slicing과 대비하면 차이가 분명합니다.

-

시분할 (time-slicing)

MIG

나누는 대상

실행 시간만 (컨텍스트 스위칭)

SM·L2 캐시·메모리 컨트롤러·메모리를 물리적으로

메모리 격리

없음 — 한 파드가 다 먹으면 나머지 OOM

있음 — 인스턴스별 메모리가 하드웨어로 고정

성능 간섭

있음 — 옆 파드가 GPU를 물면 내 지연이 튐

거의 없음 — QoS가 보장됨

분할 개수

임의 (그냥 광고하는 숫자)

최대 7개, 정해진 프로파일 단위(예: 1g.10gb)

전제 조건

아무 GPU나 가능

지원 하드웨어 + 사전 파티션 구성 필요

즉 MIG는 "진짜로 나눠 준다"에 가깝고, 시분할은 "번갈아 쓰게 해 준다"에 가깝습니다. 여러 인스턴스를 격리해서 안전하게 돌리려면 MIG가 정답이지만, 하드웨어가 받쳐줘야 합니다.

DGX Spark에서 쓸 수 없는 이유

Spark에 들어간 GB10은 워크스테이션급 Grace Blackwell 칩이라 MIG 파티셔닝 기능이 없습니다. 같은 Blackwell 세대라도 데이터센터용 B200/GB200에는 있고 GB10에는 없는, 제품 라인에 따라 갈리는 기능입니다. 그래서 시분할이 유일한 선택지였고, 그 대가로 메모리 격리를 포기한 것입니다 — 128 GB 통합 메모리를 8개 파드가 서로 신뢰하며 나눠 쓰는 구조라는 점이 여기서 나옵니다.

설정 파일의 migStrategy: none

device plugin ConfigMap에 넣은 그 줄이 이것과 직접 연결됩니다. 세 가지 값을 가집니다.

  • none — MIG를 무시하고 GPU 전체를 nvidia.com/gpu 하나로 광고 (지금 설정)
  • single — 모든 MIG 인스턴스가 동일 프로파일일 때, 그것들을 nvidia.com/gpu로 광고
  • mixed — 프로파일별로 nvidia.com/mig-1g.10gb 같은 개별 자원명으로 광고

Spark에는 MIG 자체가 없으니 none이 유일하게 맞는 값입니다.

See also