Hacker News Re-Imagined

Nvidia releases open-source GPU kernel modules

  • 2409 points
  • β€’ 12 days ago

  • @ghishadow
  • Created a post

Nvidia releases open-source GPU kernel modules

@comandillos β€’ 12 days

Replying to @ghishadow πŸŽ™

May this enables the possibility of compiling NVIDIA drivers for ARM-based PCs?


@messe β€’ 12 days

Had to do a few doubletakes on this, but even with the recent hacks and progress on NVIDIA releasing Tegra source code, I didn't expect this for another few years.

Holy shit.

It's even licensed as MIT.

Even OpenBSD could conceivably port this with enough manpower. Adding enough just emulation for the userspace driver would be a lot easier than maintaining a complete linux emulator.

This is one of the biggest things to happen to hardware support for open source OSes in well over a decade.


@NexRebular β€’ 12 days

Well, then... hopefully FreeBSD and illumos will finally start getting support for CUDA.


@smw β€’ 12 days

Anyone know if this makes it easy to hack in SR-IOV support for desktop class gpus?


@pixelmonkey β€’ 12 days

> In this open-source release, support for GeForce and Workstation GPUs is alpha quality. GeForce and Workstation users can use this driver on Turing and NVIDIA Ampere architecture GPUs to run Linux desktops and use features such as multiple displays, G-SYNC, and NVIDIA RTX ray tracing in Vulkan and NVIDIA OptiX. Users can opt in using the kernel module parameter NVreg_EnableUnsupportedGpus as highlighted in the documentation. More robust and fully featured GeForce and Workstation support will follow in subsequent releases and the NVIDIA Open Kernel Modules will eventually supplant the closed-source driver. Customers with Turing and Ampere GPUs can choose which modules to install. Pre-Turing customers will continue to run the closed source modules.

Translating & simplifying the language here: sounds like GTX 10xx GPU users (Pascal architecture, e.g. 1070/1080) will stick with closed source for now, but RTX 20xx GPU users (Turing architecture, e.g. 2080) and RTX 30xx GPU users (Ampere architecture, e.g. 3080) will have the option to opt-in to the open source kernel module. Stable open source support for GTX 10xx GPU users may come later.


@Humphrey β€’ 12 days

I'm confused! Why would Nvidia want to keep any of this closed source. Surely they make money when people buy graphics cards, and having open source out-of-the-box graphics support in Linux would mean they would sell more graphics cards?


@akselmo β€’ 12 days

This year just keeps getting more weird


@intsunny β€’ 12 days

Phoronix link about what this actually means:


Main takeaways:

- support for gaming workstation GPUs is alpha

- the user space stuff (OpenGL/Vulkan) is still closed source. (A LOT of heavy lifting is done here.)


@pyuser583 β€’ 11 days



@endgame β€’ 12 days

This is what happens when you don't just give up and "be pragmatic". Kudos to NVidia for coming to the table, and I look forward to seeing more of this sort of thing.


@figassis β€’ 10 days

TIL HN has an excellent duplicate link feature. It's my first time posting a link, and behold, teleported straight to the existing post.


@InitEnabler β€’ 12 days

Wow. Am I dreaming? That's great.


@JCWasmx86 β€’ 11 days

Finally some good news for free software \o/


@Luker88 β€’ 11 days

watch out the fine print though:


34MB firmware

Good, but I'll try to stick with AMD. If only AMD's opencl support was better...


@anonymousDan β€’ 12 days

Can this be used with CUDA for GPGPU or is it somehow only relevant for graphics?


@kodah β€’ 12 days


Shout out to nvidia for this.


@voldacar β€’ 12 days

So is it correct that they are only open-sourcing the kernel-mode portion of the driver and that the real meat of the driver like the shader compiler will remain in a closed-source binary?


@zekrioca β€’ 12 days

It seems the modules bridge the kernel with the driver [1], so it is this part that is GPL/MIT, the driver itself is still a binary blob. AMD probably does the same? Correct me if I'm wrong.

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


