Tyr est représenté, Linux- Un pilote pour le GPU ARM Mali, écrit en Rust

Daniel Almeida, qui travaille au développement de codecs vidéo chez Collabora, a publié un message sur la liste de diffusion des développeurs. Linux-ядра начальную реализацию драйвера Tyr для GPU ARM Mali, в которых применяется технология CSF (Сommand Stream Frontend), таких как Mali G310, G510 и G710. Код драйвера написан на языке Rust и насчитывает чуть больше 600 строк кода. Работа над драйвером Tyr ведётся совместно сотрудниками компаний Collabora, Arm и Google.

Le framework de création du nouveau pilote utilise des composants du pilote abstrait rust_platform_driver et du pilote Nova, développés pour les GPU NVIDIA, écrits en Rust et partiellement ajoutés au noyau 6.15. Les fonctionnalités d'interaction avec le GPU Mali sont issues du pilote DRM Panthor (Direct Rendering Manager) existant, écrit en C. L'uAPI du pilote Tyr est identique à celle du pilote Panthor, ce qui permet d'utiliser les composants de l'espace utilisateur existants.

La technologie CSF, utilisée depuis la 10e génération de GPU Mali, se distingue par le déplacement de certaines fonctions du pilote vers le micrologiciel et l'utilisation d'un nouveau modèle d'organisation de l'exécution des tâches sur le GPU. Sur les GPU dotés d'une interface CSF, au lieu d'un modèle basé sur l'envoi d'une chaîne de tâches, un modèle basé sur un flux de commandes est utilisé, avec ordonnancement de la file d'attente du flux de commandes côté micrologiciel. Pour organiser le travail de l'ordonnanceur, un microcontrôleur Cortex-M7 distinct est intégré au GPU et une unité d'exécution de commandes dédiée (Command Execution Unit) est fournie pour exécuter les instructions CSF.

Les fonctionnalités de Tyr sont encore inférieures à celles du pilote Panthor, mais les développeurs prévoient de réduire progressivement cet écart jusqu'à atteindre la parité des capacités du pilote. Les fonctionnalités manquantes nécessitent l'intégration d'abstractions supplémentaires au noyau pour créer des pilotes en Rust. Le développement du pilote Tyr sera donc synchronisé avec l'ajout de ces abstractions au noyau. Par exemple, le noyau ne dispose pas encore des fonctionnalités de mappage mémoire dans les pilotes Rust pour GPU, qui sont en cours de développement dans le jeu de correctifs GPUVM, lequel n'a pas encore été adopté.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster