Choose Your Setup
HAMi ships in more than one shape, and two other projects sit next to it. This page answers the question people ask first: which one do I install?
HAMi or HAMi-DRA
Both give a container a slice of a GPU. They differ in how Kubernetes hands the device over.
Pick classic HAMi unless every line below is true for your cluster:
- Kubernetes v1.34 or later, with the DRA Consumable Capacity feature gate enabled
- CDI enabled in containerd or CRI-O
- NVIDIA GPU driver 440 or later
If any of them is missing, HAMi-DRA cannot run. See HAMi DRA for Kubernetes for the full prerequisites.
| Classic HAMi | HAMi-DRA | |
|---|---|---|
| Kubernetes | v1.23 or later | v1.34 or later, feature gate on |
| How devices reach the pod | Device Plugin | ResourceClaim, through a mutating webhook |
| Pod spec | nvidia.com/gpu, nvidia.com/gpumem and nvidia.com/gpucores limits | the same limits, converted to a ResourceClaim for you |
| CDI | not required | required |
| Extra components | none | cert-manager |
Both run HAMi-core inside the container, so the memory and core limits behave the same either way. HAMi-DRA changes the allocation path, not the isolation.
Start with Deploy HAMi using Helm, or with HAMi DRA for Kubernetes if the list above is satisfied.
HAMi, Volcano vGPU or KAI Scheduler
These are not three answers to the same question. Scheduling and isolation are separate jobs:
- Scheduling decides which pod lands on which GPU, and how much of it the pod may claim.
- Isolation is what stops a pod from using more than it claimed. In every option below that work is done by the same library, HAMi-core, injected into the container.
So the real choice is which scheduler you already run.
| HAMi | Volcano vGPU | KAI Scheduler | |
|---|---|---|---|
| Scheduler | HAMi scheduler | Volcano | KAI |
| Device plugin | HAMi device plugin | volcano-vgpu-device-plugin | NVIDIA device plugin |
| Isolation | HAMi-core | HAMi-core | HAMi-core, through kai-resource-isolator |
| Install HAMi as well | n/a | no | no |
| Gang scheduling and queues | no | yes | yes |
| Non-NVIDIA devices | yes, see Device supported by HAMi | NVIDIA only, Ascend goes through the separate Volcano vNPU integration | NVIDIA |
| Requires | HAMi v2.x | Volcano later than v1.9 | KAI v0.16.4 or later |
| Guide | Deploy HAMi using Helm | Use Volcano vGPU | Use KAI Scheduler with HAMi |
A short way to decide:
- No scheduler preference, or devices other than NVIDIA: HAMi.
- Already running Volcano for batch jobs: Volcano vGPU. You do not need to install HAMi.
- Already running KAI: KAI Scheduler plus kai-resource-isolator. Without the isolator, a pod that asks for a fraction of a GPU can still use all of it.
Only one device plugin may own nvidia.com/gpu on a node. Remove or disable the NVIDIA device plugin before installing the HAMi one. See the FAQ.