Azure Kubernetes Service (AKS)では、AI/ML トレーニング、リアルタイム推論、大規模なデータ分析など、コンピューティング集中型ワークロードを実行するための NVIDIA GPU 対応ノード プールがサポートされています。 従来、GPU は 1 対 1 のモデルで割り当てられ、1 つの Kubernetes ポッドが Azure 仮想マシン (VM) 内で GPU デバイス全体を消費します。 このモデルはシンプルで強力な分離を提供しますが、ワークロードがクラスター内の使用可能な GPU リソースを完全に消費しないシナリオでは、使用率が低くなります。
使用率を向上させ、同時ワークロードをサポートするために、お客様はノード プールにさまざまな GPU パーティション分割戦略を統合できます。 これらのアプローチにより、複数のワークロードで、1 つの物理 GPU を小さな論理ユニットに分割するか、ソフトウェアまたは GPU ドライバー レベルでアクセスを拡張することで、1 つの物理 GPU を共有できます。
この記事では、AKS での NVIDIA GPU の 3 つのプライマリ ノード パーティション分割戦略について説明します。 マルチインスタンス GPU (MIG)、 タイム スライス、 マルチプロセス サービス (MPS) です。
AKS での GPU ノードのパーティション分割戦略の概要
AKS 環境で使用できる 3 つの主な戦略は、マルチインスタンス GPU (MIG)、タイム スライス、マルチプロセス サービス (MPS) です。 AKS プラットフォームの管理、分離の種類、デプロイのユース ケースでは、それぞれのアプローチが異なります。
| Strategy | AKS 上で管理または許可される | GPU 共有の種類 | 推奨対象 |
|---|---|---|---|
| マルチインスタンス GPU (MIG) | マネージド (または GPU オペレーター経由でユーザーが管理) | ハードウェアパーティション分割 | プロダクション ワークロード |
| タイムスライシング (NVIDIA GPU Operator を介した) | ユーザー管理、AKS 利用可 | ソフトウェアのスケジュール設定 | 可変 GPU 負荷の実験 |
| マルチプロセス サービス (MPS、NVIDIA GPU オペレーター) | ユーザー管理、AKS 許可 | CUDA レベルのプロセス多重化 | 低待機時間で高スループットのワークロード |
AKS 上のマネージド マルチインスタンス GPU (MIG)
マルチインスタンス GPU (MIG) は、A100、H100、H200 シリーズなど、一部の NVIDIA GPU アーキテクチャで使用できるハードウェア ベースのパーティション分割機能です。 MIG を使用すると、1 つの物理 GPU を複数の分離されたインスタンスに分割できます。それぞれに専用のコンピューティング コア、メモリ、キャッシュがあります。 これにより、強力なワークロード分離と予測可能なパフォーマンス特性が保証され、MIG は運用環境に適しています。
AKS では、MIG はマネージド機能です。 MIG 対応ノード プールがプロビジョニングされると、AZUREは GPU ハードウェアを構成し、必要なドライバー スタックをインストールして維持し、NVIDIA デバイス プラグインを介して MIG インスタンスと Kubernetes を統合します。 各 MIG スライスは、個別の割り当て可能なリソースとして Kubernetes スケジューラに公開されるため、ポッドは詳細で確定的な方法で GPU 容量を要求できます。
この方法では、エンタープライズ展開に対していくつかの利点があります。 ハードウェア レベルのパーティション分割によって運用グレードの分離を提供し、ドライバーの更新や構成などのライフサイクル管理を AKS に委任することで、運用上のオーバーヘッドを削減します。 さらに、MIG インスタンスはスケジューラの観点から独立した GPU デバイスとして動作し、予測可能な配置とリソース割り当てを可能にします。
ただし、MIG には特定の制約も導入されています。パーティション構成はノード プール レベルで静的です。つまり、変更にはノードの再プロビジョニングが必要です。 柔軟性は、基になる GPU ハードウェアでサポートされている定義済みの MIG プロファイルに限定されます。
NVIDIA GPU Operator を使用したタイム スライシング (ユーザー管理)
タイム スライス はソフトウェアベースの GPU 共有メカニズムであり、複数の Kubernetes ポッドが時間の経過と同時に実行をインターリーブすることで 1 つの GPU を共有できます。 このアプローチは、GPU ドライバー、Kubernetes デバイス プラグイン、コンテナー ランタイム構成を管理する NVIDIA GPU オペレーターを通じて実装されます。
タイム スライスは AKS ノード プールで構成できますが、プラットフォームで 管理することはできません 。 クラスター オペレーターは、NVIDIA GPU オペレーターをデプロイして構成し、通常は Helm を使用して構成し、デバイス プラグイン設定によるタイム スライスを有効にする役割を担います。 構成が完了すると、複数のポッドが同じ GPU リソースへのアクセスを要求でき、それらのワークロードは時間共有方式でスケジュールされます。
タイム スライスは、特定の GPU ハードウェア機能に依存せず、CUDA でサポートされているほとんどの NVIDIA GPU で使用できるため、柔軟性と広範な互換性を提供します。 これは、バーストまたは可変 GPU 使用率パターンを持つ開発、テスト、またはワークロードに役立ちます。
柔軟性があるにもかかわらず、タイムスライシングではハードウェアレベルの分離は実現されません。 すべてのワークロードで同じ GPU メモリとコンピューティング リソースが共有されるため、競合や予測できないパフォーマンスが発生する可能性があります。 構成とライフサイクル管理はユーザー主導であるため、オペレーターはドライバーの更新、互換性、チューニングも処理する必要があります。 そのため、厳密なサービス レベル アグリーメント (SLA) を必要とする運用環境のワークロードでは、通常、タイム スライスは推奨されません。
NVIDIA GPU オペレーター (ユーザーが管理) を使用したマルチプロセス サービス (MPS)
NVIDIA マルチプロセス サービス (MPS) は、複数の CUDA アプリケーションを 1 つの GPU 上で同時に実行できるようにするドライバー レベルの機能です。 MPS では、ワークロード間で実行を代替するタイム スライスとは異なり、さまざまなプロセスのカーネルを同時に実行できるため、GPU の全体的な使用率が向上し、互換性のあるワークロードの待機時間が短縮されます。
AKS では、NVIDIA GPU オペレーターの ユーザーが管理 するデプロイを使用して MPS を構成できます。 オペレーターは、MPS を有効にし、MPS コントロール デーモンのライフサイクルを管理するように GPU ドライバー環境を構成する必要があります。 同じ MPS サーバーに接続するワークロードは、GPU を共有し、同時カーネル実行の利点を得ることができます。
MPS は、バッチ ジョブや密結合並列ワークロードなど、高スループットで待機時間の短いシナリオに役立ちます。 GPU 共有をきめ細かく制御でき、ワークロードが同時実行を利用するように設計されている場合の使用率を大幅に向上させることができます。
ただし、MPS では、運用上の複雑さが増します。 構成は手動で行われ、トラブルシューティングは他の方法と比べてより複雑になる場合があります。 タイム スライスと同様に、MPS では、すべてのプロセスが GPU メモリとコンピューティング リソースを共有するため、強力な分離は提供されません。 そのため、一般に、厳密なサービス レベル アグリーメント (SLA) を必要とする運用環境のワークロードでは、MPS は推奨されません。
GPU パーティション分割戦略を選択する方法
AKS で適切な GPU パーティション分割戦略を選択することは、ワークロードの要件、運用上の好み、およびパフォーマンスの期待に応じて異なります。 MIG は、強力な分離と予測可能なパフォーマンスを必要とする運用環境に推奨されるアプローチです。 AKS ノード プール機能として、MIG は操作を簡略化し、管理オーバーヘッドを削減します。
タイム スライスは、GPU の需要が変動する非運用環境やワークロードに役立ちます。使用率の最大化は一貫性よりも重要です。 ハードウェアに依存しないソリューションが提供されますが、慎重な管理が必要であり、パフォーマンスの分離は保証されません。
MPS は、GPU の同時実行と待機時間の短縮のメリットを得る特殊なワークロードに最適です。 最も高い潜在的な利用効率が見込める一方で、複雑さが増し、分離性は最小限にとどまるため、CUDA 対応アプリケーションを使用する上級ユーザーに最も適しています。
実際には、組織は環境ごとに異なる戦略を採用でき、本番クラスターでは MIG を使用し、開発時や実験的なシナリオではタイムスライシングや MPS を活用できます。 最も効果的な長期的なパーティション分割アプローチを選択するには、GPU ワークロードの特性と運用上の制約を慎重に評価することが不可欠です。
関連するコンテンツ
- AKS での マルチインスタンス GPU ノード プール の使用を開始します。
- GPU 対応ノード ライフサイクル管理のベスト プラクティスについて説明します。
- クラスターでノード ビン パッキング を構成して、GPU ノードの使用率とパフォーマンスを最適化します。