와탭랩스 블로그 오픈 이벤트 😃
자세히 보기
GPU
2025-07-15
MIG로 가상화된 GPU의 사용률은 어떻게 측정할까?

서론

NVIDIA의 Multi-Instance GPU(MIG) 기술은 단일 GPU를 여러 개의 독립적인 인스턴스로 분할하여 효율적인 리소스 활용을 가능하게 합니다. 하지만 MIG 모드에서는 전통적인 GPU 사용률 모니터링에 제약이 있습니다. 이 글에서는 MIG 환경에서의 GPU 모니터링 문제점과 DCGM_FI_PROF_GR_ENGINE_ACTIVE를 활용한 해결책을 제시합니다.

MIG 모드에서의 GPU 사용률 측정 제약

NVIDIA 공식 문서에 따르면, MIG 모드가 활성화된 GPU에서는 전통적인 GPU 사용률(utilization) 메트릭이 지원되지 않습니다.

NVIDIA MIG 사용자 가이드에서도 이러한 제약사항을 명시하고 있습니다:

"GPU utilization is not supported when MIG mode is enabled"

여기에서 딜레마가 발생합니다.

실제 운영 환경에서의 딜레마

다음과 같은 시나리오를 생각해보겠습니다:

  • 하나의 노드에 A100 GPU 8장이 설치
  • 4장은 MIG 모드로 활성화
  • 나머지 4장은 단독 디바이스로 사용

이런 환경에서 노드의 평균 GPU 사용률을 계산하려면 어떻게 해야 할까요? MIG 모드가 활성화된 4개의 GPU는 N/A로 표시되므로, 이를 제외하고 물리 디바이스 4개만으로 계산해야 할까요?

해결책: DCGM_FI_PROF_GR_ENGINE_ACTIVE 활용


MIG 인스턴스별 사용률 계산 방법

MIG 모드에서도 정확한 GPU 사용률을 측정할 수 있는 방법이 있습니다. 바로 DCGM_FI_PROF_GR_ENGINE_ACTIVE 메트릭을 활용하는 것입니다.


계산 공식

전체 GPU 사용률 = Σ(각 MIG 인스턴스 사용률 × 해당 인스턴스의 리소스 비율)

예시:MIG A (2g.10gb): 60% × (2/7) = 17.14%MIG B (1g.5gb): 90% × (1/7) = 12.86%MIG C (1g.5gb): 40% × (1/7) = 5.71%MIG D (1g.5gb): 20% × (1/7) = 2.86%MIG E (1g.5gb): 70% × (1/7) = 10.0%MIG F (1g.5gb): 10% × (1/7) = 1.43%

총 GPU 사용률: 50%

이러한 접근 방식은 명확한 기술적 근거를 바탕으로 합니다. DCGM_FI_PROF_GR_ENGINE_ACTIVE 메트릭 선정과 가중치 계산 방법론 모두 NVIDIA의 공식 문서와 권장사항에 기반하고 있습니다.

대체 메트릭 사용, 계산 방법론에 대한 근거를 차례로 설명드리겠습니다.

1. 대체 메트릭 사용 근거: NVIDIA GitHub 공식 답변
근거 출처: NVIDIA DCGM GitHub 이슈 #64

NVIDIA 개발자의 공식 답변:

"DCGM_FI_DEV_GPU_UTIL is roughly equal to DCGM_FI_PROF_GR_ENGINE_ACTIVE. DCGM_FI_PROF_GR_ENGINE_ACTIVE is higher precision and works on MIG."

이 답변은 왜 DCGM_FI_PROF_GR_ENGINE_ACTIVE를 GPU 사용률의 대체 지표로 사용할 수 있는지에 대한 공식적인 근거를 제공합니다.

GR_ENGINE_ACTIVE의 특징

  • 메트릭 ID: DCGM_FI_PROF_GR_ENGINE_ACTIVE
  • 기능: NVIDIA GPU의 Graphics Engine(GR Engine) 활동 수준 측정
  • 특징: "Graphics" Engine이라는 이름이지만, 실제로는 그래픽스와 일반 컴퓨팅 워크로드 모두를 처리
  • MIG 호환성: MIG 모드에서도 정확한 측정 가능
  • 정밀도: 기존 GPU_UTIL보다 높은 정밀도 제공


2. 가중치 계산 방식 근거: NVIDIA DCGM 공식 문서
근거 출처: NVIDIA DCGM- Understanding Metrics

NVIDIA DCGM 공식 문서에서 제시하는 메트릭 이해를 바탕으로 MIG 인스턴스별 사용률을 가중치 계산하여 디바이스 단위로 변환하는 방법론을 도출할 수 있습니다.

계산 방법론

1) 기본 계산 공식

전체 GPU 사용률 = Σ(각 MIG 인스턴스의 GR_ENGINE_ACTIVE × 해당 인스턴스의 컴퓨트 슬라이스 비율)


2) 상세 계산 과정

각 MIG 인스턴스에 대해:

  • Instance_Utilization = DCGM_FI_PROF_GR_ENGINE_ACTIVE (0.0 ~ 1.0)
  • Slice_Ratio = Instance_Compute_Slices / Total_GPU_Compute_Slices
  • Weighted_Contribution = Instance_Utilization × Slice_Ratio


3) 실제 계산 예시

A100 GPU (총 8개 컴퓨트 슬라이스)에서:

총 GPU 사용률 = 0.1714 + 0.1286 + 0.0571 + 0.0286 + 0.1000 + 0.0143 = 0.5000 (50.0%)

4) 메트릭 해석 (DCGM 공식 문서 기준)

  • 데이터 범위: 0.0 ~ 1.0 (비율 값)
  • 0.0: GPU 엔진이 완전히 유휴 상태
  • 1.0: GPU 엔진이 100% 활용 상태


5) 실무 적용 시 고려사항

  • GPU 워크로드의 특성에 따라 순간적인 변동 가능
  • 안정적인 모니터링을 위해 이동 평균 적용 고려(monitoring best practice)


업계 채택 현황

  • OpenCost: GitHub PR #2853에서 MIG 환경을 위한 GPU 비용 계산에 활용
  • 대규모 GPU 클러스터: 클라우드 서비스 제공업체들의 GPU 모니터링 솔루션에서 채택


결론

MIG 모드에서의 GPU 모니터링은 두 가지 핵심 근거를 바탕으로 해결할 수 있습니다:

  1. NVIDIA 공식 답변: DCGM_FI_PROF_GR_ENGINE_ACTIVE가 GPU_UTIL의 대체 지표로 사용 가능
  2. NVIDIA 공식 문서: 메트릭 이해를 바탕으로 한 가중치 계산 방법론
와탭 모니터링을 무료로 체험해보세요!