NVIDIA Releases Open Source GPU Kernel for Linux


NVIDIA Releases Open Source GPU Kernel Modules

NVIDIA is now publishing Linux GPU kernel modules as open source with dual GPL/MIT license starting with the R515 driver release. You can find the source code for these kernel modules in the NVIDIA Open GPU Kernel Modules repository GitHub

This release is an important step toward improving the experience of using NVIDIA GPUs in Linux, for closer integration with the operating system, and for developers to debug, integrate, and contribute. For Linux distribution providers, the open source modules increase ease of use. They also improve the out-of-the-box user experience for signing and distributing the NVIDIA GPU driver. Canonical and SUSE can immediately package the open kernel modules with Ubuntu and SUSE Linux Enterprise Distributions.

Developers can trace code paths and see how kernel event scheduling interacts with their workload for faster root-cause debugging. In addition, enterprise software developers can now seamlessly integrate the driver into the custom Linux kernel configured for their project.

This will help further improve the quality and security of NVIDIA GPU drivers with input and reviews from the Linux end user community.

With each new driver release, NVIDIA publishes a snapshot of the source code on GitHub. Community submitted patches will be reviewed and, if approved, integrated into a future driver release.

Refer to the NVIDIA Contribution Guidelines and Driver Release Cadence Overview and Lifecycle Documentation for more information.

Supported functionality

The first release of the open GPU kernel modules is R515. Fully built and packaged versions of the drivers are provided along with the source code.

For data center GPUs in the NVIDIA Turing and NVIDIA Ampere architecture families, this code is production ready. This was made possible by the phased rollout of the GSP driver architecture over the past year, designed to make the transition easy for NVIDIA customers. We focused on testing a wide variety of workloads to ensure feature parity and performance with the proprietary kernel-mode driver.

In the future, functionality such as HMM will be a fundamental component for confidential computing on the NVIDIA Hopper architecture.

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 log in using the kernel module parameter NVreg_EnableUnsupportedGpus as marked in the documentation† More robust and full-featured GeForce and Workstation support will follow in subsequent releases, and the NVIDIA Open Kernel Modules will eventually replace the closed-source driver.

Customers with Turing and Ampere GPUs can choose which modules to install. Pre-Turing customers will continue to use the closed source modules.

The open-source kernel-mode driver works with the same firmware and the same user-mode stacks such as CUDA, OpenGL, and Vulkan. However, all components of the driver stack must correspond to versions within a release. For example, you can’t release the source code, build it, and run it using the user-mode stack from a previous or future release.

Installation opt-in

The R515 release includes precompiled versions of both the closed-source driver and the open-source kernel modules. These versions are mutually exclusive and the user can make the choice during the installation. The default option causes silent installs to choose the optimal path for NVIDIA Volta and older GPUs versus Turing+ GPUs.

Users can build kernel modules from source and install them with the appropriate user-mode drivers.

Figure 1: Illustration of installation options for the end user to opt in to opening GPU kernel modules and the default path of closed source modules.

Source: NVIDIA


« end of the press release »



Leave a Reply

Your email address will not be published.