NVIDIA Surprises with Open Source GPU Kernel Modules — and Partners for Upstreaming Into Linux
In a first for the company, a major part of its graphics driver platform is now available under MIT or GPL licensing.
NVIDIA has announced the surprise release of kernel modules for its graphics processing units (GPUs), from the Turing architecture upwards, under open source licenses — though warns that support for its gaming and workstation-class CPUs should be considered "alpha quality."
"This release is a significant step toward improving the experience of using NVIDIA GPUs in Linux, for tighter integration with the OS and for developers to debug, integrate, and contribute back," the NVIDIA team responsible for the release explains. "For Linux distribution providers, the open source modules increase ease of use. They also improve the out-of-the-box user experience to sign and distribute the NVIDIA GPU driver."
Previously, NVIDIA has distributed all aspects of its graphics drivers — from the kernel modules to user space — as proprietary binaries. While its user space drivers will remain proprietary, for now at least, this release offers a healthy subset of kernel module functionality with full source access under permissive or reciprocal licensing — making it easier, in theory at least, for projects to tie software deeper into the GPU than previously possible.
In the initial release, version R515, support is considered "production ready" for data center products using the Turing and Ampere architectures, NVIDIA's latest; those using workstation- or gaming-class products, however, are warned that support is "alpha quality" and that "workstation support will follow in subsequent releases and the NVIDIA Open Kernel Modules will eventually supplant the closed-source driver."
What isn't likely to appear any time soon is the source code for the user space portions of the company's drivers; likewise NVIDIA has not announced any plans to support pre-Turing architecture products which will continue to use the previously-released closed-source proprietary modules. The company is, however, working with partners on upstreaming the kernel module code into Linux — but warns that "the current codebase does not conform to the Linux kernel design conventions and is not a candidate for Linux upstream" as it stands.
The source code is now available on NVIDIA's GitHub repositor , dual-licensed under the permissive MIT license and reciprocal GNU General Public License 2. Code contributions, however, require the signing of a Contributor License Agreement (CLA).