5–7 Oct 2026
Europe/Prague timezone

Nova: Building an NVIDIA GPU Driver in Rust Upstream

Not scheduled
45m
LPC Refereed Track LPC Refereed Track

Speakers

Danilo Krummrich John Hubbard (NVIDIA)

Description

Nova is an open-source NVIDIA GPU driver being developed entirely upstream from day one — and in Rust. This talk presents the current status and roadmap of the project, describes the upstream development process, and dives into the driver's architecture and how Rust shapes it.

Developing a complex GPU driver fully upstream while simultaneously building out the Rust kernel infrastructure it depends on creates a unique development dynamic. The driver consumes new subsystem abstractions (such as Driver Model, PCI, DMA, I/O, etc.) as they land, providing immediate and continuous feedback from a demanding real-world user back into the infrastructure itself. We discuss the motivation for this approach, how the feedback loop between driver and infrastructure works in practice, and what challenges and advantages it brings compared to an out-of-tree development model.

On the technical side, we present Nova's architecture: the split into nova-core, nova-drm, vGPU support, and fwctl, the rationale behind this decomposition, and how the components interact across bare-metal and virtualized environments. We follow up with implementation details showing how Rust's type system and ownership model help enforce the boundaries between these components at compile time.

Finally, we examine the Hardware Abstraction Layer (HAL) architecture common in GPU drivers, where multiple generations of hardware must be supported through composable abstraction layers. We discuss how Rust's trait system and generics provide stronger compositional guarantees than C when building and maintaining these layered abstractions.

Authors

Presentation materials

There are no materials yet.