Presentato Tyr, il driver Linux per GPU ARM Mali, scritto in Rust.

Daniel Almeida, che si occupa dello sviluppo di codec video presso Collabora, ha pubblicato sulla mailing list degli sviluppatori del kernel Linux una versione iniziale del driver Tyr per GPU ARM Mali, che utilizza la tecnologia CSF (Command Stream Frontend), come le Mali G310, G510 e G710. Il codice del driver è scritto in Rust e conta poco più di 600 righe di codice. Lo sviluppo del driver Tyr è condotto in collaborazione tra i dipendenti di Collabora, Arm e Google.

Come base per la creazione del nuovo driver sono stati utilizzati componenti del driver astratto rust_platform_driver e del driver Nova, sviluppato per GPU NVIDIA, scritto in Rust e parzialmente integrato nel kernel 6.15. La funzionalità per l'interazione con le GPU Mali è stata portata dal driver DRM esistente Panthor (Direct Rendering Manager), scritto in C. L'uAPI del driver Tyr è identico a quello del driver Panthor, permettendo di utilizzare già esistenti componenti nello spazio utente.

La tecnologia CSF, impiegata a partire dalla 10a generazione delle GPU Mali, è notevole per la delega a firmware di alcune funzioni del driver e per l'adozione di un nuovo modello di organizzazione del lavoro sulle GPU. Nelle GPU con interfaccia CSF, invece del modello basato sull'invio di una catena di lavori, si utilizza un modello basato su flussi di comandi, con pianificazione della coda del flusso di comandi lato firmware. Per organizzare il lavoro del pianificatore, è integrato nel GPU un microcontrollore Cortex-M7, mentre per l'esecuzione delle istruzioni CSF è previsto un'unità speciale di esecuzione comandi (Command Execution Unit).

La funzionalità di Tyr è ancora indietro rispetto al driver Panthor, ma gli sviluppatori intendono ridurre gradualmente il divario fino a raggiungere la parità nelle capacità dei driver. Le funzionalità mancanti richiedono l'integrazione nel kernel di ulteriori astrazioni per la creazione di driver in Rust, pertanto lo sviluppo del driver Tyr sarà sincronizzato con l'aggiunta di tali astrazioni nel kernel. Ad esempio, nel kernel attualmente mancano le possibilità di mapping della memoria nei driver Rust per GPU, sviluppate in un insieme di patch GPUVM ancora non approvato.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster