L'implémentation Rust d'OpenCL pour Mesa prend en charge OpenCL 3.0

Une nouvelle implémentation OpenCL (rusticl), écrite en Rust et développée pour le projet Mesa, a passé avec succès la suite de tests de conformité Kronos (CTS), utilisée par le consortium Khronos pour évaluer la compatibilité avec la spécification OpenCL 3.0. Le projet est développé par Karol Herbst de Red Hat, impliqué dans le développement de Mesa, du pilote Nouveau et de la pile OpenCL open source. Il a contacté Khronos au sujet de la certification officielle de la prise en charge d'OpenCL 3.0 dans rusticl.

Les tests ont été réalisés sur un système équipé d'un GPU Intel de 12e génération (Alder Lake). Le projet a été réalisé avec le pilote Iris Mesa, mais il devrait également fonctionner avec d'autres pilotes Mesa utilisant la représentation intermédiaire non typée (IR) des shaders NIR. Une demande de fusion de Rusticl avec Mesa est actuellement à l'étude, et la décision d'intégrer du code Rust dans Mesa n'a pas encore été prise. En attendant l'intégration de Rusticl à la distribution principale de Mesa, une branche distincte peut être utilisée pour la compilation. Lors de la compilation, les paramètres de compilation suivants doivent être spécifiés : -Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true.

Rusticl est une alternative à Clover, l'interface OpenCL existante de Mesa, et est également développé à partir de l'interface Gallium de Mesa. Clover a été abandonné depuis longtemps, et Rusticl se positionne comme son futur remplaçant. Outre sa compatibilité avec OpenCL 3.0, Rusticl diffère de Clover par la prise en charge des extensions OpenCL pour le traitement d'images, mais pas encore du format FP16.

Rusticl utilise rust-bindgen pour générer des liaisons pour Mesa et OpenCL, permettant ainsi d'appeler des fonctions Rust depuis du code C et inversement. L'utilisation du langage Rust dans le projet Mesa est à l'étude depuis 2020. Parmi les avantages de la prise en charge de Rust figurent une sécurité et une qualité accrues des pilotes grâce à l'élimination des problèmes de mémoire courants, ainsi que la possibilité d'intégrer des développements tiers à Mesa, tels que Kazan (une implémentation Rust de Vulkan). Les inconvénients incluent une complexité accrue du système de compilation, une réticence à utiliser le système de packaging cargo, des exigences plus étendues en matière d'environnement de compilation et la nécessité d'inclure le compilateur Rust dans les dépendances de compilation requises pour la création de composants de bureau essentiels. Linux.

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