Predstavuje sa Tyr, Linux- ovládač pre grafickú kartu ARM Mali, napísaný v jazyku Rust

Daniel Almeida, ktorý pracuje na vývoji videokodekov v spoločnosti Collabora, uverejnil príspevok na mailing liste vývojárov. Linux- počiatočná implementácia ovládača Tyr pre grafické procesory ARM Mali, ktoré využívajú technológiu Command Stream Frontend (CSF), ako napríklad Mali G310, G510 a G710. Kód ovládača je napísaný v jazyku Rust a obsahuje niečo vyše 600 riadkov kódu. Na ovládači Tyr spoločne pracujú spoločnosti Collabora, Arm a Google.

Rámec na vytvorenie nového ovládača využíva komponenty abstraktného ovládača rust_platform_driver a ovládača Nova, vyvinutého pre grafické karty NVIDIA, napísaného v jazyku Rust a čiastočne pridaného do jadra 6.15. Funkcionalita pre interakciu s grafickou kartou Mali je portovaná z existujúceho ovládača Panthor (Direct Rendering Manager) DRM, napísaného v jazyku C. Rozhranie uAPI ovládača Tyr je identické s rozhraním uAPI ovládača Panthor, čo umožňuje používať s ním existujúce komponenty používateľského priestoru.

Technológia CSF, používaná od 10. generácie grafických procesorov Mali, sa vyznačuje presunutím niektorých funkcií ovládača na stranu firmvéru a použitím nového modelu organizácie vykonávania práce na grafickom procesore. V grafických procesoroch s rozhraním CSF sa namiesto modelu založeného na odosielaní reťazca prác používa model založený na toku príkazov s plánovaním frontu toku príkazov na strane firmvéru. Na organizáciu práce plánovača je v grafickom procesore zabudovaný samostatný mikrokontrolér Cortex-M7 a na vykonávanie inštrukcií CSF je k dispozícii špeciálna jednotka na vykonávanie príkazov (Command Execution Unit).

Funkčnosť Tyru stále zaostáva za ovládačom Panthor, ale vývojári majú v úmysle postupne zmenšovať rozdiel, až kým sa nedosiahne parita v možnostiach ovládačov. Chýbajúce funkcie vyžadujú integráciu ďalších abstrakcií do jadra na vytvorenie ovládačov v Ruste, takže vývoj ovládača Tyr bude synchronizovaný s pridaním týchto abstrakcií do jadra. Napríklad jadro zatiaľ nemá možnosti mapovania pamäte v ovládačoch Rust pre GPU, ktoré sa vyvíjajú v sade patchov GPUVM, ktorá ešte nebola prijatá.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster