NVIDIA open-source videostuurprogramma's voor de Linux-kernel

NVIDIA heeft aangekondigd dat alle kernelmodules in de set eigen videostuurprogramma's open source zijn. De code is open onder MIT- en GPLv2-licenties. De mogelijkheid om modules te bouwen wordt geboden voor x86_64- en aarch64-architecturen op systemen met Linux kernel 3.10 en nieuwere releases. De firmware en bibliotheken die in de gebruikersruimte worden gebruikt, zoals CUDA-, OpenGL- en Vulkan-stacks, blijven eigendom.

Er wordt verwacht dat de publicatie van de code zal leiden tot een aanzienlijke verbetering van de bruikbaarheid van het werken met NVIDIA GPU's op Linux-systemen, de integratie met het besturingssysteem zal versterken en de levering van stuurprogramma's en het opsporen van problemen zal vereenvoudigen. De ontwikkelaars van Ubuntu en SUSE hebben al de vorming aangekondigd van pakketten op basis van open modules. De aanwezigheid van open modules zal ook de integratie van NVIDIA-stuurprogramma's vereenvoudigen met systemen die zijn gebaseerd op niet-standaard aangepaste builds van de Linux-kernel. Voor NVIDIA zal open source de kwaliteit en veiligheid van Linux-stuurprogramma's helpen verbeteren door nauwere interactie met de gemeenschap en de mogelijkheid van beoordeling door derden van wijzigingen en onafhankelijke audits.

Opgemerkt wordt dat de gepresenteerde open codebasis tegelijkertijd wordt gebruikt bij de vorming van eigen stuurprogramma's, in het bijzonder in de bètatak 515.43.04 die vandaag is gepubliceerd. In dit geval is de primaire een gesloten repository en zal de voorgestelde open codebasis voor elke release van propriëtaire stuurprogramma's worden bijgewerkt in de vorm van een cast na bepaalde verwerking en opschoning. De geschiedenis van individuele wijzigingen wordt niet gegeven, alleen een algemene commit voor elke versie van het stuurprogramma (momenteel wordt de code van modules voor stuurprogramma 515.43.04 gepubliceerd).

Leden van de community krijgen echter de mogelijkheid om pull-requests in te dienen om hun fixes en wijzigingen in de modulecode te pushen, maar deze wijzigingen zullen niet worden weerspiegeld als afzonderlijke wijzigingen in de openbare repository, maar zullen eerst worden geïntegreerd in de belangrijkste private repository en pas daarna overgedragen, terwijl de rest verandert om te openen. Om deel te nemen aan de ontwikkeling, moet u een overeenkomst ondertekenen over de overdracht van eigendomsrechten op de overgedragen code aan NVIDIA (Contributor License Agreement).

De code van de kernelmodules is verdeeld in twee delen: algemene componenten die niet gebonden zijn aan het besturingssysteem en een laag voor interactie met de Linux-kernel. Om de installatietijd te verkorten, worden algemene componenten nog steeds geleverd in eigen NVIDIA-stuurprogramma's in de vorm van een reeds samengesteld binair bestand, en wordt de laag op elk systeem samengesteld, rekening houdend met de huidige kernelversie en bestaande instellingen. De volgende kernelmodules worden aangeboden: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko en nvidia-uvm.ko (Unified Video Memory).

GeForce-serie en GPU-ondersteuning voor werkstations worden vermeld als alpha-kwaliteit, maar speciale GPU's gebaseerd op de NVIDIA Turing- en NVIDIA Ampere-architecturen die worden gebruikt in datacenter computing-acceleratie en parallel computing (CUDA)-architecturen worden volledig ondersteund en volledig getest en geschikt voor gebruik in productie. projecten (open source is al klaar om propriëtaire stuurprogramma's te vervangen). Stabilisatie van GeForce- en GPU-ondersteuning voor werkstations is gepland voor toekomstige releases. Uiteindelijk zal het stabiliteitsniveau van de open source-codebasis op het niveau van propriëtaire stuurprogramma's worden gebracht.

In zijn huidige vorm is het opnemen van gepubliceerde modules in de hoofdkernel onmogelijk, omdat ze niet voldoen aan de codeerstijlvereisten en architectonische conventies van de kernel. NVIDIA is echter van plan samen te werken met Canonical, Red Hat en SUSE om dit probleem op te lossen en stabiliseren van de driversoftware-interfaces. Bovendien kan de gepubliceerde code worden gebruikt om de open-source Nouveau-driver in de kernel te verbeteren, die dezelfde GPU-firmware gebruikt als de eigen driver.

Bron: opennet.ru

Voeg een reactie