NVIDIAのMIG(Multi-Instance GPU)技術は、単一のGPUを複数の独立したインスタンスに分割し、リソースを効率的に活用できるようにします。
しかし、MIGモードではGPU使用率(ユーティリゼーション)測定に制約があります。
この記事では、MIG環境におけるGPUモニタリング上の問題点と、DCGM_FI_PROF_GR_ENGINE_ACTIVEメトリクスを活用した解決方法について説明します。
NVIDIAの公式文書によれば、MIGモードが有効なGPUでは、従来のGPU使用率メトリクスはサポートされていません。
NVIDIA MIGユーザーガイドでも次のように明記されています。
"GPU utilization is not supported when MIG mode is enabled"
例えば、次のような環境を想定してみましょう。
この場合、ノードの平均GPU使用率を計算するにはどうすればよいでしょうか?
MIGモードが有効な4つのGPUは使用率がN/Aとして表示されるため、これらを除外して物理デバイス4枚のみで計算すべきでしょうか?
MIGモードでも正確なGPU使用率を測定する方法があります。
DCGM_FI_PROF_GR_ENGINE_ACTIVEメトリックを使用することです。
コピー編集
総GPU使用率 = Σ(各MIGインスタンス使用率 × 当該インスタンスのリソース比率)
総GPU使用率 = 50%
この方法はNVIDIAの公式文書と推奨事項に基づいています。
以下に代替メトリックの使用根拠と加重値計算方式を説明します。
出典: 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_UTILの代替指標として使用できることが公式に確認されます。
出典: NVIDIA DCGM - メトリクスの理解
1) 基本公式
編集
総GPU使用率 = Σ(各MIGインスタンスのGR_ENGINE_ACTIVE × 当該インスタンスのコンピュートスライス比率)
2) 詳細プロセス
3) 実際の計算例 (A100、合計8つのコンピュートスライスに基づく)
コピー編集
総GPU使用率 = 0.1714 + 0.1286 + 0.0571 + 0.0286 + 0.1000 + 0.0143 = 0.5000 (50.0%)
4) メトリック解釈 (DCGM文書基準)
5) 実務適用時の考慮事項
MIGモードでのGPUモニタリングの問題は次の2つの根拠で解決できます。