Project-HAMi/HAMi

Heterogeneous GPU Sharing on Kubernetes

解決的問題

HAMi 解決了 Kubernetes 集群中 GPU 分配效率低下的問題,即小型工作負載經常佔用整個 GPU,導致資源浪費。它也透過單一統一的工作流程,解決管理多種加速器硬體(NVIDIA GPU、NPUs、DCUs 等)的難題,避免廠商鎖定,簡化 AI 團隊的基礎設施管理。

工作原理

HAMi 作為 Kubernetes 與硬體之間的虛擬化中介層。它使用 mutating webhook、scheduler extender 和 device plugins 拦截 Pod 提交,並分配加速器記憶體或運算核心的特定比例。這使得多個工作負載可共享單一物理裝置,同時保持資源隔離,且無需變更應用程式程式碼。

適用對象

管理基於 Kubernetes 的 AI 集群的平台工程師與 AI 基礎設施團隊,他們需要提升 GPU 使用率,支援多租戶環境(如筆記本、推論伺服器),並管理來自不同廠商的異質硬體。

主要亮點

  • 設備共享:根據記憶體、核心或裝置數量,分配物理加速器的部分資源。
  • 異質支援:統一管理 NVIDIA GPU 及其他多種加速器(NPUs、DCUs、MLUs 等)。
  • 設備感知排程:支援 binpack、spread 和拓撲感知策略,優化工作負載部署。
  • 零應用程式變更:與標準 Kubernetes 資源請求與限制相容。
  • 可觀測性:提供 WebUI 與 Grafana 仪表板,用於監控加速器使用情況。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案