Project-HAMi/HAMi

▲ 35 stars today★ 4,690⑂ 854

Heterogeneous GPU Sharing on Kubernetes

About Project-HAMi/HAMi

Project-HAMi/HAMi is an open-source project on GitHub, mainly written in Go. Heterogeneous GPU Sharing on Kubernetes It currently holds 4,690 stars and 854 forks with 49 open issues, and was last pushed on 2026-10-11 (repository created 2021-09-14).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #84 with 35 new stars today.

GitHub Repository Details

Repository Project-HAMi/HAMi · default branch master · size 24997 KB · watchers 27 · source: GitHub REST API and repository README

README

English version | 中文版 | 日本語版

https://github.com/Project-HAMi/HAMi/blob/HEAD/HAMi logo

LICENSE build status Releases OpenSSF Best Practices OpenSSF Scorecard Go Report Card codecov FOSSA Status docker pulls slack discord website

HAMi

Kubernetes GPU virtualization and heterogeneous accelerator scheduling for AI infrastructure.

HAMi Architecture

HAMi stands for Heterogeneous AI Computing Virtualization Middleware. Formerly known as k8s-vGPU-scheduler, HAMi helps platform teams share expensive GPUs and other AI accelerators across Kubernetes workloads, isolate device memory and compute, and schedule pods with device-aware policies without changing application code.

HAMi is a CNCF Incubating and CNCF Landscape project. It is also listed in the CNAI Landscape.

CNCF logo

Why HAMi?

AI infrastructure teams often run into the same Kubernetes accelerator problems: whole GPUs are allocated to small jobs, teams compete for scarce devices, different accelerator vendors expose different operational models, and schedulers lack enough device context to place workloads efficiently.

HAMi provides a Kubernetes-native layer for:

Use Cases

How It Works

HAMi is composed of a mutating webhook, scheduler extender, device plugins, and device-specific in-container virtualization components.

Pod submission
  -> HAMi mutating webhook
  -> HAMi scheduler filter / score / bind
  -> device allocation written to pod annotations
  -> device plugin Allocate()
  -> container runtime environment
  -> HAMi monitor and metrics

Device Virtualization

HAMi lets workloads request only the accelerator resources they need. For example, the following pod asks for one physical NVIDIA GPU with 3 GiB of GPU memory:

resources:
  limits:
    nvidia.com/gpu: 1
    nvidia.com/gpumem: 3000

The workload sees the allocated device resources inside the container, while HAMi coordinates scheduling, allocation, and isolation.

Before and After Using HAMi
Notes:
> 1. After installing HAMi, the value of nvidia.com/gpu registered on the node defaults to the number of vGPUs.
2. When requesting resources in a pod, nvidia.com/gpu refers to the number of physical GPUs required by the current pod.

Supported Devices

HAMi supports multiple heterogeneous accelerator backends, including GPUs, NPUs, HCUs, MLUs, GCUs, XPUs, and more. Device capabilities vary by vendor, model, driver, and hardware generation.

See the current HAMi supported devices page for the maintained support matrix.

Quick Start

Prerequisites

For the NVIDIA device plugin path, prepare:

Install With Helm

Label GPU nodes so HAMi can manage them:

kubectl label nodes  gpu=on

Add the HAMi Helm repository:

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

Install HAMi:

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

Verify that the scheduler and device plugin are running:

kubectl get pods -n kube-system

When hami-device-plugin and hami-scheduler are both Running, submit an example workload:

kubectl apply -f examples/nvidia/default_use.yaml

For the complete installation guide and configuration options, see the HAMi documentation.

Scheduling Policies

HAMi supports multiple scheduling modes for AI workloads:

HAMi works with the default Kubernetes scheduler path and can also be used with Volcano for batch-oriented AI workloads. See the HAMi website for current scheduler integration guides.

Observability And WebUI

HAMi exposes metrics for monitoring cluster accelerator usage. After installation, metrics are available through the scheduler monitor endpoint:

http://:/metrics

The default monitor port is 31993. You can change it with Helm values such as --set scheduler.service.monitorPort=.

HAMi also provides:

HAMi WebUI

Ecosystem Integrations

| Project | What the integration enables | | --- | --- | | vLLM | Run inference servers with GPU memory caps, enabling multiple models to share one GPU | | Volcano | Gang scheduling and queue-based batch scheduling for GPU workloads | | Kueue | HAMi resources exposed to Kueue via ResourceTransformation for batch job queueing | | Prometheus | HAMi exposes per-container GPU metrics including memory usage and utilization | | Grafana | Pre-built dashboard available for visualizing HAMi GPU metrics | | NVIDIA GPU Operator | Can coexist with GPU Operator when HAMi manages scheduling and the Operator manages drivers |

Roadmap, Governance, And Contributing

HAMi is governed by maintainers and contributors. Governance is described in the HAMi community repository.

To contribute code, documentation, tests, or device backend improvements, read CONTRIBUTING.md.

Community

The HAMi community is open to users, contributors, hardware vendors, and platform teams building Kubernetes-based AI infrastructure.

Talks And References

| Event | Talk | | --- | --- | | CHINA CLOUD COMPUTING INFRASTRUCTURE DEVELOPER CONFERENCE, Beijing 2024 | Unlocking heterogeneous AI infrastructure on k8s clusters | | 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 Europe 2024 | Cloud Native Batch Computing with Volcano: Updates and Future |

License

HAMi is licensed under the Apache License 2.0. See LICENSE for details.

Copyright Contributors to HAMi, established as HAMi a Series of LF Projects, LLC.

GitHub Stars & Activity

4,690Stars
854Forks
49Open issues
GoLanguage

GitHub Popularity

GitHub stars4,690
Forks854
Open issues49
Primary languageGo
LicenseApache-2.0
Stars gained today35
Created2021-09-14
Last pushed2026-10-11

Trending History

Daily boardrank #84 · ▲ 35 stars

Related GitHub Projects

1

multica-ai / multica

Go★ 52,472⑂ 6,837▲ 81 stars
→
2

QuantumNous / new-api

Go★ 49,717⑂ 11,953▲ 72 stars
→
3

alibaba / open-code-review

Go★ 46,129⑂ 3,347▲ 297 stars
→
4

Wei-Shaw / sub2api

Go★ 43,719⑂ 9,383▲ 75 stars
→
5

Tencent / WeKnora

Go★ 33,170⑂ 4,416▲ 128 stars
→
6

BishopFox / sliver

Go★ 12,083⑂ 1,620▲ 60 stars
→
7

majd / ipatool

Go★ 11,619⑂ 973▲ 48 stars
→
8

lharries / whatsapp-mcp

Go★ 6,536⑂ 1,384▲ 63 stars
→

More Trending Repositories