Tyr is gepresenteerd, een Linux-driver voor ARM Mali GPU's, geschreven in Rust.

Daniel Almeida, die verantwoordelijk is voor de ontwikkeling van videocodecs bij Collabora, heeft een eerste implementatie van de Tyr-driver voor GPU ARM Mali gepubliceerd op de Linux-kernel ontwikkelaars mailinglijst. Deze drivers maken gebruik van de CSF-technologie (Command Stream Frontend), zoals de Mali G310, G510 en G710. De driver code is geschreven in Rust en omvat iets meer dan 600 regels code. Het werk aan de Tyr-driver wordt gezamenlijk uitgevoerd door medewerkers van Collabora, Arm en Google.

Voor de opbouw van de nieuwe driver zijn componenten van de abstracte driver rust_platform_driver en de Nova-driver, ontwikkeld voor NVIDIA GPU's, gebruikt. Deze zijn geschreven in Rust en gedeeltelijk toegevoegd aan kernel 6.15. De functionaliteit voor interactie met de Mali GPU is overgezet van de bestaande DRM-driver Panthor (Direct Rendering Manager), die in C is geschreven. De uAPI van de Tyr-driver is identiek aan de uAPI van de Panthor-driver, zodat bestaande gebruikersruimtecomponenten ermee kunnen worden gebruikt.

De CSF-technologie, die wordt toegepast vanaf de 10e generatie GPU Mali, is opmerkelijk omdat het enkele functies van de driver naar de firmware verplaatst en een nieuw model voor werkverdeling op de GPU introduceert. In GPU's met een CSF-interface wordt in plaats van een model op basis van takenketens een model op basis van een commandostream gebruikt, waarbij de planning van de commandostream in de firmware gebeurt. Voor de werking van de scheduler is er een aparte Cortex-M7-microcontroller ingebouwd in de GPU, en er is een speciale uitvoeringsunit (Command Execution Unit) voor de uitvoering van CSF-instructies.

De functionaliteit van Tyr loopt momenteel achter op die van de Panthor-driver, maar de ontwikkelaars zijn van plan om geleidelijk de kloof te dichten totdat er pariteit in mogelijkheden tussen de drivers is bereikt. Ontbrekende functies vereisen integratie van extra abstracties in de kernel voor het maken van drivers in Rust, daarom zal de ontwikkeling van de Tyr-driver gesynchroniseerd worden met het toevoegen van deze abstracties aan de kernel. Bijvoorbeeld, de mogelijkheden voor geheugenmapping in Rust-drivers voor GPU's zijn momenteel nog niet beschikbaar in de kernel, en worden ontwikkeld in een nog niet aangenomen patchset GPUVM.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster