Nvidia open-sources Linux kernel GPU modules. Repeat, open-source GPU modules
- Reference: 1652317306
- News link: https://www.theregister.co.uk/2022/05/12/nvidia_gpu_kernel/
- Source link:
The chip biz has made the source code available via the Nvidia Open GPU Kernel Modules repo on [1]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 [2]blog post . "For Linux distribution providers, the open-source modules increase ease of use."
[3]
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.
[4]
[5]
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 [6]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 [7]voiced his disdain for binary-only modules.
Proprietary drivers have also concealed [8]backdoors , which are seldom appreciated.
[9]
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 [10]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.
[11]Nvidia starts laying groundwork for future open and parallel code
[12]Intel's Habana unit reveals new Nvidia A100 challengers
[13]Nvidia pays $5.5m to settle SEC charges of shoddy cryptomining disclosures
[14]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 [15]expressed [16]surprise and enthusiasm.
[17]
"Congratulations to Nvidia for finally open sourcing their kernel drivers," [18]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 [19]did so .
Basically, everyone in the Linux community appreciates reduced exposure to proprietary code and the possibilities that arise when permission isn't required. ®
Get our [20]Tech Resources
[1] https://github.com/NVIDIA/open-gpu-kernel-modules
[2] https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YnyGYC@YpTsgAKY6YJ7KtQAAANA&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YnyGYC@YpTsgAKY6YJ7KtQAAANA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YnyGYC@YpTsgAKY6YJ7KtQAAANA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[6] https://www.openbsd.org/lyrics.html#39
[7] https://lwn.net/1999/0211/a/lt-binary.html
[8] https://www.fsf.org/blogs/community/replicant-developers-find-and-close-samsung-galaxy-backdoor
[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YnyGYC@YpTsgAKY6YJ7KtQAAANA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[10] https://www.nvidia.com/en-us/geforce/turing/
[11] https://www.theregister.com/2022/05/02/nvidia_open_standards/
[12] https://www.theregister.com/2022/05/10/intels_habana_unit_reveals_new/
[13] https://www.theregister.com/2022/05/06/nvidia_pays_55m_sec_fine/
[14] https://www.theregister.com/2022/04/26/nvidia_intel_ayar/
[15] https://twitter.com/steveklabnik/status/1524480299379347457?s=20
[16] https://twitter.com/whitequark/status/1524498669738860546?s=20
[17] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YnyGYC@YpTsgAKY6YJ7KtQAAANA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[18] https://twitter.com/KenoFischer/status/1524489511807377410?s=20
[19] https://github.com/NVIDIA/open-gpu-kernel-modules/pull/3
[20] https://whitepapers.theregister.com/
TBH
To be honest, I'm not a fan of binary blobs either but I've had good luck with Nvidia's blobs, both in terms of performance and support (running Gentoo, I would have to hold of on those "latest and greatest kernels" once in a while, but it was not a big deal to run a less recent kernel for a few weeks.
I did have old enough GPUs to have NVidia quit supporting them (Geforce 4 MX440 which despite the name is a Geforce2-based GPU...), at that point mesa and noveau were missing a lot of features the nvidia driver supported... but no features that the MX440 hardware actually supported.
That said I'm all for them opening it all up. Good start.
I wonder if Nvidia rigged up some kind of mesa + posisbly noveau + kernel turing support (which they're open sourcing now?) and found the performance to be on par or better than the nvidia driver? I've found nvidia's drivers to have excellent performance and could see why they didn't want to just open source the whole thing in the past (and then have everyone else's competing hardware get performance gains from whatever techniques their drivers are using.) But mesa has improved so much the last 2-3 years, perhaps that former advantage has gone?
Some data points here... (not nvidia but showing how much mesa & associated drivers have sped up.) My friend's old Sandy Bridge system got about a doubling in FPS about a year ago due to some mesa & Intel driver improvements (which were apparently meant to speed up newer GPUs but turned out to speed up everything back to like the "non extreme graphics" 840 or so.) Not great but some games that'd get like 15FPS in medium now get 25-30FPS. I have a 11-th gen Intel now, and from what I can tell it gets over double the frame rate in mesa now compared to a similar system running same games in Windows. AMD drivers also have seen huge speedups, there's vids online of the Steam Deck (one with SteamOS, one with Windows) running the same games at 20-30% higher FPS in SteamOS (which is after all just a recent Linux kernel with recent open source AMD drivers, recent Mesa, and then Steam Shell on that.. it's not some custom-optimized-for-Steam-Deck driver or anything like that.)
Anyway, certainly can't hurt, and a move in the right direction I think!
Better late than never
As the article points out, this seems to be a response to AMD's lopen-source driver initiative.
But, whatever the motivation, it is an excellent development. One can only hope that others (cough, cough, Microsoft) will jump on the bandwagon.
It's too good for a penguin icon, pints to Nvidia.