Nova, den nye driveren skrevet i Rust fra Red Hat for NVIDIA GPUer

Nova

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

Siden Nvidia ga ut sine kjernemoduler GPU som åpen kildekode, så det ut til at både Nvidia proprietære driver og Nouveau åpen kildekode-driver ville ha store forbedringer med bidragene samfunnet kunne gi og til og med det på et tidspunkt Nouveau kan være opp til oppgaven.

Etter flere måneder og Nouveau-utviklingen vil bremse, Red Hat har tatt grep om saken og kunngjorde nylig nyhetene at jobber med Nova-prosjektet, som presenteres som en ny åpen driver for NVIDIA GPUer som utvikles i Rust.

Denne driveren inkluderer GPU-initialisering og kontrolloperasjoner i fastvaren ved å bruke en frittstående GSP-mikrokontroller. Nova er designet som en modul for Linux-kjernen og bruker DRM (Direct Rendering Manager)-delsystemet. Dette prosjektet regnes som en fortsettelse av utviklingen av Nouveau-driveren for GPUer med GSP-fastvare.

Danilo Krummrich (Red Hat) forklarer:

Med Nova har vi muligheten til å redusere kompleksiteten betydelig sammenlignet med Nouveau, av to hovedgrunner. For det første er den historiske Nouveau-arkitekturen, spesielt rundt nvif/nvkm, ganske komplisert og lite fleksibel og krever en større overhaling for å løse noen problemer. Deretter ønsker vi også å benytte anledningen til å bidra til Rusts innsats i kjernen og dra nytte av den økte minnesikkerheten som tilbys av programmeringsspråket Rust.

I tillegg nevnes det at med utviklingen av Nova, Red Hat har tenkt å benytte anledningen til å bidra til Rusts innsats i kjernen, siden driverkoden som nevnt er skrevet i Rust og bruker flere lag for å utvikle videodrivere på dette språket. For eksempel bruker driveren abstraksjoner fra Rust-Device-grenen for å lage drivere, komponenter fra Rust-Pci-grenen for å jobbe med PCI-bussen, og bindinger for DRM- og GEM-delsystemene fra Rust-DRM-grenen.

Også nevnt er utviklingen av drm-asahi Rust-driveren for Apple M1 og M2 chip GPUer. Bruken av Rust forventes å øke sikkerheten og påliteligheten til driveren ved å redusere sannsynligheten for feil ved arbeid med minne og tillate kombinasjonen av arbeid på videodriveren med utvikling av vanlige komponenter i Rust.

Målet fra Nova er til slutt bli en åpen kildekode-driver for NVIDIA Linux, rettet mot Turing GPUer og nyere modeller (spesielt i RTX 2000-serien) som støtter GSP. Denne nye kontrolleren utvikles i Rust for å oppnå større letthet og fleksibilitet, som presenteres som et lovende alternativ.

En av grunnene for å lage en ny kontroller er å forenkle prosessen sammenlignet med Nouveau, takket være bruken av ferdige drivere levert av GSP-fastvaren. Dette unngår unødvendig kompleksitet i Nouveau-driverkoden, som må støtte eldre NVIDIA GPUer og introduserer problemer som krasj i VMM/MMU-koden. Ved å utvikle Nova fra bunnen av og kun fokusere på GSP-baserte GPUer, håper man å unngå disse problemene og komplikasjonene.

På den annen side nevner Red Hat også noen av punktene den må adressere, og sier at med valget av Rust er det første problemet å løse mangelen på C-bindende abstraksjoner for ende-til-ende kjerneinfrastruktur:

"f.eks enhet/driverabstraksjoner... vi trenger en bruker for oppstrømsabstraksjonene, men vi trenger også abstraksjonene for å lage en driver - vi ønsker å utvikle Nova oppstrøms og starte med bare en stubbe som bare bruker noen få abstraksjoner Rust grunnleggende.

endelig hvis du er det interessert i å vite mer om det, kan du sjekke detaljene I følgende lenke, samt konsultere utviklingen og konsultere kildekoden til denne i depotet ditt.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.