Відкритий драйвер Rusticl сертифікований на сумісність із OpenCL 3.0

Розробники проекту Mesa оголосили про сертифікацію організацією Khronos драйвера rusticl, який успішно пройшов усі тести з набору CTS (Kronos Conformance Test Suite) та визнаний повністю сумісним зі специфікацією OpenCL 3.0, що визначає API та розширення мови С для організації крос-платформних паралельних обчислень. Отримання сертифіката дає можливість офіційно заявляти про сумісність зі стандартами та використовувати пов'язані з ними торгові марки Khronos. Перевірка була виконана на системі з 12 поколінням інтегрованих GPU Intel, на якій використовувався Gallium3D-драйвер Iris.

Драйвер написаний мовою Rust та розвивається Керолом Хербстом (Karol Herbst) з компанії Red Hat, який бере участь у розробці Mesa, драйвера Nouveau та відкритого стека OpenCL. Rusticl виступає в ролі аналога присутнього в Mesa OpenCL-фронтенду Clover і також розроблений з використанням інтерфейсу Gallium, що надається в Mesa. Clover вже давно перебуває у занедбаному стані та rusticl позиціонується як його майбутня заміна. Крім досягнення сумісності з OpenCL 3.0, проект Rusticl відрізняється від Clover підтримкою розширень OpenCL для обробки зображень, але поки не підтримує формат FP16. Для генерації біндингу для Mesa і OpenCL, що дозволяють викликати Rust-функції з коду на Сі і навпаки, Rusticl задіяний rust-bindgen.

Код для підтримки мови Rust та драйвер rusticl прийняті до основного складу Mesa та будуть запропоновані у випуску Mesa 22.3, який очікується наприкінці листопада. Підтримка Rust і rusticl буде відключена за замовчуванням і вимагатиме складання з явною вказівкою опцій "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". При складанні як додаткових залежностей знадобляться компілятор rustc, генератор прив'язок bindgen, LLVM, інструментарій SPIRV-Tools і транслятор SPIRV-LLVM-Translator.

Можливість використання мови Rust у проекті Mesa обговорюється з 2020 року. З плюсів підтримки Rust згадується підвищення безпеки та якості драйверів за рахунок порятунку від типових проблем при роботі з пам'яттю, а також можливість включення до складу Mesa сторонніх напрацювань, таких як Kazan (реалізація Vulkan на Rust). З недоліків відзначається ускладнення системи збирання, небажання прив'язуватися до пакетної системи cargo, розширення вимог до складального оточення і необхідність включення компілятора Rust у складальні залежності, обов'язкові для побудови ключових компонентів робочого столу в Linux.

Додатково можна відзначити роботу з розвитку драйвера Nouveau, також проведену Керолом Хербст. У драйвер Nouveau додано базову підтримку OpenGL для GNU NVIDIA GeForce RTX 30xx на базі мікроархітектури Ampere, що випускаються з травня 2020 року. Пов'язані з підтримкою нових чіпів зміни увійдуть до складу ядра Linux 6.2 та Mesa 22.3.

Джерело: opennet.ru

Додати коментар або відгук