Nova, den nya drivrutinen skriven i Rust från Red Hat för NVIDIA GPU:er

Nytt

Nova en ny DRM (Direct Rendering Manager) kärndrivrutin skriven i Rust

Sedan Nvidia släppte sina kärnmoduler GPU som öppen källkod, verkade det som om både Nvidias proprietära drivrutin och Nouveau open source-drivrutinen skulle ha stora förbättringar med de bidrag som gemenskapen kunde göra och till och med det någon gång Nouveau kan klara uppgiften.

Efter flera månader och Nouveau-utvecklingen kommer att sakta ner, Red Hat har vidtagit åtgärder i frågan och nyligen meddelade nyheten att arbetar med Nova-projektet, som presenteras som en ny öppen drivrutin för NVIDIA GPU:er som utvecklas i Rust.

Denna förare inkluderar GPU-initiering och kontrolloperationer i den fasta programvaran med hjälp av en fristående GSP-mikrokontroller. Nova är designad som en modul för Linux-kärnan och använder DRM-delsystemet (Direct Rendering Manager). Detta projekt anses vara en fortsättning på utvecklingen av Nouveau-drivrutinen för GPU:er med GSP-firmware.

Danilo Krummrich (Red Hat) förklarar:

Med Nova har vi möjlighet att avsevärt minska komplexiteten jämfört med Nouveau, av två huvudsakliga skäl. Först och främst är den historiska Nouveau-arkitekturen, speciellt kring nvif/nvkm, ganska komplicerad och oflexibel och kräver en större översyn för att lösa vissa problem. Därefter vill vi också passa på att bidra till Rusts insatser i kärnan och dra nytta av den ökade minnessäkerheten som erbjuds av programmeringsspråket Rust.

Dessutom nämns att med utvecklingen av Nova, Red Hat tänker passa på att bidra till Rusts insatser i kärnan, eftersom drivrutinskoden som sagt är skriven i Rust och använder flera lager för att utveckla videodrivrutiner på detta språk. Till exempel använder drivrutinen abstraktioner från Rust-Device-grenen för att skapa drivrutiner, komponenter från Rust-Pci-grenen för att arbeta med PCI-bussen och bindningar för DRM- och GEM-delsystemen från Rust-DRM-grenen.

Också nämnt är utvecklingen av drm-asahi Rust-drivrutinen för Apple M1- och M2-chip GPU:er. Användningen av Rust förväntas öka säkerheten och tillförlitligheten för drivrutinen genom att minska sannolikheten för fel när man arbetar med minne och tillåta kombinationen av arbete på videodrivrutinen med utvecklingen av vanliga komponenter i Rust.

Målet från Nova är så småningom bli en drivrutin med öppen källkod för NVIDIA Linux, riktad till Turing GPU:er och nyare modeller (särskilt i RTX 2000-serien) som stöder GSP. Denna nya kontroller utvecklas i Rust för att uppnå större lätthet och flexibilitet, vilket presenteras som ett lovande alternativ.

En av anledningarna för att skapa en ny styrenhet är att förenkla processen jämfört med Nouveau, tack vare användningen av drivrutiner som är färdiga att använda från GSP-firmware. Detta undviker onödig komplexitet i Nouveau-drivrutinskoden, som behöver stödja äldre NVIDIA GPU:er och introducerar problem som krascher i VMM/MMU-koden. Genom att utveckla Nova från grunden och enbart fokusera på GSP-baserade GPU:er hoppas man kunna undvika dessa problem och komplikationer.

Å andra sidan nämner Red Hat också några av de punkter den behöver ta itu med och säger att med valet av Rust är det första problemet att lösa bristen på C-bindande abstraktioner för end-to-end kärninfrastruktur:

"t.ex. enhets-/drivrutinsabstraktioner... vi behöver en användare för uppströmsabstraktionerna, men vi behöver också abstraktionerna för att skapa en drivrutin - vi vill utveckla Nova uppströms och börja med bara en stubb som bara använder ett fåtal abstraktioner Rost grunderna.

äntligen om du är det intresserad av att veta mer om det, du kan kontrollera detaljerna I följande länk, samt konsultera utvecklingen och konsultera källkoden för detta i ditt förråd.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.