Project-HAMi/HAMi

Heterogeneous GPU Sharing on Kubernetes

何を解決するか

HAMiは、KubernetesクラスタにおけるGPU割り当ての非効率性に対処します。小さなジョブに全体のGPUが割り当てられることが多く、リソースの無駄が生じます。また、NVIDIA GPU、NPUs、DCUsなど多様なアクセラレータハードウェアを、単一の統一されたワークフローで管理する問題も解決し、ベンダー依存を回避し、AIチームのインフラ管理を簡素化します。

動作方法

HAMiはKubernetesとハードウェアの間に仮想化ミドルウェア層として機能します。ミューテイティングWebhook、スケジューラ拡張、デバイスプラグインを使用して、ポッドの提出をインターセプトし、アクセラレータのメモリまたはコンピューティングコアの特定の割合を割り当てます。これにより、複数のワークロードが1つの物理デバイスを共有しながら、リソースの隔離を維持でき、アプリケーションコードの変更は一切不要です。

対象ユーザー

KubernetesベースのAIクラスタを管理するプラットフォームエンジニアやAIインフラチームで、GPU利用率を向上させ、マルチテナント環境(ノートブックや推論サーバーなど)をサポートし、複数のベンダーの異種ハードウェアを管理したい方々に最適です。

主な特徴

  • デバイス共有: メモリ、コア、デバイス数に基づいて物理アクセラレータの部分を割り当て可能。
  • 異種アクセラレータ対応: NVIDIA GPUおよびその他のさまざまなアクセラレータ(NPUs、DCUs、MLUsなど)を統一的に管理。
  • デバイス認識スケジューリング: ビンパック、スプレッド、トポロジ認識ポリシーをサポートし、ワークロード配置を最適化。
  • アプリケーション変更ゼロ: 通常のKubernetesリソースリクエストとリミットと互換性あり。
  • 可視性: アクセラレータ使用状況を監視するためのWebUIとGrafanaダッシュボードを提供。

関連

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