@marcodiego β€’ 12 days

For those who didn't use Nvidia on linux in the old times:

The driver was a proprietary binary. Since a kernel module requires interfacing with the kernel API, it could be considered a derivative work and a breach of the GPL license. So, Nvidia provided a small open source shim which interfaced between the kernel and the proprietary module.

You had to compile that shim yourself with the right arcane command line incantations and if you did anything wrong, missed the right packages or had an incompatible user space, including libs and compiler, you could end up without X11 and no way to easily run a browser or google about the problem you had. You had to do it EVERY FUCKING TIME YOU UPDATED THE KERNEL!

It was still possible to edit xorg.conf or, if you were older, xf86config by hand to fix it and use the VESA driver, but it was very inconvenient. It became more reliable over the time and even fully automated with DKMS, but I hated them for it.

I used and recommended ATI and INTEL for most of the people I could for a long time because of this.

I was from a time when It was possible to use 3D acceleration on linux with 3dfx with fully open source drivers (I think), giving you a cheap UNIX-like graphical workstation with OpenGL support. When Nvidia bought 3dfx and simply killed their drivers, my hate became specially strong.

EDIT: Remember you had to recompile the shim at every kernel update and replaced "module" with "driver".


@pawelduda β€’ 12 days

Never though this would happen in my lifetime.


@skittleson β€’ 12 days

I believe everyone is the comments are like, "Omg! They finally took us seriously telling they are horrible at writing drivers for Linux". Good job Nvida


@pmoriarty β€’ 12 days

Just out of curiosity, how easy would it to have been to decompile and reverse-engineer the original closed-source modules and then write an open sourced version of them? Would that have been legal?


@8organicbits β€’ 12 days

I'm curious to see how they'll manage updates, so far it's one mega commit.

> Showing 2,519 changed files with 1,060,036 additions and 0 deletions.


@sylware β€’ 12 days

The kernel modules are the first stage I guess, since a massive amount of hardware programing knowledge is in user space like with AMD/intel GPUs.

I wonder how much LAPSUS$ hack has to do with it.

I wonder if nvidia hardware programing interface is a mess like AMD one, just curious.


@umanwizard β€’ 12 days

How does what is being open-sourced differ from the proprietary binary modules?


@zamadatix β€’ 12 days

I was worried they had actually decided not to do this after seeing all of the other recent developments and then a pause. Glad to see it was just part of the path to it.


@mjg59 β€’ 12 days

1) This is unambiguously Good News

2) This is not upstreamable in its current form (nvidia admit this in their press release)

3) In an ideal world, nouveau (the open source driver for nvidia hardware) would be able to target this kernel code. Right now though there's no commitment for any sort of stable userland ABI, and that makes that difficult (moving to a new driver version may break interfaces that nouveau uses)

The press release does say that they have plans to figure out a more upstream friendly approach in the long term, which is great - and what has been released will undoubtedly help development of the existing nouveau codebase.


@parasense β€’ 12 days

The bits that implement the userland graphics libraries are closed source, unlike Mesa. So this is still useless, but don't get me wrong... I'll take it, but I'm still going to bitch about it. My hope is now folks will be able to adapt these Nvidia cards into the Mesa ecosystem, like ~10 years from now or whatever.


@marcodiego β€’ 12 days

Hell is freezing?

Serious, does it means we won't need Nouveau anymore? How many and which binary blobs it still needs? Are they encrypted or require signing?


@Bancakes β€’ 11 days


Most importantly, will they open source Optimus? Even though the drivers work, getting everything to render on the GPU, and output to the laptop LCD, has always been an inconsistent pain.


@cosmiccatnap β€’ 12 days

I don't normally curse on HN but I think I speak for all of us when I say

Fucking finally.


@XorNot β€’ 12 days

Looking forward to a day when out of the box Nvidia and AMD GPUs just work on Linux at fullpower and features.


@wallaBBB β€’ 11 days

- Stock market crashing - Crypto being an absolute dumpster fire - Nvidia doing something to support Linux

