L'implémentation OpenCL de Mesa écrite en rouille a déjà passé les tests CTS

La nouvelle implémentation d'OpenCL (rustique) développé pour le projet Mesa, écrit en Rust, a passé avec succès les tests CTS (Kronos Conformance Test Suite) utilisé par le consortium Khronos pour tester la compatibilité avec les spécifications OpenCL 3.0.

Pour ceux qui ne connaissent pas « Rusticl », ils doivent savoir qu'il a été publié en tant que une nouvelle implémentation de Mesa OpenCL écrite en langage de programmation Rouiller.

rustique a été lancé par le collaborateur bien connu de Mesa, Karol Herbst de Red Hat qui a commencé comme ingénieur sur le pilote open source "Nouveau" de NVIDIA alors qu'il était chez Red Hat, et a travaillé sur le support informatique Clover de Mesa et d'autres projets. Rusticl est une tentative de Herbst d'apprendre le langage de programmation Rust et également de fournir une nouvelle implémentation (et, espérons-le, supérieure) d'OpenCL.

Rusticl est beaucoup plus moderne axé sur OpenCL par rapport à l'ancien code Clover et cela se remarque cependant, c'est que Rusticl à ce stade n'a toujours pas de support d'image OpenCL, ce qui a été un autre problème avec Clover.

rustique s'appuie sur clc pour compiler le code source OpenCL dans SPIR-V. Rusticl dépend également des pilotes Mesa Gallium3D compatibles NIR, mais tous les principaux pilotes le font déjà. A noter que Carol a contacté Khronos pour obtenir la certification officielle de compatibilité OpenCL 3.0 en rusticl.

Et maintenant, rusticl a passé avec succès la suite de tests de conformité Kronos pour évaluer la compatibilité avec les spécifications OpenCL 3.0, comme neil trevett l'a annoncé sur Twitter :

Khronos est fier d'avoir renoncé à tous les frais d'adoption MESA au fil des ans, et de nombreuses implémentations MESA sont officiellement conformes. Génial que OpenCL 3.0 de MESA passe le CTS ! Faites-nous savoir quand MESA sera prêt à exécuter l'accord d'adoption OCL 3.0 et nous pourrons commencer le processus…

Les tests ont été effectués sur un système avec un GPU Intel de 12e génération build (Alder Lake), avec lequel le travail a été fait avec le pilote Iris Mesa, mais il est mentionné que le projet devrait fonctionner avec d'autres pilotes Mesa qui utilisent la représentation intermédiaire non typée (IR) des shaders NIR.

Rusticl agit comme un homologue de l'interface OpenCL Clover de Mesa et est également développé à l'aide de l'interface Gallium de Mesa. Clover a longtemps été à l'abandon et rusticl se positionne comme son futur remplaçant. En plus d'atteindre la compatibilité OpenCL 3.0, le projet Rusticl diffère de Clover en ce qu'il prend en charge les extensions OpenCL pour le traitement d'image, mais ne prend pas encore en charge le format FP16.

Rusticl utilise rust-bindgen pour générer des liaisons pour Mesa et OpenCL qui permettent d'appeler les fonctions Rust à partir du code C et vice versa.

La possibilité d'utiliser le langage Rust dans le projet Mesa est discutée depuis 2020. Parmi les avantages du support Rust, ils mentionnent l'amélioration de la sécurité et de la qualité des pilotes en éliminant les problèmes typiques lors de l'utilisation de la mémoire, ainsi que la possibilité d'inclure des développements de tiers sur Mesa, comme Kazan (une implémentation de Vulkan sur Rust).

Parmi les lacunes, il y a une complication du système de construction, une réticence à se lier au système de package de charge utile, une augmentation des exigences pour l'environnement de construction et la nécessité d'inclure le compilateur Rust dans les dépendances de construction fournies. pour créer des composants de bureau clés sur Linux.

Enfin, il est mentionné que la demande de fusion de Rusticl avec Mesa est toujours en attente et aucune décision n'a encore été prise sur l'inclusion du code de langage Rust dans Mesa, mais il devrait arriver dans la version Mesa 22.2

C'est pourquoi avant que Rusticl ne soit accepté dans la composition principale de Mesa, une branche séparée peut être utilisée pour construire, lors de la compilation, vous devez spécifier les paramètres de construction "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader -cache=true -Dllvm = vrai».

Si vous intéressé à en savoir plus sur cette nouvelle spécification, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.