This article is more than 1 year old
Nvidia open-sources Linux kernel GPU modules. Repeat, open-source GPU modules
A Turing point for the graphics chip giant, perhaps?
Nvidia on Wednesday published the R515 driver release of its Linux GPU kernel modules under an open source, dual GPL/MIT license.
The chip biz has made the source code available via the Nvidia Open GPU Kernel Modules repo on GitHub, a move that suggests the need to respond to AMD's long-standing open-source driver initiative.
"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," claimed Ram Cherukuri, senior product manager, Shirish Baskaran, senior system software manager, Andy Ritger, Linux OpenGL driver engineer, and Fred Oh, senior product marketing manager, in a blog post. "For Linux distribution providers, the open-source modules increase ease of use."
The availability of the GPU kernel module source code should make life easier for Linux distributors like Canonical and SUSE by allowing them to sign and distribute Nvidia GPU drivers and package their code with less effort, the four Nvidians suggest. And those developing customized Linux kernels should find driver integration more pleasant.
The free and open-source software community is none too keen on closed-source, proprietary code. Back in 2006, for example, OpenBSD lead developer Theo de Raadt criticized blobs – "vendor-compiled binary drivers without any source code" because "they hide bugs and workarounds for bugs." And Linux kernel supremo Linus Torvalds has similarly voiced his disdain for binary-only modules.
Proprietary drivers have also concealed backdoors, which are seldom appreciated.
Nvidia's quartet of co-authors contends that open-sourcing the GPU kernel modules will enhance driver quality and security through the involvement of the Linux community.
Caveats
There are limits to that involvement, however: only Turing (September 20, 2018) and newer GPUs can use the open-sourced drivers; pre-Turing models require existing proprietary code, or the Nouveau driver. The user-space components of Nvidia's driver software will also remain closed-source binaries, for now at least; it's the kernel code that is being published as open source.
Some of the kernel-level drivers being opened up may benefit more from the quality checks than others. The source code associated with Nvidia's Turing and Ampere datacenter GPUs is already considered production ready. The source code for GeForce and Workstation GPUs is only considered alpha quality, and so may benefit sooner from community ministrations.
- Nvidia starts laying groundwork for future open and parallel code
- Intel's Habana unit reveals new Nvidia A100 challengers
- Nvidia pays $5.5m to settle SEC charges of shoddy cryptomining disclosures
- Nvidia, Intel, others pour $130m into optical chip startup Ayar Labs
"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 of Silicon alliances at Canonical, in a statement.
Ubuntu, she said, will now be able to provide better support to developers working on AI and ML applications by tightening integration with Nvidia GPUs.
Spokespeople for SUSE and Red Hat said more or less the same thing using slightly different words.
On Twitter, technically-inclined folk expressed surprise and enthusiasm.
"Congratulations to Nvidia for finally open sourcing their kernel drivers," said Keno Fischer, co-founder and CTO of Julia Computing. "Long time coming, but absolutely the right move. Looking forward to sending some [pull requests] :)" And a colleague subsequently did so.
On the other hand, some saw it as a bit of a licensing hack: the open-source driver code relies on tons of closed-source functions in the card firmware, and the user-space is still closed, after all. ®