Catastrophe is upon us!


@frogger8 β€’ 12 days

@zepearl β€’ 12 days

@tonnydourado β€’ 12 days

Ten bucks Linus will curse at them in the near future.


@ASalazarMX β€’ 12 days

I did a double take because the title is almost clickbait for us desktop Linux users, and immediately wondered "what's the catch?". It's a significant catch, but also a significant step in the right direction.


@rawoke083600 β€’ 11 days

This is such good news... I hope we see 'real world improvements soon' !

The amount of time, I was 'sucked' with a black-screen after a reboot and the amount of time I wasted with Nvidia drivers ! I swear I would never buy NVIDIA again !


@black_puppydog β€’ 12 days

Would love to hear from folks who worked on this!

Was this an ongoing thing? Did it have to be pitched hard? What finally made the difference? I'm assuming here it's not because of LAPSUS as some speculate. This seems like it must have been in the making for quite a while.


@haupt β€’ 12 days

Oh frabjous day! I have been waiting for this for literal decades.


@e12e β€’ 12 days

This is great. Anyone know how/if this will/does impact laptops with nvidia dGPU?


@cV6WB β€’ 11 days

Can someone ELI5 for this news?


@blablabla123 β€’ 11 days

That makes ThinkPads with Linux look much different than before compared to MacBooks with macOS. (And save a lot of update/re-configure/re-install cycles...)


@xbmcuser β€’ 11 days

If I understand this correctly nvidia is moving its proprietary code from the drivers to the card itself. Looks like we are looking at a future where graphic cards will get firmware updates instead of driver updates. I am wondering with how large the newest graphics cards and ho the power requirements are so much larger than the other components. I see a future where we have PC cases and laptops with a pci slot exposed externally to attach external graphics cards which has it's own power supply and cooling only. It is attached to the PC when you need the GPU power for gaming or work then just remove it for a silent PC. As we start hitting the physical limits for moores law I think such a future is big possibility.


@dzogchen β€’ 12 days

Wow, this is big for Linux & Nvidea isn't it?


@gjvc β€’ 7 days

can someone point me to the reason why this open-sourcing only covers the newest generation(s) of hardware?


@gchamonlive β€’ 12 days

Does this mean we get a bit closer to having native, kernel-level Optimus drivers for Linux?


@jwithington β€’ 11 days

Can I get an ELI5 on this? I don't do enough in this space to understand the significance. Thanks in advance to whomever can help out!


@snshn β€’ 12 days

Nvidia... THANK YOU!


@teekert β€’ 12 days

Nvidia module does not taint kernel anymore!


@floor_ β€’ 11 days

I wonder how much of this decision was due to the hack leaking everything they had.


@Lapsa β€’ 11 days

woah.... that only took like forever. anyhow - good job


@BeefySwain β€’ 12 days

> Open kernel modules support all Ampere and Turing GPUs. Datacenter GPUs are supported for production, and support for GeForce and Workstation GPUs is alpha quality.

Sounds like this is not going to be what I game on for at least a little bit?


@mc4ndr3 β€’ 12 days

Will Linus revisit his rejection of Nvidia integration?


@geerlingguy β€’ 12 days

With this announcement, I'm now interested in trying out some Nvidia graphics cards on the Pi again. Nouveau had some issues, and the official drivers had no source available, so I couldn't hack them to work.

With the source available... it could be possible! Of course, CUDA support may never happen there, at least not using open source code.


@samtheDamned β€’ 12 days

And just like that my next gpu will probably be NVIDIA. AMD's recent prices have made nvidia look like a better option and the only thing holding me back was amd's amazing open source drivers and the options that came with. If nvidia's drivers become comparable or are well on their way then they would be the obvious choice in today's market.


@DantesKite β€’ 12 days

I wonder what impact this will have on the SteamDeck if any.


@kadoban β€’ 12 days

Wow! I literally never thought I'd see the day.

I've been on linux for at least a couple of decades now, and this has been a thorn in my side from the get-go. I can't overstate how huge this is!

