Kubernetes scheduler for virtualized GPUs
Top 57.4% on sourcepulse
This project provides a Kubernetes device plugin and scheduler for virtualizing GPU resources, enabling fine-grained allocation of GPU memory and compute units. It targets AI/ML workloads and cloud platforms needing to maximize GPU utilization by sharing resources among multiple tasks or allowing oversubscription of GPU memory.
How It Works
The solution extends the NVIDIA device plugin for Kubernetes, allowing users to request fractional GPUs, specify memory limits (e.g., 3000MB or 50% of total), and even oversubscribe GPU memory by using host RAM as swap. It also supports specifying desired GPU types or avoiding certain types via annotations. The scheduler component balances GPU usage across nodes, aiming for improved resource utilization.
Quick Start & Requirements
helm repo add vgpu-charts https://4paradigm.github.io/k8s-vgpu-scheduler
. Install: helm install vgpu vgpu-charts/vgpu --set scheduler.kubeScheduler.imageTag=<your-k8s-version> -n kube-system
.gpu=on
.Highlighted Details
Maintenance & Community
The project has been renamed to project-HAMi
but the old repository is maintained for compatibility. Contact information for the owner/maintainer is provided.
Licensing & Compatibility
The README does not explicitly state the license. Compatibility for commercial use or closed-source linking is not specified.
Limitations & Caveats
Currently, A100 MIG supports only "none" and "mixed" modes. Tasks specifying nodeName
are not supported; nodeSelector
should be used instead. Only computing tasks are supported; video codec processing is not yet implemented.
1 year ago
1 week