テクニカルガイド
GPU スケジューリングとクラスター オーケストレーション
GPU スケジューリングは、どのジョブをどのアクセラレータでいつ実行するかを決定し、オーケストレーションはマシンのクラスター全体でこれらのジョブを調整します。
このガイドを聴くAIによるナレーション · ~2 min
概要
これらを組み合わせることで、高価な GPU が多くのユーザーやワークロードに対してビジーで公平かつ信頼できる状態に保たれます。
ディープダイブ
共有 AI クラスターでは、数十人のユーザーが、それぞれ数万ドルもする希少な GPU を求めて競争します。スケジューラは、各ジョブの要件 (GPU の数、メモリ、トポロジ) を利用可能なハードウェアと照合し、優先順位とフェアシェア クォータを適用し、クラスターがいっぱいの場合でもキューが機能します。オーケストレーションはさらに進化し、コンテナーの配置、データのマウント、障害の処理、クラッシュしたワーカーの再起動、およびマルチノード分散トレーニングの結合を行います。 NVIDIA デバイス プラグインと Volcano や Kueue などのアドオンを備えた Kubernetes は、分散ジョブのすべてのワーカーが同時に開始する必要がある、または誰も開始しないギャング スケジューリングを処理します。適切なスケジューリングでは、GPU インターコネクト トポロジも考慮され、高速な NVLink 通信を必要とするランクを同じ場所に配置して、低速のクロスノード ボトルネックを回避します。
現実世界の実装
研究ラボではフェアシェア クォータを使用しているため、他のチームがキューで待機している間、単一のチームがすべての GPU を独占することはできません。
Volcano を使用した Kubernetes は 32 GPU トレーニング ジョブをギャング スケジュールするため、すべてのワーカーが同時に開始され、部分割り当てのデッドロックが回避されます。
スケジューラは、優先度の低い実験をプリエンプトしてチェックポイントを作成し、緊急の実稼働再トレーニング実行のために GPU を解放します。
トポロジを意識した配置により、NVLink に接続された 1 つのノード上に 8 つのランクが共存し、勾配のオール リデュースが高速化されます。
GPU スケジューリングとクラスター オーケストレーションの将来
スケジューラーは、フラクショナル GPU とタイムシェアリング GPU、MIG 対応のビン パッキング、優先度の高い作業の容量を再利用するためにジョブをチェックポイントするプリエンプションに関してより賢くなっています。エネルギーとコストの最適化、スポット容量の再利用、従業員数を増減させる柔軟なトレーニングのための自動ギャング スケジューリングとのより深い統合が期待されます。クラスターが数万の GPU に拡張されると、頻繁なハードウェア障害に耐えられるフォールトトレラントなオーケストレーションが不可欠になります。
実践する
なぜそれが重要なのか
- 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
- より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
- 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
気をつけてください
- 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
- インフラストラクチャとメンテナンスのコストは過小評価されがちです。
- システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
次のステップ
- 実装前にレイテンシ、品質、コストの目標を定義します。
- 現実的な負荷とデータ条件でのベンチマーク。
- エラー、ドリフト、ユーザーへの影響を計測器で監視します。
- スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
よくある質問
GPU スケジューリングとクラスター オーケストレーションとは何ですか?
GPU スケジューリングは、どのジョブをどのアクセラレータでいつ実行するかを決定し、オーケストレーションはマシンのクラスター全体でこれらのジョブを調整します。これらを組み合わせることで、高価な GPU が多くのユーザーやワークロードに対してビジーで公平かつ信頼できる状態に保たれます。
Why coordinate resource admission for a fixed-size distributed training worker group?
Gang-style admission helps obtain the needed worker group. It does not prove all partial allocations deadlock or provide exact simultaneous process starts.
How does Kubernetes normally express a device-plugin GPU resource request?
Device plugins advertise countable resources. Configured MIG or sharing mechanisms affect which resources are exposed.
トポロジ認識スケジューリングは何を最適化しようとしていますか?
データを交換するランクを同じ場所に配置して高帯域幅リンクを使用し、通信遅延をすべて削減します。
AI ジョブのバッチおよびギャング スケジューリングのために Kubernetes で一般的に使用されるアドオンはどれですか?
Volcano (および Kueue) は、AI ワークロードに対して標準的な Kubernetes にはないバッチおよびギャング スケジューリング機能を追加します。
What must a training application provide if a preempted job should resume its previous progress?
Preemption reclaims resources; it does not inherently save training progress. Checkpointing and restart logic are needed for continuation.