Project-HAMi/HAMi
Heterogeneous GPU Sharing on Kubernetes
解決する課題
AI インフラストラクチャチームは、Kubernetes での GPU 利用効率の低さにしばしば直面します。GPU 全体が小さなジョブに割り当てられ、リソース不足や競合が発生します。HAMi は、複数のワークロードが単一の物理アクセラレータを共有できるようにし、細粒度のリソース分離と、異なるハードウェアベンダー間でのデバイス認識スケジューリングを提供することで、この問題に対処します。
仕組み
HAMi は Kubernetes ネイティブの仮想化ミドルウェアとして機能します。ミューテーティング Webhook、スケジューラーエクステンダー、デバイスプラグインを使用して Pod の送信をインターセプトし、アクセラレータのメモリまたはコンピュートコアの特定の割合を割り当てます。これにより、ワークロードはアプリケーションコードを変更することなく、特定の量の GPU メモリ(例:3 GiB)を要求できます。HAMi は物理ハードウェア上でのこれらのリソースのスケジューリングと分離を調整します。
対象ユーザー
異種アクセラレータプール(NVIDIA、Ascend、Cambricon など)上で、ノートブック、トレーニング、推論サーバーなどのマルチテナント AI ワークロードを実行する Kubernetes クラスターを管理するプラットフォームエンジニアおよび AI インフラストラクチャチーム。
ハイライト
- デバイス共有:メモリ、コア、またはデバイス数で物理アクセラレータの一部を割り当てます。
- 異種サポート:単一のワークフローで複数のアクセラレータタイプ(GPU、NPU、HCU、MLU)を管理します。
- デバイス認識スケジューリング:binpack、spread、トポロジー認識スケジューリングポリシーをサポートし、配置を最適化します。
- アプリケーション変更不要:標準の Kubernetes リソース要求と制限で動作します。
- 動的 MIG:NVIDIA マルチインスタンス GPU(MIG)インスタンスを動的に作成、キャッシュ、再利用します。
- エコシステム統合:メモリ上限付き推論のために vLLM と、バッチスケジューリングのために Volcano と統合します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト