Nvidia takes first step towards open source Linux GPU drivers

After years of hinting, Nvidia announced yesterday that it will be part of an open-source Linux GPU driver, as Intel and AMD have been doing for years. Previously, Linux users who wanted to avoid Nvidia’s proprietary driver had to rely on reverse engineered software such as the Nouveau project, which ran best on older hardware and offered incomplete support for all Nvidia GPU features at best.

“This release is an important step towards improving the NVIDIA GPU experience on Linux, closer integration with the OS, and the ability to debug, integrate, and contribute to developers,” reads a blog post attributed to several Nvidia employees. “For Linux distribution vendors, open source modules make it easy to use. They also improve the out-of-the-box user interface for NVIDIA GPU driver signing and distribution. Canonical and SUSE can immediately package open kernel modules with Ubuntu and SUSE Linux Enterprise distributions.”

Nvidia specifically releases an open source kernel driver under a dual MIT/GPL license and does not currently release the user-space portions of the driver. This includes drivers for OpenGL, Vulkan, OpenCL, and CUDA, which are still closed source, as well as firmware for the GPU System Processor (GSP). Nvidia says these drivers “will remain closed and will be published with pre-built binaries”, so it doesn’t look like open source versions are planned for release anytime soon.

Nvidia still lags behind both Intel and AMD when it comes to open-source GPU drivers — both companies release open-source kernel and user-space drivers, as well as closed-source firmware. But this is the first step towards open source parity for Nvidia’s Linux driver packages.

Nvidia’s open source drivers only support the company’s Turing-based GPUs and later, including the GeForce GTX 1600 series, RTX 2000 and 3000 series, and Quadro workstation GPUs based on the same architecture. The company’s own drivers date back to the 2012 Kepler architecture.

Open source drivers will also not yet be integrated into the Linux kernel, because, according to Phoronix, the API, ABI and interface between the kernel driver and the GSP firmware interface are not finalized. This means that everything from firmware to kernel driver to userspace drivers must be versioned to work properly (today’s version is R515.43.04). Once these interfaces are complete, the driver can be passed to the kernel, and the various firmware versions, kernel drivers, and user-space drivers should be able to interoperate.

Nvidia says support for its datacenter GPUs in current drivers is “production-ready”in this initial release, but support for GeForce, Quadro, and other consumer GPUs is in “alpha quality”- it’s not the kind of software that you need. rush to install if you don’t want to kick its tires on a test system or contribute code yourself.

Hector Martin, one of the developers of the Asahi Linux distribution, has criticized Nvidia for moving many features into their closed source firmware, which the open source driver then calls. Martin calls the open source driver “a clean win from a practical standpoint”because a bunch of proprietary code fits more easily into a sandbox. “But no freedom has been gained for the people who care about it,” he writes. “[Roughly] the same amount of code closed [as before].”

CDN CTB