HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 33편] MIG Partitioning과 멀티 GPU 운영 전략 – GPU 자원의 효율적 분할과 활용

ygtoken 2025. 8. 11. 21:19
728x90

 

왜 GPU를 쪼개서 써야 하는가

 

최신 AI 모델 학습이나 HPC 시뮬레이션은 GPU 메모리를 많이 소모하지만, 모든 워크로드가 항상 GPU 전체 리소스를 필요로 하는 것은 아닙니다.

예를 들어, 이미지 전처리 작업이나 경량 모델 추론은 H100 같은 고성능 GPU의 일부 리소스만 사용하고 나머지는 낭비될 수 있습니다.

 

이때 MIG(Multi-Instance GPU) 기능을 활용하면 하나의 물리 GPU를 여러 개의 독립 GPU 인스턴스로 나눠서 사용자가 각자 전용 GPU처럼 활용할 수 있습니다.

이는 GPU 리소스 활용률 향상, 워크로드 격리, 비용 절감이라는 세 가지 큰 장점을 제공합니다.

 


 

MIG(Multi-Instance GPU)란?

 

MIG는 NVIDIA A100(Hopper H100 포함)부터 지원되는 하드웨어 기반 GPU 가상화 기술입니다.

 

  • 분할 방식: GPU를 최대 7개의 인스턴스로 분할 가능
  • 격리 수준: 메모리와 SM(Streaming Multiprocessor)을 하드웨어 수준에서 완전 분리
  • 독립성: 각 인스턴스는 별도의 드라이버·컨텍스트를 가지며, CUDA 장치 ID도 독립됨
  • 적용 환경: Kubernetes, Slurm, VMware vSphere, Baremetal HPC 등에서 활용 가능

 

GPU 모델
최대 인스턴스 수 인스턴스 메모리 크기(예시)
A100 40GB 최대 7개 1g.5gb, 2g.10gb, 3g.20gb 등
A100 80GB 최대 7개 1g.10gb, 2g.20gb, 3g.40gb 등
H100 80GB 최대 7개 유사 구조 + H100 특화 구성

 


 

MIG 구성 원리와 동작

  1. GPU 메모리 분할 – MIG는 VRAM을 고정된 크기로 나눔
  2. 컴퓨팅 유닛 분리 – 각 인스턴스는 전용 SM과 메모리 버스를 가짐
  3. 하드웨어 스케줄링 – MIG 엔진이 각 인스턴스별로 독립적인 스케줄링 수행
  4. 드라이버 레벨 할당 – OS에서는 각 인스턴스가 별도의 GPU로 인식됨

 


 

MIG 활성화 및 인스턴스 생성 예시

# MIG 모드 활성화
sudo nvidia-smi -mig 1

# GPU 인스턴스 생성 (예: 1g.10gb 프로파일)
sudo nvidia-smi mig -cgi 0,0,0,0,0,0,0 -C

# 현재 MIG 상태 확인
nvidia-smi -L

주의사항: MIG 모드 변경 시 GPU 재부팅이 필요하며, MIG 활성화 시 GPU 전체 모드로는 사용할 수 없습니다.

 


 

MIG + Kubernetes 연계

 

Kubernetes에서 MIG를 활용하려면 NVIDIA Device PluginMIG Strategy 설정이 필요합니다.

예시(values.yaml):

migStrategy: mixed
resources:
  limits:
    nvidia.com/mig-1g.10gb: 1

이렇게 하면 특정 Pod가 GPU 전체가 아닌 MIG 인스턴스 하나만 점유하도록 할 수 있습니다.

 


 

멀티 GPU 운영 전략

 

MIG는 단일 GPU 분할에 초점을 맞추지만, HPC/GPU 클러스터에서는 여러 GPU를 묶어서 쓰는 전략도 필요합니다.

 

1. 데이터 병렬(Data Parallel) 전략

  • 동일 모델을 여러 GPU에서 각기 다른 데이터 배치로 학습
  • 장점: 구현이 단순, 확장성 좋음
  • 단점: 모델 크기가 GPU 메모리를 초과하면 불가능

 

2. 모델 병렬(Model Parallel) 전략

  • 모델의 레이어를 여러 GPU에 나눠서 실행
  • 장점: 초대형 모델 학습 가능
  • 단점: GPU 간 통신 병목 가능

 

3. 하이브리드 병렬(Hybrid Parallel) 전략

  • 데이터 병렬 + 모델 병렬 조합
  • 예: Megatron-LM, DeepSpeed

 


 

MIG와 멀티 GPU 조합 예시

  • 멀티 테넌트 환경: 하나의 GPU 서버를 MIG로 나누어 여러 팀이 동시에 사용
  • 하이브리드 클러스터: MIG로 경량 워크로드를 처리하면서, 다른 GPU는 NVLink/NVSwitch로 묶어 대규모 학습
  • Burst 모드: 낮은 우선순위 Job은 MIG 인스턴스에 할당, 높은 우선순위 Job은 전체 GPU 사용

 


 

장점과 단점

 

장점

  • GPU 자원 활용률 극대화
  • 워크로드 간 완전 격리 (보안·성능)
  • 클라우드·온프렘 모두 적용 가능

 

단점

  • 프로파일 고정 → 유연성 제한
  • NVLink 직접 사용 불가 (인스턴스 간)
  • 설정·운영 복잡도 증가

 


 

실무 최적화 팁

  • 프로파일 선택: 워크로드별 메모리·SM 사용량에 맞춘 MIG 프로파일 선택
  • 스케줄러 통합: Slurm/K8s에서 MIG 리소스 타입 정의
  • 모니터링: nvidia-smi --query-gpuDCGM Exporter로 인스턴스별 상태 추적
  • 온디맨드 재구성: 비업무 시간대에 MIG 해제 후 전체 GPU 모드로 전환해 대규모 Job 실행

 


 

정리하며

MIG Partitioning은 HPC/GPU 환경에서 GPU 자원 효율성멀티 테넌트 운영 안정성을 동시에 잡을 수 있는 기술입니다.

멀티 GPU 전략과 결합하면, 대규모 AI 학습부터 경량 추론까지 하나의 클러스터에서 유연하게 운영할 수 있습니다.

운영자는 하드웨어·소프트웨어 스택·스케줄링 정책을 종합적으로 설계해 MIG를 최대한 활용해야 합니다.

 

 

728x90