Repolode
Project-HAMi

Project-HAMi/HAMi

デバイスを考慮したスケジューリングにより、GPUなどのAIアクセラレータをメモリや計算能力に応じてPod間で共有するKubernetesミドルウェア。

スター
4,896
フォーク
872
未解決の Issue
33
最終コミット
7 時間前

これは何?

HAMi(Heterogeneous AI Computing Virtualization Middleware、旧称 k8s-vGPU-scheduler)は、プラットフォームチームが高価なGPUなどのAIアクセラレータをKubernetesワークロード間で共有できるようにします。Podは標準のKubernetesリソース制限を使って、メモリ容量またはコア数でデバイスの一部を要求できるため、アプリケーションのコードを変更する必要はありません。

mutating webhook、scheduler extender、device plugin、コンテナ内の仮想化コンポーネントで構成されています。スケジューリングではbinpack、spread、トポロジー対応、mutex、NUMAの各ポリシーを利用でき、NVIDIA MIGインスタンスの動的な作成と回収にも対応しています。対応バックエンドにはNVIDIA、AMD、Huawei Ascend、Cambricon、Hygon、Iluvatar、Kunlunxin、MetaX、Moore Threadsなどがあります。

Helmでインストールでき、オプションでスケジューラの高可用性レプリカ、Prometheusメトリクス、付属のWebUIを利用できます。CNCF Incubatingプロジェクトです。

主な機能

  • 01標準のKubernetesリソース要求を使い、メモリやコア数の上限に基づいてGPUを共有できます。
  • 02binpack、spread、トポロジー対応、mutex、NUMAの各ポリシーでPodをスケジューリングします。
  • 03NVIDIA MIGに対応し、インスタンスを動的に管理できます。
  • 04Ascend、Cambricon、Hygon、MetaXなど、複数ベンダーのアクセラレータに対応しています。
  • 05Prometheusメトリクスを提供し、WebUIとGrafanaダッシュボードを利用できます。

ユースケース

  • 共有Kubernetes AIクラスターでGPUの利用率を高める。
  • 単一のアクセラレータプール上で、マルチテナントのノートブック、学習、推論ワークロードを実行する。
  • デバイス割り当てのクォータを制御できるプライベートクラウドAIプラットフォームを構築する。
  • 複数ベンダーのアクセラレータが混在するクラスターを、共通のスケジューリング方式で運用する。

クイックスタート

  1. 1

    HAMi が管理できるように GPU ノードにラベルを付けます

    kubectl label nodes <node-name> gpu=on
  2. 2

    HAMi の Helm リポジトリを追加します

    helm repo add hami-charts https://project-hami.github.io/HAMi/
  3. 3

    Helm を使って kube-system に HAMi をインストールします

    helm install hami hami-charts/hami -n kube-system
  4. 4

    hami-device-plugin と hami-scheduler が Running であることを確認します

    kubectl get pods -n kube-system

使う前に知っておきたいこと

  • Helm を利用できる Kubernetes クラスターが必要です。また、NVIDIA を使用する場合は NVIDIA ドライバーとコンテナツールキットが必要です。
  • 利用するには、クラスターのノードにアクセラレーターのハードウェアが必要です。

トピック

よくある質問

HAMi とは?
デバイスを考慮したスケジューリングにより、GPUなどのAIアクセラレータをメモリや計算能力に応じてPod間で共有するKubernetesミドルウェア。 HAMi(Heterogeneous AI Computing Virtualization Middleware、旧称 k8s-vGPU-scheduler)は、プラットフォームチームが高価なGPUなどのAIアクセラレータをKubernetesワークロード間で共有できるようにします。Podは標準のKubernetesリソース制限を使って、メモリ容量またはコア数でデバイスの一部を要求できるため、アプリケーションのコードを変更する必要はありません。
HAMi は無料で使えますか?ライセンスは?
HAMi は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
HAMi は今もメンテナンスされていますか?
活発にメンテナンス中。HAMi の最終コミットは 2026年10月21日 です。
HAMi は何に使えますか?
共有Kubernetes AIクラスターでGPUの利用率を高める。 単一のアクセラレータプール上で、マルチテナントのノートブック、学習、推論ワークロードを実行する。 デバイス割り当てのクォータを制御できるプライベートクラウドAIプラットフォームを構築する。 複数ベンダーのアクセラレータが混在するクラスターを、共通のスケジューリング方式で運用する。
HAMi のインストール方法は?
HAMi が管理できるように GPU ノードにラベルを付けます: kubectl label nodes <node-name> gpu=on HAMi の Helm リポジトリを追加します: helm repo add hami-charts https://project-hami.github.io/HAMi/ Helm を使って kube-system に HAMi をインストールします: helm install hami hami-charts/hami -n kube-system hami-device-plugin と hami-scheduler が Running であることを確認します: kubectl get pods -n kube-system
HAMi はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Project-HAMi/HAMi

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト