Session
DRA Allocates, But Who Enforces? Closing the GPU Sharing Gap with HAMi
With Kubernetes v1.36, DRA's partitionable-devices and consumable-capacity features reached beta and are now enabled by default. This means pods can request part of a GPU, and the scheduler will not overcommit a device's capacity. But does this solve the problem of idle GPU usage? Not quite. DRA handles allocation, but not enforcement during runtime. After a pod starts, the Kubernetes API does not stop a process from using more than its assigned share. Enforcing limits is still up to the driver, which today means using MIG's fixed hardware partitions or, if using time-slicing, having almost no enforcement.
In this session, we'll take a practical look at HAMi, the CNCF Incubating GPU virtualization middleware that addresses the enforcement gap in software. We'll trace a shared GPU request from start to finish, covering the device plugin, mutating webhook, scheduler extender, and the in-container library that intercepts CUDA calls to keep workloads within their assigned slice. Finally, we'll also see how HAMi works alongside DRA using its own DRA driver, rather than competing with it.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top