Представлений Tyr, Linux-драйвер для GPU ARM Mali, написаний на Rust

Деніел Алмейда (Daniel Almeida), який займається розвитком відеокодеків у компанії Collabora, опублікував у списку розсилки розробників Linux-ядра початкової реалізації драйвера Tyr для GPU ARM Mali, в яких застосовується технологія CSF (Сommand Stream Frontend), таких як Mali G310, G510 і G710. Код драйвера написаний мовою Rust та налічує трохи більше 600 рядків коду. Робота над драйвером Tyr ведеться спільно співробітниками компаній Collabora, Arm та Google.

Як каркас для створення нового драйвера використані компоненти абстрактного драйвера rust_platform_driver і драйвера Nova, що розвивається для GPU NVIDIA, написаного на Rust і частково доданого в ядро ​​6.15. Функціональність для взаємодії з GPU Mali портована з DRM-драйвера Panthor (Direct Rendering Manager), написаного мовою Сі. uAPI драйвера Tyr ідентичний uAPI драйвера Panthor, що дозволяє використовувати з ним існуючі компоненти простору користувача.

Технологія CSF, що застосовується починаючи з 10 покоління GPU Mali, примітна виносом на бік прошивки деяких функцій драйвера та задіянням нової моделі організації виконання робіт на GPU. У GPU з інтерфейсом CSF замість моделі на основі відправки ланцюжка робіт застосовується модель на основі потоку команд із плануванням черги потоку команд на стороні прошивки. Для роботи планувальника в GPU вбудований окремий мікроконтролер Cortex-M7, а виконання інструкцій CSF передбачено спеціальний блок виконання команд (Command Execution Unit).

Функціональність Tyr поки що відстає від драйвера Panthor, але розробники мають намір поступово скорочувати розрив до тих пір, поки не буде досягнутий паритет у можливостях драйверів. Відсутні функції вимагають інтеграції в ядро ​​додаткових абстракцій для створення драйверів на Rust, тому розвиток драйвера Tyr буде синхронізовано з додаванням в ядро ​​даних абстракцій. Наприклад, в ядрі поки що відсутні можливості для мапінг пам'яті в Rust-драйверах для GPU, що розвиваються в ще не прийнятому наборі патчів GPUVM.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster