July 17th, 2024

NVIDIA Transitions Fully Towards Open-Source Linux GPU Kernel Modules

NVIDIA transitions to open-source GPU kernel modules with R560 driver release, supporting newer GPUs for features like memory management and computing. Users get a detection script for driver selection. Installation process updated for consistency.

Read original articleLink Icon
DriversSkepticismLinux
NVIDIA Transitions Fully Towards Open-Source Linux GPU Kernel Modules

NVIDIA has transitioned fully towards open-source GPU kernel modules with the upcoming R560 driver release. The move follows the initial release of Linux GPU kernel modules in May 2022, targeting datacenter compute GPUs. The transition includes support for features like heterogeneous memory management, confidential computing, and coherent memory architectures. While newer GPUs from Turing, Ampere, Ada Lovelace, or Hopper architectures are recommended to switch to open-source modules, older GPUs from Maxwell, Pascal, or Volta architectures should continue using the proprietary driver. NVIDIA provides a detection helper script to assist users in selecting the appropriate driver for their GPUs. The installation process has been updated to default to the open-source driver, with specific considerations for package managers, runfile installations, and Windows Subsystem for Linux. The post also details package manager recommendations for various distributions to ensure a consistent experience when installing CUDA Toolkit and drivers.

AI: What people are saying
The announcement of NVIDIA transitioning to open-source GPU kernel modules with the R560 driver release has sparked a variety of reactions.
  • Many users are skeptical about the extent of the open-sourcing, noting that significant parts of the driver remain closed-source.
  • Some users express hope that this move will improve the Linux experience with NVIDIA GPUs, while others remain doubtful.
  • There is a discussion about the potential motivations behind NVIDIA's decision, including pressure from large companies and past hacking incidents.
  • Several comments highlight the distinction between "fully towards open-source" and "towards fully open-source," indicating skepticism about NVIDIA's commitment.
  • Some users are optimistic that this change could lead to better support for features like CUDA and hybrid graphics on Linux.
Link Icon 44 comments
By @shanoaice - 6 months
There is little meaning for NVIDIA to open-source only the driver portion of their cards, since they heavily rely on proprietary firmware and userspace lib (most important!) to do the real job. Firmware is a relatively small issue - this is mostly same for AMD and Intel, since encapsulation reduces work done on driver side and open-sourcing firmware could allow people to do some really unanticipated modification which might heavily threaten even commercial card sale. Nonetheless at least for AMD they still keep a fair share of work done by driver compared to Nvidia. Userspace library is the worst problem, since they handle a lot of GPU control related functionality and graphics API, which is still kept closed-source.

The best thing we can hope is improvement on NVK and RedHat's Nova Driver can put pressure on NVIDIA releasing their user space components.

By @bradyriddle - 6 months
I remember Nvidia getting hacked pretty bad a few years ago. IIRC, the hackers threatened to release everything they had unless they open sourced their drivers. Maybe they got what they wanted.

[0] https://portswigger.net/daily-swig/nvidia-hackers-allegedly-...

By @creata - 6 months
Huh. Sway and Wayland was such a nightmare on Nvidia that it convinced me to switch to AMD. I wonder if it's better now.

(IIRC the main issue was https://gitlab.freedesktop.org/xorg/xserver/-/issues/1317 , which is now complete.)

By @sillywalk - 6 months
From the github repo[0]:

Most of NVIDIA's kernel modules are split into two components:

    An "OS-agnostic" component: this is the component of each kernel module that is independent of operating system.

    A "kernel interface layer": this is the component of each kernel module that is specific to the Linux kernel version and configuration.
When packaged in the NVIDIA .run installation package, the OS-agnostic component is provided as a binary:

[0] https://github.com/NVIDIA/open-gpu-kernel-modules

By @hypeatei - 6 months
How is the NVIDIA driver situation on Linux these days? I built a new desktop with an AMD GPU since I didn't want to deal with all the weirdness of closed source or lacking/obsolete open source drivers.
By @jcalvinowens - 6 months
Throwing the tarball over the wall and saying "fetch!" is meaningless to me. Until they actually contribute a driver to the upstream kernel, I'll be buying AMD.
By @einpoklum - 6 months
The title of this statement is misleading:

NVIDIA is not transitioning to open-source drivers for its GPUs; most or all user-space parts of the drivers (and most importantly for me, libcuda.so) are closed-source; and as I understand from others, most of the logic is now in a binary blob that gets sent to the GPU.

Now, I'm sure this open-sourcing has its uses, but for people who want to do something like a different hardware backend for CUDA with the same API, or to clear up "corners" of the API semantics, or to write things in a different-language without going through the C API - this does not help us.

By @floam - 6 months
NVIDIA Transitions Fully Towards Open-Source GPU Kernel Modules

or

NVIDIA Transitions Towards Fully Open-Source GPU Kernel Modules?

By @magicloop - 6 months
Remember that time when Linus looked at the camera and gave Nvidia the finger. Has that time now passed? Is it time to reconcile? Or are there still some gotchas?
By @CivBase - 6 months
Too late for me. I tried switching to Linux years ago but failed because of the awful state of NVIDIA's drivers. Switched to AMD least year and it's been a breeze ever since.

Gaming on Linux with an NVIDIA card (especially an old one) is awful. Of course Linux gamers aren't the demographic driving this recent change of heart so I expect it to stay awful for a while yet.

By @berkeleyjunk - 6 months
As someone who is pretty skeptical and reads the fine print, I think this is a good move and I really do not see a downside (other than the fact that this probably strengthens the nVidia monoculture).
By @rldjbpin - 6 months
mind the wording they've used here - "fully towards open-source" and not "towards fully open-source".

big difference. almost nobody is going to give you the sauce hidden behind blobs. but i hope the dumb issues of the past (imagine using it on laptops with switchable graphics) go away slowly with this and it is not only for pleasing the enterprise crowd.

By @svlasov - 6 months
All `g_bindata_k*.c` files are essentially blobs with no source provided:

https://github.com/NVIDIA/open-gpu-kernel-modules/tree/main/...

By @doctoboggan - 6 months
My guess is Meta and/or Amazon told Nvidia that they would contribute considerable resources to development as long as the results were open source. Both companies bottom lines would benefit from improved kernel modules, and like another commenter said elsewhere, Nvidia doesn't have much to lose.
By @benjiweber - 6 months
I wonder if we'll ever get hdcp on nvidia. As much as I enjoy 480p video from streaming services.
By @asaiacai - 6 months
I really hope this makes it easier to install/upgrade NVIDIA drivers on Linux. It's a nightmare to figure out version mismatches between drivers, utils, container-runtime...
By @matheusmoreira - 6 months
Transition is not done until their drivers are upstreamed into the mainline kernel and ALL features work out of the box, especially power management and hybrid graphics.
By @n3storm - 6 months
I read "NVIDIA transitions fully Torvalds..."
By @gorkish - 6 months
This is great. I've been having to build my own .debs of the OSS driver for some time because of the crapola NVIDIA puts in their proprietary driver that prevents it from working in a VM as a passthrough device. (just a regular whole-card passthru, not trying to use GRID/vGPU on a consumer card or anything)

NVIDIA can no longer get away with that nonsense when they have to show their code.

By @v3ss0n - 6 months
Thank You Nvidia hacker! You did it! The Lapasu$ team threaten a few years back that if nvidia is not going to release nvidia opensource they are gonna release their code. That lead nvidia to releasing first kernel opensource module in a few months later but it was quite incomplete. Now it seems they are opensourcing fully more.
By @enoeht - 6 months
didn't they say that many times before?
By @Narhem - 6 months
I cant wait to use linux without having to spend multiple weekends trying to get the right drivers to work.
By @exabrial - 6 months
Are Nvidia grace CPUs even available? I thought it was interesting they mentioned that.
By @aussieguy1234 - 6 months
I'll update as soon at its in NixOS unstable. Hopefully this will change the mind of the sway maintainers to start supporting Nvidia cards, I'm using i3 and X but would like to try out Wayland.
By @qalmakka - 6 months
Well, it is something, even if it's still only the kernel module, and it will be probably never upstreamed anyway.
By @smcleod - 6 months
So does this mean actually getting rid of the binary blobs of microcode that are in their current ‘open’ drivers?
By @K33P4D - 6 months
Does this mean we can aggressively volt mod, add/replace memory modules to our liking?
By @jdonaldson - 6 months
It’s kind of surprising that these haven’t just been reverse engineered yet by language models.
By @resource_waste - 6 months
This means Fedora can bundle it?
By @shmerl - 6 months
That's not upstream yet. But they supposedly showed some interesting in nova too.
By @risho - 6 months
does this mean you will be able to use NVK/Mesa and CUDA at the same time? The non mesa proprietary side of nvidia's linux drivers are such a mess and NVK is improving by the day, but I really need cuda.
By @john2x - 6 months
Maybe that’s one way to retain engineers who are effectively millionaires.
By @muhehe - 6 months
What is GPU kernel module? Is it something like a driver for GPU?
By @gigatexal - 6 months
will this mean that we'll be able to remove the arbitrary distinctions between quadro and geforce cards maybe by hacking some configs or such in the drivers?
By @nicman23 - 6 months
they are worthless. the main code is in the userspace
By @Varloom - 6 months
They know CUDA monopoly won't last forever.
By @nikolayasdf123 - 6 months
hope linux gets first class open source gpu drivers.. and dare I hope that Go adds native support for GPUs too
By @pluto_modadic - 6 months
damn, only for new GPUs.
By @sylware - 6 months
Hopefully, we get a plain and simple C99 user space vulkan implementation.
By @Animats - 6 months
NVidia revenue is now 78% from "AI" devices.[1] NVidia's market cap is now US$2.92 trillion. (Yes, trillion.) Only Apple and Microsoft can beat that. Their ROI climbed from about 10% to 90% in the last two years. That growth has all been on the AI side.

Open-sourcing graphics drivers may indicate that NVidia is moving away from GPUs for graphics. That's not where the money is now.

[1] https://www.visualcapitalist.com/nvidia-revenue-by-product-l...

[2] https://www.macrotrends.net/stocks/charts/NVDA/nvidia/roi

By @brrrrrm - 6 months
Kernel is an overloaded term for GPUs. This is about the linux kernel
By @xyst - 6 months
Nvidia has finally realize they couldn’t write drivers for their own hardware, especially for Linux.

Never thought I would see the day.