news

NVIDIA officially announced that it will fully open source its GPU kernel driver, which has been iterated to the strongest version in two years! The next generation of Blackwell will be fully open source

2024-07-18

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



  New Intelligence Report

Edit: Yongyong
【New Wisdom Introduction】NVIDIA has fully turned to open source GPU kernel modules, and history will once again bear witness to the power of open source in the Linux community.

NVIDIA announced a full shift to open source GPU kernel modules!
This open source action is a continuation of an initiative by NVIDIA two years ago.Open source Linux GPU kernel driver module announced in May 2022
This incident sparked heated discussions in many open source communities and organizations at the time, and netizens speculated that the reason behind Nvidia's actions was due to pressure from Linus Torwalds, the father of Linux.
Past grievances aside, the open source kernel driver support situation has improved significantly with the release of the latest NVIDIA 555 Linux driver series, and NVIDIA published a long blog post today to promote it.
In this blog post, NVIDIA describes how their open source GPU kernel module has matured over the past two years, as well as the new features that have been added.
It is worth noting that the open source driver code is still outside the mainline kernel.
A Reddit user compared Nvidia's "open, but not fully open" approach to a "semi-open kitchen." It turns out that open source actually means open sauce.
Regardless, having this kind of open source GPU kernel driver support is a win, even if its userspace driver component remains closed source.

Fulfilling a promise made two years ago

Back to two years ago, with the release of the R515 driver, NVIDIA released a set of Linux GPU kernel modules in an open source manner with dual licenses of GPL and MIT.
The initial release is in alpha for datacenter compute GPUs, GeForce, and workstation GPUs.
At the time, Nvidia announced that it would provide more powerful and comprehensive GeForce and workstation Linux support in subsequent versions, and that open kernel modules would eventually replace closed-source drivers.
Now, the R560 driver version is about to be released. At this point in time, NVIDIA has chosen to fulfill its previous promise - to fully transition to an open source GPU kernel module.
The open source GPU kernel module adds a lot of new features without losing or even exceeding the original performance:

- Heterogeneous Memory Management (HMM) support

- Confidential Computing

- NVIDIA Grace platform consistent memory architecture

- More other features

Supported GPUs

Although it is a full shift to open source GPU kernel modules, not all GPUs are compatible with open source GPU kernel modules.
In general, new products and flagship platforms are supported, but older GPUs are not.
Specifically, for the two flagship platforms, Grace Hopper or Blackwell, only open source GPU kernel modules are supported, and proprietary drivers are no longer supported.
For older GPUs with Maxwell, Pascal or Volta architectures, they are not compatible with the open source GPU kernel modules and need to continue using proprietary drivers.
Some netizens expressed regret about this.
For newer GPUs based on the Turing, Ampere, Ada Lovelace, or Hopper architectures, Nvidia recommends switching to the open source GPU kernel modules.
Mixed deployments of older and newer GPUs in the same system are only supported using proprietary drivers.

The open source community is eagerly waiting


Why does Nvidia's open source GPU kernel module make developers excited?
There are two parts to a driver, one that runs in user space and one that runs in kernel space. Nvidia drivers used to be completely proprietary (except for a shim layer that interacted directly with the kernel).
But after Nvidia chose to open source it, developers can read, reverse engineer, fork, send pull requests, etc., allowing developers to improve the open source driver and enable more features than before.
This is how NVK was born. It is an open source driver developed by Collabora, Red Hat and the community for NVIDIA graphics cards. Its goal is to become a mainstream graphics card driver.
NVK is the userspace part of the driver and can be used in conjunction with Nouveau.
Nouveau is an old open source driver that has fallen into disrepair. Red Hat is developing a new kernel space driver, Nova, to replace Nouveau.
As NVIDIA takes more steps towards open source and more open source community contributions, the potential of NVK can be further stimulated and continuously improved by adding additional features and GPU support.
It’s just that this process may still require enough “patience”.
The question is how far Nvidia can go on the open source path.
After analyzing Nvidia's motivation and logic for doing so, some netizens came to a conclusion: the mainline kernel will never be open source. The reason is:
Open source modules are necessary because the Linux kernel has been modified to cover non-GPLv2 modules, which will cause a lot of problems with Nvidia drivers.
The solution is to put all the proprietary code into the firmware, keep it proprietary, and make the rest of the kernel drivers free and open source.
Now, Nvidia seems to be ready to abandon the old proprietary driver modules and continue to use FOSS (Free and Open Source Software) modules.
But this does not mean it will appear in the mainline kernel, absolutely not, because it is a shared license (MIT+GPLv2).
Some netizens expressed doubts about Nvidia's move, believing that it was a forced move: Nvidia was constantly urged by industry partners (such as Red Hat) and constantly humiliated by the open source community. It may also be out of consideration to reduce maintenance to keep the driver stack updated and running on the new kernel.
A netizen who is well aware of Huang's character suggested that "Nvidia has always been indifferent to the opinions of its partners." This should be related to LLM. Making more code part of the training set will allow tools such as ChatGPT/Claude/Copilot to better generate code for Nvidia GPUs.
Indeed, it is hard to believe that one of the world’s most valuable companies would actually care about the alleged humiliation and public sentiment, surely being too busy printing money like crazy using the hardware in its data centers.
What Nvidia really cares about is growing markets like Linux, which is still small but growing and becoming more important in the non-gaming GPU space.
References: