Tyr, un driver Linux per e GPU ARM Mali scrittu in Rust, hè statu liberatu

Daniel Almeida, un sviluppatore di codec video in Collabora, hà publicatu una implementazione iniziale di u driver Tyr per e GPU ARM Mali chì utilizanu a tecnulugia Command Stream Frontend (CSF), cum'è Mali G310, G510 è G710, nantu à a lista di mailing di i sviluppatori di u kernel Linux. U codice di u driver hè scrittu in Rust è hà pocu più di 600 linee di codice. U driver Tyr hè sviluppatu in cumunu da Collabora, Arm è Google.

U framework per a creazione di u novu driver usa cumpunenti di u driver astrattu rust_platform_driver è di u driver Nova, sviluppatu per e GPU NVIDIA, scrittu in Rust è parzialmente aghjuntu à u kernel 6.15. A funzionalità per l'interazione cù a GPU Mali hè purtata da u driver DRM Panthor (Direct Rendering Manager) esistente, scrittu in C. L'uAPI di u driver Tyr hè identica à l'uAPI di u driver Panthor, chì permette di utilizà cumpunenti di u spaziu utilizatore esistenti cun ella.

A tecnulugia CSF, aduprata dapoi a 10a generazione di GPU Mali, hè nutata per avè spustatu alcune funzioni di driver à u latu di u firmware è aduprà un novu mudellu per urganizà l'esecuzione di u travagliu nantu à a GPU. In e GPU cù una interfaccia CSF, invece di un mudellu basatu nantu à l'inviu di una catena di travagli, si usa un mudellu basatu nantu à un flussu di cumandamenti cù a pianificazione di a coda di flussu di cumandamenti da u latu di u firmware. Per urganizà u travagliu di u pianificatore, un microcontrollore Cortex-M7 separatu hè integratu in a GPU, è una unità speciale di esecuzione di cumandamenti (Command Execution Unit) hè furnita per eseguisce l'istruzzioni CSF.

A funziunalità di Tyr hè sempre in ritardu cù u driver Panthor, ma i sviluppatori anu l'intenzione di riduce gradualmente u gap finu à ottene a parità in e capacità di u driver. E funzionalità mancanti richiedenu l'integrazione di astrazioni supplementari in u kernel per creà driver in Rust, dunque u sviluppu di u driver Tyr serà sincronizatu cù l'aghjunta di queste astrazioni à u kernel. Per esempiu, u kernel ùn hà ancu e capacità per a mappatura di memoria in i driver Rust per e GPU, chì sò in sviluppu in u set di patch GPUVM, chì ùn hè ancu statu aduttatu.

Source: opennet.ru

Add a comment