In some huge news today, NVIDIA is now open sourcing its GPU drivers in Linux with a dual GPL/MIT license. This is starting with the R515 driver release. Many have criticized the company for not being open enough and not supporting Linux well enough, but now the drivers are officially on GitHub.
NVIDIA Open Sources GPU Drivers for Linux
Let us start with the big one, the NVIDIA kernel modules are on GitHub here.
There are some catches to this, as one would expect, but overall NVIDIA is doing something reasonable.
For data center Turing and Ampere, the open source drivers are production ready with the R515 release. On the GeForce and workstation GPU side (now that we do not have Quadro anymore), these are still alpha modules for Turing and Ampere. NVIDIA says that it will continue to improve the workstation and desktop GPU open source drivers (and presumably the data center as well.) The current plan is to phase out the closed source drivers as the quality of the open source drivers improves.
One will probably notice that this is Turing and newer. For older GPUs, the closed source drivers will still be the option.
Overall, let us be clear, this is a positive step. At the same time, it means that NVIDIA is now putting its engineering efforts into open source, and that means for those with older cards they will continue to use the closed source drivers. NVIDIA making a new feature one that is on relatively newer GPUs will probably make some of our readers unhappy, but at the same time it is also natural to invest in newer products that drive revenue (and driver support dollars.) Upstreaming the drivers will remain a challenge and one has to make a choice at the installation of installing either the closed or open source versions, but we think this is a big deal for the Linux and broader open source community.
Arguably one of the reasons the Frontier and Aurora exascale projects went with Radeon Instinct and Intel Xe GPUs were the maintenance and innovation advantages of open source. While few other users have the resources to obtain such dramatic value from open source drivers, the trickle-down effect could be significant in terms of compatibility, flexibility and so forth. Moreover, this change directly addresses the criticism by Linus Torvalds that Nvidia is “the single worst company we have ever dealt with” from a talk a number of years ago at the Aalto Center for Entrepreneurship in Otaniemi, Finland.
Linus Torvalds is not that smart. He could write some kernel code for sure, but he’s not exactly a great business man(otherwise Linux would have killed windows a long time ago).
There are legit reasons for close source, for example, to hide proprietary algorithms. Since Nvidia got hacked this year, the source code probably got leaked, so Nvidia’s motivation behind this open source dump is probably to admit that driver source code got leaked.
The alarming problem is this: Turing and Newer. So nvidia is dumping Kepler, Maxwell, and even Pascal support. In the Cuda release notes, Nvidia is also adopting a “N-2 policy” on the math library in 2022, so the intention to drop support for Maxwell and Pascal and anything that doesn’t have TensorCores. How many people picked up on this tidbits? It requires reading CUDA release notes.
Now that the driver is open source, there should be interest in bringing the K, M, P series support back to the latest branches, instead of having Nvidia setting driver deprecation schedule on the previous gen products.
Hm, this article reads weird as the driver is not open source, just the kernel modules. Still a huge step in the right direction.
Linus actually has a good model as it has displaced Windows and Linux in the datacenter. Sure, Windows Server still exists but as a minority vs. the number of Linux installations. He works for the Linux foundation and has incredible influence over kernel’s trajectory.
nVidia open sourcing their drivers is a surprise regardless if they were included in the leak earlier this year. I will agree that AMD and Intel’s approach to their drivers alongside pressure from other vendors has finally forced nVidia’s hand here.
The Turing and newer is a bit of a surprise on the open source side as nVidia still supports Maxwell, Pascal and Volta in their packages. I do believe that they are going to be dropped shortly but that’ll occur a bit after the release of nVidia’s Hopper and Lovelace chips later this year. Dropping support for those earlier generations was always coming but it is a bit sooner than expected.