Jump to content

Satan feels a chill in the breeze: Nvidia publishes open source linux GPU drivers

Summary

 

In what is possibly one of the biggest announcements in Linux history, potentially ending a decade of grudges and feuds going all the way back to Torvald's infamous 2012 "Fuck you", Nvidia has officially released a set of open source kernel modules for their GeForce and workstation GPUs. This code allows running GeForce cards on Linux without using Nvidia's closed-source proprietary drivers. It's dual-licensed with MIT and GPL, and the code is hosted on GitHub. Unfortunately, the code is limited to Turing and newer architectures, limiting its usefulness for older cards.

 

Quotes

Quote

NVIDIA's open kernel modules is already considered "production ready, opt-in" for data center GPUs. For GeForce and workstation GPUs, the open kernel module code is considered "alpha quality" but will be ramped up moving forward with future releases. NVIDIA has already deprecated the monolithic kernel module approach for their data center GPU support to focus on this open kernel driver solution (and their existing proprietary kernel module using the GSP). Only Turing and newer GPUs will be supported by this open-source kernel driver.

Quote

It's genuine open-source kernel code - MIT/GPL dual licensed! NVIDIA has indicated that Canonical / Ubuntu, Red Hat, and SUSE are all preparing to package and use the open kernel modules. Beginning with the new R515 branch of the NVIDIA Linux driver, the driver installer will have the option for users whether they want to use the existing proprietary kernel modules or switch to the open driver code. The open kernel driver code will be available as well on GitHub. NVIDIA will also accept community contributions to the code where there is merit or bugs being addressed, but does require a CLA for signing off on the code to NVIDIA.

Quote

NVIDIA's user-space libraries and OpenGL / Vulkan / OpenCL / CUDA drivers remain closed-source -- today's announcement is just about all the excitement in kernel space.

My thoughts

While this is definitely a start in the right direction, I have my doubts about this initiative expanding, or continuing long-term.

 

Sources

https://www.phoronix.com/scan.php?page=article&item=nvidia-open-kernel&num=1

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

 

Link to comment
Share on other sites

Link to post
Share on other sites

25 minutes ago, BachChain said:

Unfortunately, the code is limited to Turing and newer architectures, limiting its usefulness for older cards.

Pascal is pretty ancient now. Turing I think is still officially sold so I guess they have to support for that reason. This is probably a forward looking move.

Main system: i9-7980XE, Asus X299 TUF mark 2, Noctua D15, Corsair Vengeance Pro 3200 3x 16GB 2R, RTX 3070, NZXT E850, GameMax Abyss, Samsung 980 Pro 2TB, Acer Predator XB241YU 24" 1440p 144Hz G-Sync + HP LP2475w 24" 1200p 60Hz wide gamut
Gaming laptop: Lenovo Legion 5, 5800H, RTX 3070, Kingston DDR4 3200C22 2x16GB 2Rx8, Kingston Fury Renegade 1TB + Crucial P1 1TB SSD, 165 Hz IPS 1080p G-Sync Compatible

Link to comment
Share on other sites

Link to post
Share on other sites


I do wonder how the performance difference will be between these and the other drivers.

CPU: AMD Ryzen 3700x / GPU: Asus Radeon RX 6750XT OC 12GB / RAM: Corsair Vengeance LPX 2x8GB DDR4-3200
MOBO: MSI B450m Gaming Plus / NVME: Corsair MP510 240GB / Case: TT Core v21 / PSU: Seasonic 750W / OS: Win 10 Pro

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, jaslion said:

This is 100% because of the leaked drivers from hackers at this point. No way would nvidia do this willingly otherwise. So yay hackermans!

It's not, any anyone who knows it is has clearly not followed the story properly.

 

This is the timeline:

February ~21 - LAPSUS$ gets access to some Nvidia servers.

