In upcoming driver releases, Nvidia will prioritize its open-source kernel driver. This move has sparked challenges within the community, prompting efforts to explore alternatives.
Nvidia's next generation of graphic drivers will default to the open-source variant instead of the proprietary Linux kernel driver, provided it supports the detected graphics processor. This strategic shift, two years after introducing an open-source kernel module for Linux, signals Nvidia's long-term plan to phase out its historically contentious proprietary kernel driver.
For many Nvidia driver users, immediate changes may be minimal, with certain aspects potentially becoming more complex. However, the situation is expected to significantly improve in the medium to long term, possibly rendering Nvidia's proprietary drivers unnecessary for many users.
Paradigm Shift Due to AI Hype
Nvidia is transitioning with its 560 series drivers, as the open-source driver now supports modern graphics chips for notebooks, desktops, and workstations comparably well to the proprietary counterpart. Contrastingly, when Nvidia released a Linux kernel driver under GPL/MIT in May 2022, mainstream GPU support was still in its alpha stage, lacking many essential features.
This disparity stemmed from Nvidia initially developing the open-source driver primarily for its AI accelerator chips, which are related to mainstream GPUs. Evidently, pressure from the enterprise market has triggered this paradigm shift: technical, practical, and licensing issues with proprietary kernel drivers increasingly became a competitive disadvantage in the lucrative AI market, where companies favoring open drivers like AMD and Intel gained an edge. Hence, the future clearly favors the open kernel module. For Nvidia's latest chips from the Grace Hopper and Blackwell series, no proprietary kernel drivers have been released.
However, Nvidia has since resolved significant functional gaps in mainstream GPU support. The documentation for the current 555 driver series now lists few limitations associated with using the open-source kernel driver.
Installer Provides User Choice
Notably, the open-source kernel driver supports only Turing, Ampere, Ada Lovelace, and Hopper generations—essentially GeForce 20 series and newer GPUs. It does not support Maxwell, Pascal, and Volta generations (GeForce 800 to 10xx series, and select 700 series models), for which users must continue using the proprietary kernel driver, which still supports the aforementioned chips. Older GPU series supported via legacy driver sets also remain proprietary. Similarly to AI accelerators, future mainstream graphic chips are likely to exclusively use the open-source kernel driver.
The installer already accommodates this dual approach but will increasingly prioritize the open-source driver starting from the 560 series. Additionally, it integrates the proprietary drivers for 3D (OpenGL and Vulkan), video playback (NVDEC), video encoding (NVENC), and general computations (CUDA) through the GPU module.
Distribution and Add-On Packages Adaptation
Many users do not install drivers via Nvidia's installer but through distribution-specific packages. It remains to be seen how well these distributions manage the balance to ensure the appropriate Nvidia-recommended kernel module is used based on the detected graphics chip.
Consequently, the already complex driver installation process is likely to further complicate until support for older GPUs, only supported by the proprietary kernel driver, transitions to a legacy driver. Long-term, Nvidia's kernel driver shift can simplify driver installations as distributions can confidently integrate the open-source driver into their standard kernels without fear of repercussions. Some distributors, however, may hesitate due to increased kernel maintenance complexity and associated challenges.
Frustrations Persist with Kernel Developers
Improvements for users attempting to report issues to official Linux kernel developers are expected to be minimal. Historically, developers have shown little interest in bug reports from systems using Nvidia's proprietary kernel drivers. Open-source licensed external kernel drivers fare marginally better: due to lack of isolation, an error in their code can easily lead to issues in unrelated kernel areas, complicating diagnostics. As usual, many developers are likely to demand reproducing issues on systems without Nvidia drivers before considering them.
Nvidia's current driver in its current form will never be included in the official kernel due to its lack of a stable interface to userland drivers for 3D, video, and related components—a priority for Linux creator and lead developer Linus Torvalds. This ensures kernel updates can proceed without simultaneously updating userland drivers built on any of its drivers.
Community Develops a Clean Approach
The open-source community is actively pursuing alternative solutions to enhance the situation. Notably, several Red Hat employees have been developing a kernel driver named "Nova" for Nvidia's latest GPU generations. They leverage Nvidia's open-source kernel driver as a reference and the firmware it utilizes. This approach fully exploits the hardware potential, enabling the GPU to operate in its most efficient and fastest modes. This capability was absent in the streamlined firmware Nvidia released over the past years for GPU generations since Maxwell, a primary reason why the Nouveau driver included in the kernel delivers underwhelming performance for many newer GPUs.
The community is also working on suitable userspace drivers, such as the "NVK" driver spearheaded by a Collabora employee. It already masters current Vulkan versions and is compatible with Nouveau. Current versions of Mesa, the graphics driver library and collection included in Linux distributions, already integrate this driver. If Nova gains momentum and is integrated into the official kernel, Linux distributions are likely to provide significantly improved out-of-the-box support for Nvidia's latest graphics chips—potentially rendering Nvidia's proprietary drivers unnecessary for many users.
Post a Comment