Tutorials
Hands-on tutorials for learning HAMi by doing. Each lab is a step-by-step exercise with real, captured outputs: you build a cluster, install HAMi, and verify GPU partitioning behavior yourself.
Concepts
Background knowledge that the labs build on.
- GPU Software Stack Overview: the 5 layers from hardware to Kubernetes scheduling
- Understanding GPU Drivers: kernel modules, NVML, and how to troubleshoot from the bottom up
- HAMi Cluster Architecture: every component in a HAMi cluster and what breaks without it
Labs
Build a GPU Kubernetes cluster from scratch on a cloud VM and install HAMi.
Learn the HAMi control plane on a laptop, no GPU required.
Run multiple Pods on one GPU with enforced VRAM and compute limits.
The same outcome through Kubernetes-native Dynamic Resource Allocation (experimental).
Simulate 8 A100 GPUs with HAMi scheduling features, no real GPU needed.
Install HAMi on a GPU cluster and schedule vLLM inference services with GPU partitioning.
Share one non-MIG GPU between Pods on single-node k3s and prove HAMi-core enforces the memory cap.
Share one GPU with Volcano vGPU, then verify Gang scheduling and queue-level vGPU limits.
Enforce vGPU count, memory, and compute quotas for HAMi workloads before Pods reach the scheduler.
Simulate an asymmetric PCIe topology and verify HAMi's topology-aware scheduler avoids a poorly-connected GPU for multi-GPU requests and picks it for single-GPU requests, no real GPU required.
Deploy a KServe Standard vLLM service and run two Predictor replicas on one NVIDIA GPU through native HAMi DRA claims.
Deploy KAI Scheduler and kai-resource-isolator on GKE, adapt the COS/CDI runtime path, and prove per-Pod GPU memory isolation with CUDA allocations.
Build Volcano and the ascend-device-plugin from source on an aarch64 Ascend server, enable hami-vnpu-core soft slicing, and verify memory isolation, binpack card sharing, and per-container metrics.
Install HAMi v2.10.0 on a GKE node with four Tesla T4s and observe spread, binpack, mutex, and the composed mutex,binpack chain through allocation annotations and scheduler logs.
Each lab lists its own prerequisites.
- Labs 3 and 4 continue from the cluster Lab 1 builds, so a single session covers all three.
- Lab 2 runs on any laptop with no GPU required.
- Lab 7 brings up its own single-node k3s cluster on a rented GPU VM, without the GPU Operator.
- Lab 8 requires an existing Volcano GPU cluster and validates Volcano vGPU, Gang scheduling, and queue-level limits.
- Lab 9 uses Kueue admission control to enforce HAMi vGPU count, memory, and compute quotas.
- Lab 11 builds a complete KServe Standard inference stack and runs two vLLM replicas on one GPU through native HAMi DRA claims.
- Lab 12 deploys KAI Scheduler and HAMi-core on GKE 1.35/COS/CDI and proves the memory ceiling with CUDA allocations.
- Lab 13 builds Volcano and the ascend-device-plugin from source on an Ascend 310P3 ARM server and verifies hami-vnpu-core soft slicing, binpack card sharing, and per-container metrics.
- Lab 14 installs HAMi v2.10.0 on a four-T4 GKE node and observes the composable
gpu-scheduler-policychains (spread,binpack,mutex,mutex,binpack) through allocation annotations and scheduler logs.