February 28 - LAPSUS$ makes a public statement that they have stolen data from Nvidia and starts uploading it. They demand that Nvidia removes the hash limiter or else they will publish their leak, because they claim the hash limiter also cripples gaming performance (it doesn't).

March 2 - LAPSUS$ says that unless Nvidia makes all their drivers for Windows, Linux and MacOS open source before March 4, they will release all the stolen data regarding silicon designs etc.

March 4 - Nvidia has not posted anything, LAPSUS$ doesn't do jack shit. They do not post anything regarding Nvidia. Pretty sure they never mentioned Nvidia again and everyone just forgot about it.

March 24 - Several people in LAPSUS$ gets arrested and since then I don't think the group has done anything.

 

Skip forward to:

May 11 - Nvidia decides to open source one of their drivers and people somehow think it is related...

 

 

Now can we please stop with these idiotic conspiracy theories that clearly makes no sense if we sit down and think about them for a minute?

 

 

 

In before:

"But what if Nvidia promised LAPSUS$ to release their drivers as open source and that's why nothing was posted on the 4th of March!? That totally explains everything! Except the lack of info... and that Nvidia has no reason to follow through on this supposed promise since the group is no longer active... and that Nvidia did not even fulfil this supposed promise since they have only done half of one thing out of the 3 things LAPSUS$ asked for (release the Linux driver source code for some cards, not all cards, nor the MacOS or Windows driver source codes)

 

 

 

 

Edit:

Sorry if I sounded rude but I am so sick and tired of people making up conspiracy theories without doing any research, and then a bunch of users on this forum will take it at face value and not question it at all. It seems to happen a lot, particularly with Nvidia.

Something happens, someone makes a stupid and illogical comment that makes Nvidia seem bad, a bunch of people will jump in, thumb it up, assume it is true (even if it isn't) and then parrot it in a bunch of threads until it becomes "common knowledge" because "everyone says it so it must be true".

 

Can we all agree to do some research to verify if what we are saying actually makes sense? And to look up if what we thumb up actually makes sense? Misinformation is a serious issue these days, and while this is a rather trivial thing to get incorrect, it still shows a worrying trend where people just assume things are true as long as they align with their biases, which just worsen their biases even more.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, jaslion said:

This is 100% because of the leaked drivers from hackers at this point. No way would nvidia do this willingly otherwise. So yay hackermans!

I personally believe it's not, since rumours about that have been going around for 2 years or so.

 

Keep in mind that those are just the kernel space stuff, the userland is still going to be entirely proprietary, and as the post said, is mostly relevant to DC users.

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

i had to do a double blink and a pinch on my arm to check if this was real and not a dream.

 

it is official, linux lads can have a *somewhat* fully open source linux system with a nvidia card.

hell hasn't frozen over, its turned into nothing but ice.

*Insert Witty Signature here*

System Config: https://au.pcpartpicker.com/list/Tncs9N

 

Link to comment
Share on other sites

Link to post
Share on other sites

Here's a nice post about how this is relevant, and why it doesn't matter that much for casual users in the short run, but will be important in the long run:

 

 

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

It is important to mention this does not replace the proprietary driver yet. It's only 2000-series and newer, sure, but also:

 

- The driver does not have open-source userspace components (Nouveau, Mesa, GNOME, and Red Hat are in talks with NVIDIA about how to make a userspace, non-kernel open-source component, but it probably won't be NVIDIA's stack.) Some think Nouveau (the old open-source NVIDIA driver) could target the new kernel code, but...

- The driver is currently very alpha quality, not upstreamable to Linux, and will be changing rapidly, which may hamper open-source userspace efforts (userspace being non-kernel and where Vulkan, OpenGL, and all that fun runs.)

 

Expect to be using the proprietary driver for the next ~1-3 years still.

 

Also of note is that Red Hat appears to have been the biggest driver of the effort. It appears NVIDIA is doing it for the data center play (especially as the CUDA support is the most-developed part of the open-source driver), not because Linux users were complaining which they really don't care about.

Link to comment
Share on other sites

Link to post
Share on other sites

Good job Nvidia.

Quite late to the party, but better credit where credit is due. Better late than never.

 

 

According to RedHat, the move to open source drivers have been in the works for "years" (plural) but things have really sped up during the last 3-4 months. My guess is that Nvidia had a long term plan to move their drivers to open source but it might have been a bit low priority and they have requested various changes to Linux to make things a bit more smooth.

 

Some other things to note:

1) The drivers currently released is primarily for datacenter GPUs running CUDA code. Things like display support is implemented but not really tested and very much "use at own risk" at this point in time.

 

2) This is only the kernel driver. Nvidia has not released anything regarding the firmware or userspace components yet. Those are still closed source.

 

3) There is A LOT of work to be done to get this working in an optimal way. Mesa needs to be changed to support these drivers (there are some functions hard coded to target Nouveau right now) and the firmware Nouveau uses (that Nvidia wrote and gave them) will probably need to be changed too. You can't really swap out the kernel driver in a driver package for a new one and expect everything to work. If you want to run everything as open source, a lot of work needs to be done. If you are okay with running some closed source software, you will be able to use the Nvidia open source kernel driver and the proprietary firmware and userspace components if you want.

If Nvidia are willing to work with groups like Mesa and Nouveau and change some core parts of their drivers, then in a couple of years we might be in a situation where the same kernel driver can be used by different userspace and firmware. This would be the ideal situation. 

 

4) This driver is not part of mainline Linux. The ABI is still very much work in progress and as a result they are unstable, and the kernel driver will be tied to a particular driver version. It seems like Nvidia want it to be part of mainline Linux, and if those are their intentions then they will need to support userspace software that takes advantage of the kernel driver.

 

 

 

My guess is that Intel were the ones who lit a fire under Nvidia's ass. Intel seems to be gunning for the data center market, and have committed to fully open source kernel drivers and userspace components (just like AMD). 

Link to comment
Share on other sites

Link to post
Share on other sites

Lol from the comments (github is a forum BTW)

 

spacer.png

The direction tells you... the direction

-Scott Manley, 2021

 

Softwares used:

Corsair Link (Anime Edition) 

MSI Afterburner 

OpenRGB

Lively Wallpaper 

OBS Studio

Shutter Encoder

Avidemux

FSResizer

Audacity 

VLC

