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 と統合します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト