GPU管理は、Kubernetesクラスター内のすべてのGPUリソースをリアルタイムで追跡および管理するために設計されています。現在のステータスを表示するだけでなく、複数のクラスターの統合管理をサポートし、各ユーザー役割にカスタマイズされた情報を提供し、GPU使用状況のトレンドを監視および評価するための分析ツールを含んでいます。
Main Functions
-
Cluster-level GPU Monitoring
- 複数のクラスターにわたるGPUリソースを一目で確認
- クラスターごとのGPU利用率を一目で比較
- リソースが不足しているクラスターと空きリソースを即座に特定
-
Multi-Instance GPU (MIG) support
- 単一のGPUを複数のインスタンスに分割して柔軟に利用
- 各MIGインスタンスの独立したメトリクスを収集
- 物理GPU内のインスタンス間のリソース競合を監視
-
Real-time metrics visualization
- 15秒ごとにGPUステータスを更新
- 色コード(正常/警告/重大)でステータスを区別
- 時系列チャートでトレンドを分析
-
Role-based view
- システム管理者: 全体的なインフラの健康状態
- プロジェクトマネージャー: チームのGPUプール使用状況
- 開発者: 自分のワークロードに対する詳細なメトリクス
Key Metrics
GPU Utilization
GPU利用率は、最も頻繁に監視されるメトリクスの1つですが、誤解されやすいメトリクスでもあります。このメトリクスは、GPUの計算コアが計算を実行している時間の割合を示します。たとえば、GPU利用率が80%である場合、これは測定期間の80%の間、GPUが計算を実行しており、残りの20%はアイドル状態であったことを意味します。
-
Normal range:
- 割り当てられたGPU: 50%以上(理想的には75〜85%)
- 割り当てられていないGPU: 5%未満(理想的には0%)
- Problem diagnosis:
- 低い利用率 (20%以下): データ読み込みのボトルネック、小さいバッチサイズ、またはCPUのボトルネックの可能性
- 異常な活動 (未割り当てGPU > 20%): 未完了のプロセスやセキュリティの問題の可能性
メモリ利用率
メモリ利用率は、GPUメモリが読み取りおよび書き込み操作を積極的に行っている時間の割合を示します。これはメモリ使用量とは異なる概念です。メモリ使用量は、どれだけのメモリが割り当てられているかを示し、一方でメモリ利用率は、そのメモリがどれだけ積極的に使用されているかを反映します。
| GPU利用率 | メモリ利用率 | 解釈 |
|---|---|---|
| 高い | 低い | 正常 (計算集約型) |
| 低い | 高い | メモリ帯域幅のボトルネック |
| 低い | 低い | データ読み込み/CPUのボトルネック |
- 95%以上: メモリ不足のリスク
- 継続的な増加: メモリリークの可能性
温度
温度はGPUの健康状態を示す最も直接的な指標です。GPUは高性能を発揮するためにかなりの電力を消費し、その結果としてかなりの熱を生成します。この熱が適切に制御されない場合、性能の低下を引き起こすだけでなく、ハードウェアに損傷を与える可能性があります。ほとんどのデータセンターGPUの正常な動作温度範囲は50°Cから80°Cの間です。
Temperature standards:| Temperature | Status | Recommended action |
|---|---|---|
| < 70°C | 正常 | - |
| 70–80°C | 良好 | - |
| 80–85°C | 注意 | 冷却を確認 |
| 85–90°C | 警告 | SWスロットリングを開始 |
| ≥ 90°C | 重大 | HWスロットリング、即時対応が必要 |
- 冷却ファンの故障またはほこりの蓄積
- サーバールームの環境温度の上昇
- ノード内のGPU間の熱的干渉 (同時重負荷)
電力使用量
消費電力は、GPUが現在使用している電力(ワット単位)を示します。各GPUモデルには定格電力制限があり、たとえば、NVIDIA A100のデフォルトの電力制限は400Wであり、この制限は管理者がソフトウェアを介して調整できます。
-
Purposes of power monitoring:
- パフォーマンス制限の検出: 電力使用量が電力制限の95%を超えると、GPUは電力制限される可能性があります。
- コスト管理: 高い消費電力を持つ非効率なGPUを特定します。
- ハードウェアの問題検出: 異常な電力使用パターンを検出します。
-
Analysis points:
- 低いGPU利用率 + 高い消費電力 = 非効率(メモリ転送オーバーヘッド)
- 高いGPU利用率 + 高い消費電力 = 正常(GPUはフルキャパシティで動作しています)
クロックスロットリング
GPUは、CPUと同様にクロックスピードに基づいて動作します。クロックスピードが高いほど、1秒あたりに実行できる計算が増えます。しかし、GPUは常に最大のクロックスピードで動作するわけではありません。消費電力と温度を管理するために、GPUは動的にクロックを調整します。このプロセスはクロックスロットリングとして知られています。
クロックスロットリングは、さまざまな理由で発生する可能性があり、それぞれ異なる意味を持ちます。システムによって記録されたクロックスロットリングの理由を理解することが重要です。
| Throttle Type | Meaning | Severity | Recommended Action |
|---|---|---|---|
| GPUアイドル | アイドル状態 | 正常 | なし |
| SW電力制限 | 管理者設定の電力制限 | 正常 | 意図された制限 |
| SW温度 | 温度 > 85°C | 注意 | 冷却改善の確認 |
| HW温度 | 温度 > 90°C | 重大 | 直ちに冷却を確認 |
| HW電力ブレーキ | 瞬間的な電力過負荷 | 警告 | 電源を確認 |
| スロットリングイベントの頻度を監視することは重要です。時折のスロットリングは正常ですが、頻繁または継続的に発生する場合は、根本的な原因に対処する必要があります。システムはクロックスロットリングイベントの数を追跡しているため、この数が急激に増加する場合は、さらなる調査が必要かもしれません。 |
SM アクティビティ
SMはストリーミングマルチプロセッサの略で、GPU内のコア計算ユニットです。単一のGPUには数十から数百のSMが存在し、各SMは多くのコアで構成されています。SMアクティビティは、これらのSMがどれだけ活発に計算を行っているかを示します。
SMアクティビティは、全体的なGPU利用率と比較して、より詳細な洞察を提供します。GPU利用率がGPUが使用されている時間の割合を示すのに対し、SMアクティビティは実際に操作中に使用されているコアの数を示します。たとえば、GPU利用率が80%であることは、すべてのSMが80%の負荷で動作していることを必ずしも意味しません。一部のSMは100%で動作している一方で、他のSMはアイドル状態である可能性があります。
Recommended Range:- 割り当てられたGPUの場合:50%以上(理想的には75%以上)。
- 低SM → 並列性の欠如 → バッチサイズを増やすか、モデルの並列化を適用する
ECC エラー
ECCはエラー訂正コードの略で、GPUメモリ内のビットエラーを自動的に検出し修正する技術です。ほとんどのデータセンタークラスのGPUは、データの整合性を確保するためにECCメモリを搭載しています。ECCは、AIトレーニングや科学計算など、精度が重要なワークロードにとって不可欠です。
ECCエラーには2種類あります。シングルビットエラー(SBE)は、単一のビットが不正確な場合に発生します。ECCはこれを自動的に修正できます。時折のSBEは正常であり、宇宙線や電気ノイズによって自然に発生することがあります。ダブルビットエラー(DBE)は、2つ以上のビットが不正確な場合に発生します。ECCはこれを修正できません。DBEはデータの破損やシステムの障害を引き起こす可能性があります。 ECCエラーの監視は、メモリハードウェアの健康状態を追跡するために重要です。集計ECCエラー数が1,000を超える場合は、GPUのメモリの交換を検討することをお勧めします。ECCエラー率の急激な増加は、メモリの劣化の強い兆候です。
たとえ1つのDBEが発生した場合でも、それは重大なイベントとして分類されます。影響を受けたGPUは、すぐに作業負荷から外し、検査する必要があります。これは、DBEが結果を信頼できないものにする可能性があるため、特に重要です。
Error Types- Single Bit Error (SBE): 自動的に修正可能; 時折の発生は正常
- Double Bit Error (DBE): 修正不可能; データの破損を引き起こす可能性あり
- 集計ECCエラー ≥ 1,000: GPUメモリの交換を検討
- 少なくとも1つのDBE: 重大な状態; すぐにジョブを停止し、GPUを検査
GPU健康評価システム
ユーザーが各個別の指標の意味を理解したら、次のステップはこれらの指標を統合してGPUの全体的な健康状態を評価することです。このシステムは単に生の数字を提示するだけでなく、複数の指標を分析し、各GPUを6つのレベルに分類します。これにより、管理者とユーザーはGPUの状態を一目で簡単に評価できます。
ステータスレベル
各GPUは評価され、6つのステータスレベルのいずれかに分類されます。これらのステータスは色分けされ、ダッシュボードに表示されるため、管理者とユーザーは数十のGPUを迅速にスキャンし、すぐに問題を見つけることができます。
| Status | Color | Meaning | Example |
|---|---|---|---|
| 優秀 | 緑 | 最適なパフォーマンス | 使用率90%、温度65°C |
| 良好 | 緑 | 通常の動作 | 使用率60%、温度75°C |
| 悪い | 黄 | 最適でないパフォーマンス | 使用率30%、調整が必要 |
| Poor | オレンジ | 深刻な非効率 | 使用率10%、即時チェック |
| 警告 | オレンジ | 警告状態 | 温度 87°C、スロットリング検出 |
| クリティカル | 赤 | 直ちに行動が必要 | 温度 92°C、XIDエラー |
- Excellent: これは最良の状態であり、すべてが理想的に動作しています。割り当てられたGPUは高効率でタスクを実行しており、温度は低く、すべてのメトリックは最適な範囲内です。緑色で表示されており、ユーザーは安心して作業できます。管理者にとって、クラスターのほとんどが優れた状態であることは、健全なインフラを示しています。
- Good: これは正常で健康的な動作状態です。すべてのメトリックは許容範囲内ですが、優れた状態ほど最適化されていません。たとえば、GPUの使用率が60%は推奨レベルを満たしていますが、理想的な75%には達していません。緑色で表示されており、問題はありませんが、改善の余地があります。
- Bad: この状態は、パフォーマンスが不十分であることを示しています。GPUは割り当てられていますが、効率的に使用されていません。たとえば、使用率が30%しかないか、メモリ使用量が最小限です。これは黄色で表示され、ユーザーにワークロードを最適化するように警告します。コストが無駄になっていますが、即座のリスクはありません。
- Poor: これは非常に低いパフォーマンスの状態であり、悪い状態よりもさらに非効率的です。GPUの使用率が10%未満であるか、GPUが割り当てられているがほとんど作業をしていない場合に発生します。オレンジ色で表示されており、この状態は即座の調査が必要です。コードにバグがあるか、操作が失敗したがGPUはまだ割り当てられているか、開発者がGPUを返すのを忘れた可能性があります。