Nvidia unter Linux: Freie Kernel-Module kommen mit GeForce-Treiber-Serie 560
Nvidia hat im eigenen Entwickler-Forum angekündigt, dass mit der kommenden 560er Treiberserie freie Kernel-Module für Linux einziehen, die mit Grafikkarten ab der Turing-Generation (RTX 2000 oder GTX 16xx) zum Einsatz kommen können. Die Option zum Installieren des proprietären Modules bleibt bestehen.
Gleiche Codebasis, unterschiedliche Features
Laut der Installationsanleitung zu den Open Linux Kernel Modules verwenden sowohl der freie Kernel Treiber als auch der proprietäre die gleiche Codebasis, es gibt aber auch Einschränkungen.
Starting in the release 560 series, it will be recommended to use the open flavor of NVIDIA Linux Kernel Modules wherever possible (Turing or later GPUs, or Ada or later when using GPU virtualization).
If installing from the .run file, installation will detect what GPUs are present and default to installing the open kernel modules if all NVIDIA GPUs in the system can be driven by the open kernel modules. Distribution-specific repackaging of the NVIDIA driver may require additional steps, specific to that packaging, to choose the open flavor.
In the release 560 series, it will still be possible to configure the .run file to install the proprietary flavor of kernel modules, with the --kernel-module-type=proprietary command line option. However, in the future, some GPUs may only be supported with the open flavor.
So funktionieren die freien Module nur mit GPUs ab der Turing-Generation, da Nvidia den GPU System Prozessor (GSP) voraussetzt. Dabei handelt es sich um einen kleinen RISC-V-Prozessor innerhalb des Grafikprozessors, welcher unter anderem die Aufgabenverwaltung übernehmen kann, statt diese vom Treiber auf der CPU ausführen zu lassen.
Ziel auf lange Sicht für Nvidia ist, die proprietären Kernel-Module mit der Open-Source-Variante auf dem freien Betriebssystem zu ersetzen. Die meisten Funktionen werden bereits jetzt unterstützt, Nvidia verweist auf CUDA, Vulkan, OpenGL, OptiX und X11. Obendrein gibt es Funktionen, welche exklusiv nur mit den freien Modulen funktionieren, darunter:
- NVIDIA Confidential Computing
- Magnum IO GPUDirect Storage (GDS)
- Heterogeneous Memory Management (HMM)
- CPU affinity for GPU fault handlers
- DMABUF support for CUDA allocations
Was hingegen aktuell nicht möglich sein wird, ist G-Sync auf Notebooks sowie der Erhalt des Videospeichers im Rahmen des Power-Managements.
Noch nicht fehlerfrei
Da die Entwicklung noch nicht abgeschlossen ist, wird es noch zu Einschränkungen im Vergleich zu den vorherigen Kernel-Modulen kommen. So ist die GPU-Initialisierung langsamer, wenn Anwendungen davon Gebrauch machen wollen. Ebenso gibt es Verzögerungen beim Wechsel zu und aus Stromsparmodi wie S3 und S4. Es kann auch in verschiedenen Situationen Auswirkungen auf den Stromverbrauch geben.
Der Modus Run Time D3 (RTD3) wird erst ab Ampere (RTX 3000) unterstützt. Die „Sync to vblank blits“-Funktion kann zu höherem Overhead in der Auslastung der GPU führen.
Die Entwicklung der Open-Source-GPU-Kernel-Module wurde bereits 2022 angekündigt und könnte in Zukunft im Zusammenspiel mit dem freien Vulkan-Treiber für Nvidia-GPUs (NVK) eine Alternative zum proprietären Treiber bilden und zum Standard unter Linux werden, so wie es bereits heute bei AMD und deren Open-Source-Treibern der Fall ist.
Nvidia hat das im Mai in der Entwickler-Community erklärte Ziel, mit GeForce 560 auf freie Kernel-Module für Linux zu wechseln, im Entwickler-Blog noch einmal auf größerer Bühne bekräftigt.
Neu ist die Information, dass „cutting-edge“ Achitekturen wie Nvidia Grace Hopper und Blackwell nur noch von den Open-Source-Kernel-Modulen unterstützt werden.
Not every GPU is compatible with the open-source GPU kernel modules.
For cutting-edge platforms such as NVIDIA Grace Hopper or NVIDIA Blackwell, you must use the open-source GPU kernel modules. The proprietary drivers are unsupported on these platforms.
For newer GPUs from the Turing, Ampere, Ada Lovelace, or Hopper architectures, NVIDIA recommends switching to the open-source GPU kernel modules.
For older GPUs from the Maxwell, Pascal, or Volta architectures, the open-source GPU kernel modules are not compatible with your platform. Continue to use the NVIDIA proprietary driver.
For mixed deployments with older and newer GPUs in the same system, continue to use the proprietary driver.