Udviklingen ind i kernen er begyndt Linux Nova-drivere til NVIDIA GPU'er

Ingeniører fra Red Hat foreslog at blive inkluderet i kernen Linux Det første sæt programrettelser, der implementerer Nova-driveren. Denne driver er designet til brug med NVIDIA GPU'er udstyret med GSP-firmware, som har været brugt siden NVIDIA GeForce RTX 2000-serien baseret på Turing-mikroarkitekturen. I disse GPU'er er initialiserings- og kontroloperationer implementeret i firmwaren og udført af en separat GSP (GPU System Processor) mikrocontroller. Nova forventes at erstatte Nouveau-driveren til GPU'er med GSP-understøttelse på lang sigt.

Den nye driver er skrevet på Rust-sproget, og da infrastrukturen til udvikling af Rust-drivere stadig er under udvikling, er det meningen, at Nova-koden gradvist skal overføres til hovedkernen, efterhånden som de nødvendige bindinger til Rust-sproget vises. I det første trin foreslås "nova-core"-driveren, der består af 232 linjer kode, til inklusion i kernen. Nova-core implementerer et basisabstraktionslag over GSP-firmware-API'erne og giver en API uafhængig af firmwareversioner.

På næste trin planlægger kernen at inkludere nova-drm (Direct Rendering Manager) DRM-driveren til interaktion med GPU'en fra brugerpladsen, samt VFIO-driveren med vGPU-manageren, som tillader brugen af ​​NVIDIA virtuelle GPU'er i virtualiseringssystemer.

Hovedårsagen til at promovere den nye Nova-driver er evnen til at slippe af med de komplikationer, der er iboende i Nouveau-driveren, og opnå betydelig forenkling ved at bruge færdige handlere leveret af GSP-firmwaren og slippe byrden med at understøtte gamle GPU'er. Nova vil også behandle arkitektoniske problemer, der i Nouveau kræver betydelig kodebase-omarbejdelse, såsom låseproblemer i VMM/MMU-koden. Rust-sproget blev valgt for at reducere sandsynligheden for fejl, når man arbejder med hukommelse, og også som en mulighed for at kombinere arbejdet med en fungerende driver med skabelsen af ​​bindinger og abstraktioner til udvikling af drivere i Rust.

Afspil video

Angående fremskridtene med at tilføje til kernen Linux For at forbedre driverudviklingsmulighederne i Rust inkluderer 6.14-grenen Rust-bindinger til PCI, platforme, Open Firmware, tegnenheder og nogle I/O-funktioner. Greg Kroah-Hartman, der vedligeholder den stabile kernegren, Linuxbeskrev i en pull-anmodning, der opdaterede driverne til 6.14-kernen, den nuværende tilstand som "næsten klar til at skrive en rigtig driver i Rust".

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster