Drivere video NVIDIA open-source pentru nucleul Linux

NVIDIA a anunțat că toate modulele kernel incluse în setul său de drivere video proprietare sunt open source. Codul este deschis sub licențe MIT și GPLv2. Capacitatea de a construi module este oferită pentru arhitecturile x86_64 și aarch64 pe sisteme cu Linux kernel 3.10 și versiuni mai noi. Firmware-ul și bibliotecile utilizate în spațiul utilizatorului, cum ar fi stivele CUDA, OpenGL și Vulkan, rămân proprietare.

Este de așteptat ca publicarea codului să ducă la o creștere semnificativă a gradului de utilizare a GPU-urilor NVIDIA pe sistemele Linux, să consolideze integrarea cu sistemul de operare și să simplifice livrarea driverelor și depanarea problemelor. Dezvoltatorii Ubuntu și SUSE au anunțat deja formarea de pachete bazate pe module deschise. Prezența modulelor deschise va simplifica, de asemenea, integrarea driverelor NVIDIA cu sisteme bazate pe versiuni personalizate non-standard ale nucleului Linux. Pentru NVIDIA, sursa deschisă va ajuta la îmbunătățirea calității și securității driverelor Linux printr-o interacțiune mai strânsă cu comunitatea și posibilitatea revizuirii modificărilor și auditului independent de către terți.

Se remarcă faptul că baza de cod deschis prezentată este utilizată simultan în formarea driverelor proprietare, în special, este folosită în ramura beta 515.43.04 publicată astăzi. În acest caz, cel primar este un depozit închis, iar baza de cod deschis propusă va fi actualizată pentru fiecare lansare de drivere proprietare sub forma unei turnări după o anumită procesare și curățare. Istoricul modificărilor individuale nu este furnizat, doar un commit general pentru fiecare versiune a driverului (în prezent este publicat codul modulelor pentru driverul 515.43.04).

Cu toate acestea, membrilor comunității li se oferă posibilitatea de a trimite cereri de extragere pentru a-și împinge corecțiile și modificările la codul modulului, dar aceste modificări nu vor fi reflectate ca modificări separate în depozitul public, ci vor fi mai întâi integrate în depozitul privat principal. și abia apoi transferat cu restul modificări pentru a deschide. Pentru a participa la dezvoltare, trebuie să semnați un acord privind transferul drepturilor de proprietate asupra codului transferat către NVIDIA (Contributor License Agreement).

Codul modulelor nucleului este împărțit în două părți: componente generale care nu sunt legate de sistemul de operare și un strat pentru interacțiunea cu nucleul Linux. Pentru a reduce timpul de instalare, componentele comune sunt încă furnizate în driverele proprietare NVIDIA sub forma unui fișier binar deja asamblat, iar stratul este asamblat pe fiecare sistem, ținând cont de versiunea curentă a nucleului și de setările existente. Sunt oferite următoarele module kernel: nvidia.ko, nvidia-drm.ko (Manager de redare directă), nvidia-modeset.ko și nvidia-uvm.ko (Memorie video unificată).

Seria GeForce și suportul pentru GPU pentru stații de lucru sunt listate ca calitate alfa, dar GPU-urile dedicate bazate pe arhitecturile NVIDIA Turing și NVIDIA Ampere utilizate în arhitecturile de accelerare a calculului din centrele de date și calcule paralele (CUDA) sunt complet acceptate și testate complet și potrivite pentru utilizare în producție. proiecte (open source este deja gata să înlocuiască driverele proprietare). Stabilizarea suportului GeForce și GPU pentru stațiile de lucru este planificată pentru versiunile viitoare. În cele din urmă, nivelul de stabilitate al bazei de cod sursă deschisă va fi adus la nivelul driverelor proprietare.

În forma sa actuală, includerea modulelor publicate în nucleul principal este imposibilă, deoarece acestea nu respectă cerințele stilului de codare ale nucleului și convențiile arhitecturale, dar NVIDIA intenționează să colaboreze cu Canonical, Red Hat și SUSE pentru a rezolva această problemă și stabilizați interfețele software-ului driverului. În plus, codul publicat poate fi folosit pentru a îmbunătăți driverul Nouveau cu sursă deschisă inclus în kernel, care utilizează același firmware GPU ca și driverul proprietar.

Sursa: opennet.ru

Adauga un comentariu