Nova, den nye driver skrevet i Rust fra Red Hat til NVIDIA GPU'er

Nova

Nova en ny Direct Rendering Manager (DRM) kernedriver skrevet i Rust

Siden Nvidia udgav sine kernemoduler GPU som open source, så det ud til, at både Nvidia proprietære driver og Nouveau open source driver ville have store forbedringer med de bidrag, som fællesskabet kunne yde og endda det på et tidspunkt Nouveau kunne klare opgaven.

Efter flere måneder og Nouveau-udviklingen vil bremse, Red Hat har grebet ind i sagen og for nylig annoncerede nyheden, at arbejder på Nova-projektet, der præsenterer sig som en ny åben driver til NVIDIA GPU'er, der udvikles i Rust.

Denne driver inkluderer GPU-initialisering og kontroloperationer i firmwaren ved hjælp af en selvstændig GSP-mikrocontroller. Nova er designet som et modul til Linux-kernen og bruger DRM-undersystemet (Direct Rendering Manager). Dette projekt betragtes som en fortsættelse af udviklingen af ​​Nouveau-driveren til GPU'er med GSP-firmware.

Danilo Krummrich (Red Hat) forklarer:

Med Nova har vi muligheden for at reducere kompleksiteten markant sammenlignet med Nouveau, af to hovedårsager. Først og fremmest er den historiske Nouveau-arkitektur, især omkring nvif/nvkm, ret kompliceret og ufleksibel og kræver et større eftersyn for at løse nogle problemer. Dernæst vil vi også benytte lejligheden til at bidrage til Rusts indsats i kernen og drage fordel af den øgede hukommelsessikkerhed, som Rust-programmeringssproget tilbyder.

Derudover nævnes det, at med udviklingen af ​​Nova, Red Hat har tænkt sig at benytte lejligheden til at bidrage til Rusts indsats i kernen, da driverkoden som nævnt er skrevet i Rust og bruger flere lag til at udvikle videodrivere på dette sprog. For eksempel bruger driveren abstraktioner fra Rust-Device-grenen til at skabe drivere, komponenter fra Rust-Pci-grenen til at arbejde med PCI-bussen og bindinger til DRM- og GEM-undersystemerne fra Rust-DRM-grenen.

Også nævnt er udviklingen af ​​drm-asahi Rust-driveren til Apple M1 og M2 chip GPU'er. Brugen af ​​Rust forventes at øge sikkerheden og pålideligheden af ​​driveren ved at reducere sandsynligheden for fejl ved arbejde med hukommelse og tillade kombinationen af ​​arbejde på videodriveren med udvikling af almindelige komponenter i Rust.

Målet fra Nova er til sidst blive en open source-driver til NVIDIA Linux, rettet mod Turing GPU'er og nyere modeller (især i RTX 2000-serien), der understøtter GSP. Denne nye controller udvikles i Rust for at opnå større lethed og fleksibilitet, hvilket præsenteres som en lovende mulighed.

Én grundene for at oprette en ny controller er at forenkle processen i forhold til Nouveau, takket være brugen af ​​klar-til-brug-drivere leveret af GSP-firmwaren. Dette undgår unødvendig kompleksitet i Nouveau-driverkoden, som skal understøtte ældre NVIDIA GPU'er og introducerer problemer såsom nedbrud i VMM/MMU-koden. Ved at udvikle Nova fra bunden og kun fokusere på GSP-baserede GPU'er, håber man at undgå disse problemer og komplikationer.

På den anden side nævner Red Hat også nogle af de punkter, den skal adressere, og siger, at med valget af Rust er det første problem, der skal løses, manglen på C-bindingsabstraktioner for end-to-end-kerneinfrastruktur:

"fx enhed/driver-abstraktioner... vi har brug for en bruger til upstream-abstraktionerne, men vi har også brug for abstraktionerne for at skabe en driver - vi vil udvikle Nova upstream og starte med kun en stub, der kun gør brug af nogle få abstraktioner Rust grundlæggende.

endelig hvis du er det interesseret i at vide mere om det, du kan kontrollere detaljerne I det følgende link, samt konsultere udviklingen og konsultere kildekoden til denne i dit lager.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.