Nova, noul driver scris în Rust de la Red Hat pentru GPU-uri NVIDIA

Nova

Nova un nou driver de kernel Direct Rendering Manager (DRM) scris în Rust

De când Nvidia și-a lansat modulele kernelului GPU ca sursă deschisă, se părea că atât driverul proprietar Nvidia, cât și driverul Nouveau open source vor avea mari îmbunătățiri cu contribuțiile pe care comunitatea le-ar putea face și chiar că la un moment dat Nouveau ar putea fi la înălțime.

După câteva luni şi Dezvoltarea Nouveau va încetini, Red Hat a luat măsuri în această privință și a anunțat recent vestea că lucrează la proiectul Nova, care se prezintă ca un nou driver deschis pentru GPU-urile NVIDIA care este dezvoltat în Rust.

Acest șofer include operațiuni de inițializare și control GPU în firmware, folosind un microcontroler GSP independent. Nova este proiectat ca un modul pentru nucleul Linux și folosește subsistemul DRM (Direct Rendering Manager). Acest proiect este considerat o continuare a dezvoltării driverului Nouveau pentru GPU-uri cu firmware GSP.

Danilo Krummrich (Pălărie roșie) explică:

Cu Nova avem posibilitatea de a reduce semnificativ complexitatea în comparație cu Nouveau, din două motive principale. În primul rând, arhitectura istorică Nouveau, în special în jurul nvif/nvkm, este destul de complicată și inflexibilă și necesită o revizuire majoră pentru a rezolva unele probleme. În continuare, vrem să profităm de ocazie pentru a contribui la eforturile Rust în nucleu și a beneficia de siguranța sporită a memoriei oferită de limbajul de programare Rust.

În plus, se menționează că odată cu dezvoltarea Nova, Red Hat intenționează să profite de ocazie pentru a contribui la eforturile lui Rust în nucleu, deoarece, după cum am menționat, codul driverului este scris în Rust și utilizează mai multe straturi pentru a dezvolta drivere video în această limbă. De exemplu, driverul folosește abstracții din ramura Rust-Device pentru a crea drivere, componente din ramura Rust-Pci pentru a lucra cu magistrala PCI și legături pentru subsistemele DRM și GEM din ramura Rust-DRM.

De asemenea, este menționată dezvoltarea driverului drm-asahi Rust pentru GPU-urile cu cip Apple M1 și M2. Utilizarea Rust este de așteptat să crească securitatea și fiabilitatea driverului prin reducerea probabilității de erori atunci când lucrați cu memorie și permițând combinarea lucrărilor la driverul video cu dezvoltarea componentelor comune în Rust.

Obiectivul din Nova este în cele din urmă devin un driver open source pentru NVIDIA Linux, care vizează GPU-urile Turing și modelele mai noi (în special în seria RTX 2000) care acceptă GSP. Acest nou controler este dezvoltat în Rust pentru a obține o mai mare ușurință și flexibilitate, ceea ce este prezentat ca o opțiune promițătoare.

Una dintre motivele pentru a crea un nou controler este de a simplifica procesul comparativ cu Nouveau, datorită utilizării driverelor gata de utilizare furnizate de firmware-ul GSP. Acest lucru evită complexitatea inutilă a codului de driver Nouveau, care trebuie să accepte GPU-uri NVIDIA mai vechi și introduce probleme precum blocările în codul VMM/MMU. Prin dezvoltarea Nova de la zero și concentrându-se doar pe GPU-uri bazate pe GSP, se speră să se evite aceste probleme și complicații.

Pe de altă parte, Red Hat menționează și câteva dintre punctele pe care trebuie să le abordeze, spunând că, odată cu alegerea Rust, prima problemă de rezolvat este lipsa abstracțiilor de legare C pentru infrastructura kernel-ului end-to-end:

„De exemplu, abstracții dispozitiv/driver... avem nevoie de un utilizator pentru abstracțiile din amonte, dar avem nevoie și de abstracții pentru a crea un driver - vrem să dezvoltăm Nova în amonte și să începem doar cu un stub care folosește doar câteva abstracții Rust elementele de bază.

in sfarsit daca esti interesat să afle mai multe despre asta, puteți verifica detaliile În următorul link, precum și consultați dezvoltarea și consultați codul sursă al acestuia în depozitul dvs.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.