WMP

GIMP

HWiNFO64

Paint

3D Paint

GitHub Desktop 

Superposition 

Prime95

Aida64

GPUZ

CPUZ

Generic Logviewer

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

wait what…

Is the world ending already!?

"A high ideal missed by a little, is far better than low ideal that is achievable, yet far less effective"

 

If you think I'm wrong, correct me. If I've offended you in some way tell me what it is and how I can correct it. I want to learn, and along the way one can make mistakes; Being wrong helps you learn what's right.

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, jaslion said:

This is 100% because of the leaked drivers from hackers at this point. No way would nvidia do this willingly otherwise. So yay hackermans!

Nope. 

 

This is more likely because they are getting push back from vendors since their datacenter GPU's are basically a Linux-only solution that is incomplete on windows, and the proprietary drivers that only work on RHEL8 means it only works on specific kernel versions (read: obsolete.) Imagine you're Dell or HP and and you're trying to sell a $1,000,000 computer, but it won't work with anyone's existing software.

 

image.thumb.png.b19594f8302b886a2a84587dff98a0cb.png

There is a lot of existing research projects that REQUIRE CUDA 10.1 not 11. But if you have a newer card that you can't install the older drivers on, SOL.

 

At any rate, I'm more likely to believe that some companies (eg Google, Amazon) probably are telling nvidia they want their hardware but not unless they can compile the drivers on their own house distros.

 

As it is, the key reason desktop Linux has been playing third-fiddle desktop OS is because nVidia wouldn't open source the kernel driver, so an nVidia card was at a disadvantage to AMD and Intel (which Intel apparently has the best support on Linux.) So half the installed computer base could never get an nvidia driver to work out of the box. So now that it's OSS, there will be less friction to including support out of the box.

Link to comment
Share on other sites

Link to post
Share on other sites

Well, time to wait until a stable version gets released for Pop_OS!

CPU - Ryzen 7 3700X | RAM - 64 GB DDR4 3200MHz | GPU - Nvidia GTX 1660 ti | MOBO -  MSI B550 Gaming Plus

Link to comment
Share on other sites

Link to post
Share on other sites

Holy crap this is amazing, going to make CUDA compute on Linux that little bit more easier and streamlined I hope. Yes!

 

4 hours ago, Kisai said:

There is a lot of existing research projects that REQUIRE CUDA 10.1 not 11. But if you have a newer card that you can't install the older drivers on, SOL.

Um I don't think you really know what you are talking about here or have practical experience with it. We're running current branch Nvidia GPU drivers and CUDA on RHEL8 right now with A40's and A100. Installation is a non-issue other than the drivers being proprietary and not provided by Red Hat through their managed repos and controls.

 

https://developer.nvidia.com/blog/streamlining-nvidia-driver-deployment-on-rhel-8-with-modularity-streams/

 

The problem is the process is unnecessarily annoying and you end up adding additional Nvidia yum repos, not that you are limited by anything you were talking about.

 

sudo dnf module install nvidia-driver:4.18

However I don't know why you would have to specifically limit yourself to an older version, 10.1 CUDA applications work with newer drivers and CUDA.

Link to comment
Share on other sites

Link to post
Share on other sites

16 minutes ago, leadeater said:

The problem is the process is unnecessarily annoying and you end up adding additional Nvidia yum repos, not that you are limited by anything you were talking about.

That's still going to happen since you'll still need to get the CUDA drivers and other userspace stuff out of additional repos, but at least you won't need to reboot to load the new kernel modules 😛

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, igormp said:

That's still going to happen since you'll still need to get the CUDA drivers and other userspace stuff out of additional repos, but at least you won't need to reboot to load the new kernel modules 😛

One day maybe there will be a RHEL Nvidia repo to sync that has everything, maybe one day... 🙂

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, LAwLz said:

SNIP

And just to add,  All companies do bad things for the consumer and all companies do good things for the consumer,  it gets tiring when most of the community is naive and we constantly only hear about the bad things and them being of nefarious motive while when the good things happen people claim it's only be because they were forced to.

 

 

Grammar and spelling is not indicative of intelligence/knowledge.  Not having the same opinion does not always mean lack of understanding.  

Link to comment
Share on other sites

Link to post
Share on other sites

Honestly, I did not expect this.

But I am happy for it happening, even if so don't use Linux.

“Remember to look up at the stars and not down at your feet. Try to make sense of what you see and wonder about what makes the universe exist. Be curious. And however difficult life may seem, there is always something you can do and succeed at. 
It matters that you don't just give up.”

-Stephen Hawking

Link to comment
Share on other sites

Link to post
Share on other sites

Relevant tweet from marcan:

 

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

Ya know, I wonder if someone can use this to compile a driver (or more likely a kext) for 20 and 30 series GPUs for macOS, unlikely as that is.

"A high ideal missed by a little, is far better than low ideal that is achievable, yet far less effective"

 

If you think I'm wrong, correct me. If I've offended you in some way tell me what it is and how I can correct it. I want to learn, and along the way one can make mistakes; Being wrong helps you learn what's right.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×