Le pilote ouvert de Rusticl est certifié conforme à OpenCL 3.0

Les développeurs du projet Mesa ont annoncé la certification par l'organisation Khronos du pilote rusticl, qui a passé avec succès tous les tests de l'ensemble CTS (Kronos Conformance Test Suite) et est reconnu comme entièrement compatible avec la spécification OpenCL 3.0, qui définit les API et extensions du langage C pour organiser le calcul parallèle multiplateforme. L'obtention d'un certificat permet de déclarer officiellement le respect des normes et d'utiliser les marques Khronos associées. Le test a été effectué sur un système doté de GPU Intel intégrés de 12 générations à l'aide du pilote Gallium3D Iris.

Le pilote est écrit en Rust et développé par Karol Herbst de Red Hat, qui participe au développement de Mesa, du pilote Nouveau et de la pile ouverte OpenCL. Rusticle agit comme un analogue de l'interface OpenCL de Mesa Clover et est également développé à l'aide de l'interface Gallium fournie dans Mesa. Clover est abandonné depuis longtemps et rusticl se positionne comme son futur remplaçant. En plus d'atteindre la compatibilité OpenCL 3.0, le projet Rusticle diffère de Clover dans la prise en charge des extensions OpenCL pour le traitement d'images, mais ne prend pas encore en charge le format FP16. Pour générer des liaisons pour Mesa et OpenCL, vous permettant d'appeler des fonctions Rust à partir du code C et vice versa, rust-bindgen est utilisé dans Rusticle.

Le code de support du langage Rust et le pilote rusticl ont été acceptés dans le courant dominant de Mesa et seront proposés dans la version Mesa 22.3, attendue fin novembre. La prise en charge de Rust et rusticl sera désactivée par défaut et nécessitera une construction avec les options "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" explicitement spécifiées. Lors de la construction, vous aurez besoin du compilateur rustc, du générateur de liaison bindgen, de LLVM, de SPIRV-Tools et de SPIRV-LLVM-Translator comme dépendances supplémentaires.

La possibilité d'utiliser le langage Rust dans le projet Mesa est discutée depuis 2020. Parmi les avantages de la prise en charge de Rust, on mentionne la sécurité et la qualité accrues des pilotes en raison de l'élimination des problèmes typiques lors du travail avec la mémoire, ainsi que la possibilité d'inclure des développements tiers dans Mesa, tels que Kazan (une implémentation de Vulkan dans Rouille). Les inconvénients incluent une complexité accrue du système de construction, la réticence à être liée au système de package cargo, des exigences étendues pour l'environnement de construction et la nécessité d'inclure le compilateur Rust dans les dépendances de construction requises pour créer des composants de bureau clés sous Linux.

Par ailleurs, on peut noter le travail sur le développement du driver Nouveau, également réalisé par Carol Herbst. Le pilote Nouveau a ajouté la prise en charge de base d'OpenGL pour GNU NVIDIA GeForce RTX 30xx basée sur la microarchitecture Ampere, publiée depuis mai 2020. Les modifications liées à la prise en charge des nouvelles puces seront incluses dans le noyau Linux 6.2 et Mesa 22.3.

Source: opennet.ru

Ajouter un commentaire