On May 11, NVIDIA announced in a blog post that it has officially open sourced its Linux GPU kernel module under a dual GPL/MIT license.
It is well known that NVIDIA has been very resistant to embracing open source, unlike its old rival AMD, which is very enthusiastic about open source. Although they provide excellent Linux driver support, their private, closed-source drivers have been criticized by the Linux community. For example, the famous Linus + middle finger + “So, fxxk you NVIDIA”, and the Fedora project lead has posted bashing NVIDIA for its proprietary driver software stack. Now NVIDIA has directly open sourced the entire Linux GPU kernel module, which is really unexpected.
The first release of this NVIDIA Open GPU kernel module is currently R515, with a fully built and packaged version of the driver available in addition to the source code.
- For data center GPUs in the NVIDIA Turing and NVIDIA Ampere architecture families, this code is available for production.
- For GeForce and workstation GPUs, these codes are considered “alpha release quality”
- Customers with Turing and Ampere GPUs can choose which modules to install.
- Pre-Turing customers will continue to run closed-source modules.
Note: Pre-compiled versions of both closed-source drivers and open-source kernel modules are available in the R515 release; these driver versions are mutually exclusive and users can choose at installation time.
And according to NVIDIA, the move is just the first step in the company’s broader open source initiative to “improve the experience of using NVIDIA GPUs in Linux, tighter integration with the operating system and ease of debugging, integration and feedback for developers.”
Currently, Ubuntu, Red Hat and SUSE are all preparing to package and use the open kernel module, with Ubuntu, for example, saying it will be available for the most recent Ubuntu 22.04 LTS release in the near future.
However, these kernel modules cannot yet be upstreamed because “the current codebase does not conform to Linux kernel design conventions. After all, NVIDIA’s proprietary drivers for Linux have previously used the same set of code across several Windows / Linux / FreeBSD / Solaris platforms to save time, and making them upstream in the Linux kernel may require more refactoring to cater to Linux. but NVIDIA says it has plans to work with the Linux kernel community to improve the situation.