NVIDIA Transitions Fully Towards Open-Source Linux GPU Kernel Modules
NVIDIA transitions to open-source GPU kernel modules with R560 driver release, supporting newer GPUs for features like memory management and computing. Users get a detection script for driver selection. Installation process updated for consistency.
Read original articleNVIDIA has transitioned fully towards open-source GPU kernel modules with the upcoming R560 driver release. The move follows the initial release of Linux GPU kernel modules in May 2022, targeting datacenter compute GPUs. The transition includes support for features like heterogeneous memory management, confidential computing, and coherent memory architectures. While newer GPUs from Turing, Ampere, Ada Lovelace, or Hopper architectures are recommended to switch to open-source modules, older GPUs from Maxwell, Pascal, or Volta architectures should continue using the proprietary driver. NVIDIA provides a detection helper script to assist users in selecting the appropriate driver for their GPUs. The installation process has been updated to default to the open-source driver, with specific considerations for package managers, runfile installations, and Windows Subsystem for Linux. The post also details package manager recommendations for various distributions to ensure a consistent experience when installing CUDA Toolkit and drivers.
Related
Ubuntu 24.10 Now Defaults to Wayland on Nvidia
Ubuntu 24.10 will switch to using Wayland over X11 for NVIDIA GPUs due to improved driver support. This aligns with GNOME 47 updates, enhancing performance and user experience with modern graphics technologies.
The Simplest Way to Control Nvidia GPU Fan Speed in Linux
The GitHub repository provides a script for controlling NVIDIA GPU fan speed in Linux. It includes a fan curve graph and instructions for setup, dependencies installation, and script execution to manage fan speed efficiently.
Nvidia NVLink Switch Chips Change to the HGX B200
NVIDIA introduced the HGX B200 board at Computex 2024, featuring two NVLink Switch chips instead of four, aiming to enhance performance and efficiency in high-performance computing applications by optimizing GPU configurations.
gpu.cpp: A lightweight library for portable low-level GPU computation
The GitHub repository features gpu.cpp, a lightweight C++ library for portable GPU compute using WebGPU. It offers fast cycles, minimal dependencies, and examples like GELU kernel and matrix multiplication for easy integration.
Run CUDA, unmodified, on AMD GPUs
SCALE is a GPGPU programming toolkit enabling CUDA apps to run on AMD GPUs without modification. It supports various vendors, mimics CUDA Toolkit, and aims for full compatibility with optional extensions.
- Many users are skeptical about the extent of the open-sourcing, noting that significant parts of the driver remain closed-source.
- Some users express hope that this move will improve the Linux experience with NVIDIA GPUs, while others remain doubtful.
- There is a discussion about the potential motivations behind NVIDIA's decision, including pressure from large companies and past hacking incidents.
- Several comments highlight the distinction between "fully towards open-source" and "towards fully open-source," indicating skepticism about NVIDIA's commitment.
- Some users are optimistic that this change could lead to better support for features like CUDA and hybrid graphics on Linux.
The best thing we can hope is improvement on NVK and RedHat's Nova Driver can put pressure on NVIDIA releasing their user space components.
[0] https://portswigger.net/daily-swig/nvidia-hackers-allegedly-...
(IIRC the main issue was https://gitlab.freedesktop.org/xorg/xserver/-/issues/1317 , which is now complete.)
Most of NVIDIA's kernel modules are split into two components:
An "OS-agnostic" component: this is the component of each kernel module that is independent of operating system.
A "kernel interface layer": this is the component of each kernel module that is specific to the Linux kernel version and configuration.
When packaged in the NVIDIA .run installation package, the OS-agnostic component is provided as a binary:NVIDIA is not transitioning to open-source drivers for its GPUs; most or all user-space parts of the drivers (and most importantly for me, libcuda.so) are closed-source; and as I understand from others, most of the logic is now in a binary blob that gets sent to the GPU.
Now, I'm sure this open-sourcing has its uses, but for people who want to do something like a different hardware backend for CUDA with the same API, or to clear up "corners" of the API semantics, or to write things in a different-language without going through the C API - this does not help us.
or
NVIDIA Transitions Towards Fully Open-Source GPU Kernel Modules?
Gaming on Linux with an NVIDIA card (especially an old one) is awful. Of course Linux gamers aren't the demographic driving this recent change of heart so I expect it to stay awful for a while yet.
big difference. almost nobody is going to give you the sauce hidden behind blobs. but i hope the dumb issues of the past (imagine using it on laptops with switchable graphics) go away slowly with this and it is not only for pleasing the enterprise crowd.
https://github.com/NVIDIA/open-gpu-kernel-modules/tree/main/...
NVIDIA can no longer get away with that nonsense when they have to show their code.
Open-sourcing graphics drivers may indicate that NVidia is moving away from GPUs for graphics. That's not where the money is now.
[1] https://www.visualcapitalist.com/nvidia-revenue-by-product-l...
[2] https://www.macrotrends.net/stocks/charts/NVDA/nvidia/roi
Never thought I would see the day.
Related
Ubuntu 24.10 Now Defaults to Wayland on Nvidia
Ubuntu 24.10 will switch to using Wayland over X11 for NVIDIA GPUs due to improved driver support. This aligns with GNOME 47 updates, enhancing performance and user experience with modern graphics technologies.
The Simplest Way to Control Nvidia GPU Fan Speed in Linux
The GitHub repository provides a script for controlling NVIDIA GPU fan speed in Linux. It includes a fan curve graph and instructions for setup, dependencies installation, and script execution to manage fan speed efficiently.
Nvidia NVLink Switch Chips Change to the HGX B200
NVIDIA introduced the HGX B200 board at Computex 2024, featuring two NVLink Switch chips instead of four, aiming to enhance performance and efficiency in high-performance computing applications by optimizing GPU configurations.
gpu.cpp: A lightweight library for portable low-level GPU computation
The GitHub repository features gpu.cpp, a lightweight C++ library for portable GPU compute using WebGPU. It offers fast cycles, minimal dependencies, and examples like GELU kernel and matrix multiplication for easy integration.
Run CUDA, unmodified, on AMD GPUs
SCALE is a GPGPU programming toolkit enabling CUDA apps to run on AMD GPUs without modification. It supports various vendors, mimics CUDA Toolkit, and aims for full compatibility with optional extensions.