Great work Nvidia, seriously. It does look like it's not perfect, but damn it's a great step.


@hansihe β€’ 12 days

Note that this is just the kernel modules, not the actual graphics driver.

IIRC these sources were already released under a permissive license along with their driver distribution. This just seems to be them putting those sources on GitHub and being more open to contributions.


@pikseladam β€’ 11 days

What does it mean? I don't know anything about it? Why is it good news?


@dekhn β€’ 12 days

I first used OpenGL on linux in 1995. Software-based commercial X server that was unusably slow. By 98 or so I had Mesa, and was running software-based open source OpenGL (still pretty slow, but almost usable). By 2001, I think, I had a FireGL card that was supported in linux doing hardware OpenGL, I think it was a partly open source kernel driver- first time I had competitive performance to lower-end SGIs in the lab). FireGL was then acquired by ATI which sold their cards as high-end and continued the driver. After that I reverted to software for driver reasons, then to the nvidia driver, which I've used on linux for over a decade now. I will give ATI and nvidia credit for having at least some fairly good level of support for linux over the past two decades.


@weinzierl β€’ 12 days

I wonder if it is the result of the LAPSUS$ hack. This was their statement from early March:

"After evaluating our position and Nvidia's, we decided to add one more requirement."

"We request that Nvidia commits to completely Open Source (an distribute under a FOSS License) ther GPU drivers for Windows, macOS and Linux, from now on and forever."

"If this request is not met, on Friday we will release the complete Silicon, Graphics and Computer Chipset Files for all recent Nvidia GPUs."


@pabs3 β€’ 12 days

@kiechu β€’ 12 days

https://youtu.be/_36yNWw_07g Linus expressing his deepest gratitude.


@hex69 β€’ 10 days

Isn't this connected with fact that nvidia got threats from lapsus group to open-source their's drivers unless hacker will publish some stolen confidential data? https://videocardz.com/newz/hackers-now-demand-nvidia-should...


@yellowapple β€’ 12 days

The Devil's putting on ice skates.


@etaioinshrdlu β€’ 12 days

I am guessing the Nvidia is more okay with doing this because they have moved more functionality to the userspace components?


@test6554 β€’ 10 days

Linus' middle finger lowers slightly.


@8organicbits β€’ 12 days

This may be a boon for unlocking hardware features on GeForce. Stuff like below shows that some things are just disabled in hardware, but lots of reverse engineering would be needed to bypass it.



@iepathos β€’ 12 days

Thank you nvidia, we've been waiting for this and you finally came through for us!


@jwithington β€’ 11 days

Can I get an ELI5 on this? At time of writing 2018 points but I have no clue what the significance is.


@jpe90 β€’ 12 days

I didn’t see anything for Pascal GPUs, are they left out?


@blondie9x β€’ 12 days

Is this connected to the hack/leak where the hackers requested this very move?




@madushan1000 β€’ 12 days

With the kernel driver open source + redistributeble firmware I guess the graphics APIs can be provided by mesa.


@jacooper β€’ 12 days

It will probably end up like how AMD cards work.

The closed source driver still exists but there will hopefully be a completely open source stack (Nouveau++?) For nvidia.

This blog has more details about red hats plans for this driver.



@the_duke β€’ 12 days

I wonder if this has been in the works for years, or if this is a reaction to the recent Lapsus hack.


@viksit β€’ 12 days

23 years ago in middle school I made my first ever linux user group post [1] trying to shift from an nvidia geforce to the onboard cyrix mediagx drivers because they had closed source drivers.

It’s been a long time coming lol.

[1] https://www.spinics.net/lists/xf-xpert/msg04601.html


@SemanticStrengh β€’ 12 days

I thought they had open source CUDA kernels for a minute..


@samus β€’ 12 days

Since the open sourced drivers are explicitly stated in TA to also help the Nouveau driver improve, the latter does not matter that much. That's what Mesa is here for.


About Us

site design / logo Β© 2022 Box Piper