NVIDIA has Open-sourced its Linux GPU Kernel Drivers
NVIDIA has published the source code of its Linux kernel modules for the R515 driver, allowing developers to provide greater integration, stability, and security for Linux distributions.
The source code has been published to NVIDIA’s GitHub repository under a dual licensing model that combines the GPL and MIT licenses, making the modules legally re-distributable.
The products supported by these drivers include all models built on the Turing and Ampere architecture, released after 2018, including the GeForce 30 and GeForce 20 series, the GTX 1650 and 1660, and data center-grade A series, Tesla, and Quadro RTX.
According to the GPU maker, this is a step toward improving its products’ experience on the Linux platform, simplifying the integration process in Linux distributions, debugging, and boosting contribution activity.
“Developers can trace into code paths and see how kernel event scheduling is interacting with their workload for faster root-cause debugging. In addition, enterprise software developers can now integrate the driver seamlessly into the customized Linux kernel configured for their project.” – NVIDIA.
NVIDIA has been criticized heavily in the past for its denial to follow a more open and collaborative approach with the open-source community, so this move comes after many years of pressure.
Red Hat, SUSE, and Canonical, the maker of Ubuntu, have all issued short statements to celebrate this development and highlight the benefits it will bring to their users and customers.
“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,” commented Cindy Goldberg, VP of Silicon alliances at Canonical. “As the makers of Ubuntu, the most popular Linux-based operating system for developers, we can now provide even better support to developers working at the cutting edge of AI and ML by enabling even closer integration with NVIDIA GPUs on Ubuntu.”
What this means for Linux
While this is the most open-source-friendly move NVIDIA has ever taken, many argue that it’s not what it looks like, as large parts of the code were moved to the firmware before open-sourcing.
Additionally, the user-mode drivers will remain closed source and published with pre-built binaries, so when evaluated generally, a big part of the modern graphics driver is still closed source.
The development does not make NVIDIA drivers part of the Linux kernel, and no upstream integration can occur. However, this doesn’t mean that NVIDIA’s move is insignificant for the Linux world.
The published source code can help the developers of the Nouveau driver, the open-source graphics driver for NVIDIA video cards, improve their code and upgrade its performance considerably.
Previously, these developers had to rely upon reverse engineering and a lot of guessing. Now, they can look into GPU functionalities like the clock and thermal management and implement targeted improvements on the open-source driver.
Director for Graphics at Red Hat, Christian Schaller, has posted a blog post explaining that NVIDIA’s move won’t have a major impact on drivers and Linux distributions initially.
In the long-term, though, the binary (closed-source) driver will begin taking advantage of GPL-only APIs in the kernel, and out-of-the-box support for new chipsets on Linux distributions will improve immensely.
As for the Nouveau driver, Schaller doesn’t expect immediate benefits, but many positives will be introduced in the long run.
For the open-source community, it means that we will now have a kernel driver and firmware that allows changing the clocking of the GPU to provide the kind of performance people expect from the NVidia graphics card, and it means that we will have an open-source driver that will have access to the firmware and kernel updates from day one for new generations of NVidia hardware. – GNOME blog