Nova, el nou controlador escrit a Rust de Red Hat per a GPUs NVIDIA

Nou

Nova un nou controlador del nucli Direct Rendering Manager (DRM) escrit a Rust

Des que Nvidia allibero els seus mòduls de nucli GPU com a codi obert, semblava que tant el controlador propietari de Nvidia com el controlador de codi obert Nouveau tindrien grans millores amb les aportacions que podria realitzar la comunitat i fins i tot que algun moment Nouveau podria estar a l'alçada.

Després de diversos mesos i que el desenvolupament de Nouveau s'arribés alentir, Red Hat ha pres cartes a l'assumpte i fa poc va donar a conèixer la notícia que es troba treballant al projecte Nova, el qual presenta com un nou controlador obert per a GPU NVIDIA el qual està sent desenvolupat a Rust.

Aquest controlador inclou operacions d'inicialització i control de la GPU al microprogramari, utilitzant un microcontrolador GSP independent. Nova està dissenyat com un mòdul per al nucli de Linux i utilitza el subsistema DRM (Direct Rendering Manager). Aquest projecte es considera una continuació del desenvolupament del controlador Nouveau per a GPU amb firmware GSP.

Danilo Krummrich (Red Hat) explica:

Amb Nova tenim l'oportunitat de reduir significativament la complexitat en comparació de Nouveau, per dues raons principals. En primer lloc, l'arquitectura històrica de Nouveau, especialment al voltant de nvif/nvkm, és força complicada i inflexible i requereix una revisió important per resoldre alguns problemes. A continuació, també volem aprofitar l'oportunitat per contribuir als esforços de Rust al nucli i beneficiar-nos de la major seguretat de la memòria que ofereix el llenguatge de programació Rust.

A més d'això, s'esmenta que amb el desenvolupament de Nova, Red Hat pretén aprofitar l'oportunitat per contribuir als esforços de Rust al nucli, ja que com es va esmentar el codi del controlador està escrit a Rust i utilitza diverses capes per desenvolupar controladors de vídeo en aquest llenguatge. Per exemple, el controlador utilitza abstraccions de la branca Rust-Device per crear controladors, components de la branca Rust-Pci per treballar amb el bus PCI, i enllaços per als subsistemes DRM i GEM de la branca Rust-DRM.

També s'esmenta el desenvolupament del controlador drm-asahi Rust per a GPU de xips Apple M1 i M2. L'ús de Rust s'espera que augmenti la seguretat i confiança del controlador en reduir la probabilitat d'errors en treballar amb la memòria i permetre la combinació del treball al controlador de vídeo amb el desenvolupament de components comuns a Rust.

l'objectiu de Nova és esdevenir eventualment un controlador de codi obert per a NVIDIA Linux, dirigit a les GPU Turing i models més recents (especialment a la sèrie RTX 2000) que admetin GSP. Aquest nou controlador està sent desenvolupat a Rust per aconseguir més lleugeresa i flexibilitat, la qual cosa es presenta com una opció prometedora.

Una de les raons per crear un nou controlador és simplificar el procés en comparació amb Nouveau, gràcies a l'ús de controladors llestos per utilitzar proporcionats pel firmware GSP. Això evita la complexitat innecessària al codi del controlador Nouveau, que necessita suportar GPU NVIDIA més antigues i presenta problemes com bloquejos al codi VMM/MMU. En desenvolupar Nova des de zero i enfocar-se només a GPU basades en GSP, s'espera evitar aquests problemes i complicacions.

D'altra banda, Red Hat també esmenta alguns dels punts a abordar, ja que diu que amb l'elecció de Rust, el primer problema a resoldre és la manca d'abstraccions d'enllaç de C per a infraestructura integral del nucli:

«per exemple, abstraccions de dispositiu/controlador … necessitem un usuari per a les abstraccions en sentit ascendent, però també necessitem les abstraccions per crear un controlador: volem desenvolupar Nova en sentit ascendent i començar amb només un codi auxiliar que només faci ús d'algunes abstraccions bàsiques de Rust.

Finalment si estàs interessat a poder conèixer més sobre això, pots consultar els detalls en el següent enllaç, així com també consultar el desenvolupament i consultar el codi font d'aquest al seu repositori.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.