Nvidia has announced that it will be open-sourcing the Linux drivers for its graphics cards, starting with the R515 release, using a dual GPL/MIT license. The source code for the kernel modules will be available in the NVIDIA Open GPU Kernel Modules repo on GitHub, but at the moment only the code for data center GPUs is considered production-ready. GeForce and Workstation GPUs are considered "alpha quality" at this time.
With fully built packages available, as well as the source code, the move will make it easier for distro managers to include the drivers in their software repositories, with both Canonical (makers of Ubuntu) and SUSE named as developers who can now package the open kernel modules with their distros. Nvidia has been working with the two firms, as well as Red Hat, to improve packaging deployment and create better support models for customers.
Nvidia says the code is currently production-ready for data center GPUs in the Turing and Ampere families following the phased rollout of the GSP driver architecture over the past year. It has been tested across a wide variety of workloads to ensure feature and performance parity with the proprietary kernel-mode driver, but brings new functionality too, such as the DMA-BUF framework for sharing buffers across devices and subsystems that will come into its own with the Hopper architecture. Anyone running GPUs using an architecture that preceded Turing will need to carry on using the old-style proprietary drivers.
It's clear one of Nvidia's main goals with these drivers is to improve support and functionality for supercomputers and large data center installations. Every major supercomputer runs on some flavor of Linux, just about, and having closed-source drivers likely doesn't sit well with the people responsible for those installations.
The picture for home users isn’t quite so rosy right now, however, with only the deprecated and proprietary monolithic kernel module being considered anything but Alpha quality. Improvements are, according to Nvidia, planned throughout the year.
The new open-source kernel-mode driver works with the same firmware as the previous driver, and the same user-mode stacks such as CUDA, OpenGL, and Vulkan. The only stipulation is that all components of the driver stack must match versions within a release. Community-submitted patches will be considered for integration into future driver releases.
“The new Nvidia open source GPU kernel modules will simplify installs and increase security for Ubuntu users, whether they’re AI/ML developers, gamers, or cloud users,” said Cindy Goldberg, VP Silicon alliances at Canonical. The new drivers are expected to make their way into the recently launched Canonical Ubuntu 22.04 LTS within the next few months.
Nvidia also revealed that it is working on an upstream approach with the Linux kernel community and partners, as its current codebase does not conform to the Linux design conventions and is not a candidate for Linux upstream. The source code will also be used to improve the open-source Nouveau driver.
Developers can download the development drivers as part of CUDA Toolkit 11.7. A full data center driver will follow.