Tyr, a Linux driver for ARM Mali GPUs, written in Rust, has been introduced.

Daniel Almeida, care se ocupă cu dezvoltarea codec-urilor video la Collabora, a publicat pe lista de discuții a dezvoltatorilor nucleului Linux o primă implementare a driverului Tyr pentru GPU ARM Mali, care utilizează tehnologia CSF (Command Stream Frontend), precum Mali G310, G510 și G710. Codul driverului este scris în Rust și conține puțin peste 600 de linii de cod. Lucrările la driverul Tyr se desfășoară în colaborare între angajații companiilor Collabora, Arm și Google.

Ca bază pentru crearea noului driver, au fost folosite componente ale driverului abstract rust_platform_driver și ale driverului Nova, dezvoltat pentru GPU NVIDIA, scris în Rust și parțial adăugat în nucleul 6.15. Funcționalitatea pentru interacțiunea cu GPU Mali a fost portată din driverul DRM existent Panthor (Direct Rendering Manager), scris în limbajul C. uAPI-ul driverului Tyr este identic cu uAPI-ul driverului Panthor, ceea ce permite utilizarea componentelor existente din spațiul utilizatorului.

Tehnologia CSF, utilizată începând cu generația 10 de GPU Mali, se remarcă prin externalizarea unor funcții ale driverului pe partea de firmware și prin utilizarea unui nou model de organizare a execuției pe GPU. În GPU-urile cu interfața CSF, în locul modelului bazat pe trimiterea unei serii de lucrări, se aplică un model bazat pe fluxul de comenzi cu planificarea cozii de flux de comenzi pe partea de firmware. Pentru organizarea muncii planificatorului, în GPU este integrat un microcontroler separat Cortex-M7, iar pentru executarea instrucțiunilor CSF este prevăzută o unitate specială de execuție a comenzii (Command Execution Unit).

Funcționalitatea Tyr este în prezent inferioară driverului Panthor, dar dezvoltatorii intenționează să reducă treptat diferența până când se va ajunge la paritatea în capacitățile driverelor. Funcțiile lipsă necesită integrarea de noi abstracții în nucleu pentru a crea drivere în Rust, astfel încât dezvoltarea driverului Tyr va fi sincronizată cu adăugarea acestor abstracții în nucleu. De exemplu, nucleul nu dispune înca de funcționalități pentru maparea memoriei în driverele Rust pentru GPU, dezvoltate într-un set de patch-uri GPUVM care nu a fost încă acceptat.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster