English version | 中文版 | 日本語版

HAMi(旧称「k8s-vGPU-scheduler」)は、Kubernetes用のヘテロジニアスデバイス管理ミドルウェアです。GPU、NPUなどの異なるタイプのヘテロジニアスデバイスを管理し、Pod間でヘテロジニアスデバイスを共有し、デバイスのトポロジーとスケジューリングポリシーに基づいてより良いスケジューリング決定を行うことができます。
HAMiは、異なるヘテロジニアスデバイス間のギャップを埋め、ユーザーがアプリケーションを変更することなく統一されたインターフェースで管理できるようにすることを目指しています。2024年12月現在、HAMiはインターネット、パブリッククラウド、プライベートクラウドだけでなく、金融、証券、エネルギー、通信、教育、製造などのさまざまな垂直産業でも広く採用されています。50以上の企業や機関がエンドユーザーであるだけでなく、アクティブな貢献者でもあります。

HAMiはCloud Native Computing Foundation(CNCF)のサンドボックス及びlandscapeプロジェクトであり、 CNAI Landscapeプロジェクトでもあります。
HAMiは、デバイス共有とデバイスリソース分離をサポートすることにより、GPUを含むいくつかのヘテロジニアスデバイスにデバイス仮想化を提供します。デバイス仮想化をサポートするデバイスのリストについては、サポートされているデバイスを参照してください。

デバイス分離の簡単なデモンストレーション: 次のリソースを持つタスクは、コンテナ内で3000MのデバイスメモリーとGPUを認識します:
resources:
limits:
nvidia.com/gpu: 1 # Podが必要とする物理GPUの数を宣言
nvidia.com/gpumem: 3000 # 各物理GPUがPodに割り当てる3GのGPUメモリを識別

注意: 1. HAMiをインストールした後、ノードに登録される
nvidia.com/gpuの値はデフォルトでvGPUの数になります。 2. Pod内でリソースをリクエストする場合、nvidia.com/gpuは現在のPodが必要とする物理GPUの数を指します。
NVIDIA GPU
Cambricon MLU
HYGON DCU
Iluvatar CoreX GPU
Moore Threads GPU
HUAWEI Ascend NPU
MetaX GPU

HAMiは、統一されたmutatingwebhook、統一されたスケジューラーエクステンダー、異なるデバイスプラグイン、および各ヘテロジニアスAIデバイスのための異なるコンテナ内仮想化技術を含む、いくつかのコンポーネントで構成されています。
NVIDIAデバイスプラグインを実行するための前提条件のリストは以下の通りです:
まず、「gpu=on」ラベルを追加して、HAMiでスケジューリングするためにGPUノードにラベルを付けます。このラベルがないと、ノードはスケジューラーで管理できません。
kubectl label nodes {nodeid} gpu=on
helmにリポジトリを追加します
helm repo add hami-charts https://project-hami.github.io/HAMi/
次のコマンドでデプロイします:
helm install hami hami-charts/hami -n kube-system
設定を調整してインストールをカスタマイズします。
次のコマンドでインストールを確認します:
kubectl get pods -n kube-system
hami-device-plugin(旧称vgpu-device-plugin)とhami-scheduler(旧称vgpu-scheduler)の両方のPodがRunning状態であれば、インストールは成功です。こちらの例を試すことができます。
HAMi-WebUIはHAMi v2.4以降で利用可能です。
インストールガイドについては、こちらをクリックしてください。
モニタリングはインストール後に自動的に有効になります。次のURLにアクセスしてクラスター情報の概要を取得します:
http://{scheduler ip}:{monitorPort}/metrics
デフォルトのmonitorPortは31993です。他の値はインストール時に--set devicePlugin.service.httpPortを使用して設定できます。
Grafanaダッシュボードの例
注意 タスクを送信する前にノードのステータスは収集されません
このプロジェクトはメンテナーとコントリビューターのグループによって管理されています。彼らがどのように選ばれ、管理されているかは、ガバナンスドキュメントに概説されています。
コントリビューターになり、HAMiコードの開発に関わることに興味がある場合は、パッチの送信とコントリビューションワークフローの詳細についてCONTRIBUTINGを参照してください。
興味のあることについてはロードマップを参照してください。
HAMiコミュニティは、オープンで歓迎的な環境を育むことに取り組んでおり、他のユーザーや開発者と関わるための複数の方法があります。
ご質問がある場合は、以下のチャネルからお気軽にお問い合わせください:
| リンク | |
|---|---|
| CHINA CLOUD COMPUTING INFRASTRUCTURE DEVELOPER CONFERENCE (Beijing 2024) | Unlocking heterogeneous AI infrastructure on k8s clusters 03:06:15から開始 |
| KubeDay(Japan 2024) | Unlocking Heterogeneous AI Infrastructure K8s Cluster:Leveraging the Power of HAMi |
| KubeCon & AI_dev Open Source GenAI & ML Summit(China 2024) | Is Your GPU Really Working Efficiently in the Data Center?N Ways to Improve GPU Usage |
| KubeCon & AI_dev Open Source GenAI & ML Summit(China 2024) | Unlocking Heterogeneous AI Infrastructure K8s Cluster |
| KubeCon(EU 2024) | Cloud Native Batch Computing with Volcano: Updates and Future |
HAMiはApache 2.0ライセンスの下にあります。詳細についてはLICENSEファイルを参照してください。
Copyright Contributors to HAMi, established as HAMi a Series of LF Projects, LLC.