Отвореният драйвер Rusticl е сертифициран за съвместимост с OpenCL 3.0

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

Драйверът е написан на езика Rust и се развива от Карол Хербст (Karol Herbst) от компанията Red Hat, участваща в разработката на Mesa, драйвера Nouveau и открития стек OpenCL. Rusticl играе ролята на аналог на съществуващия в Mesa OpenCL фронтенд Clover и е разработен също с използването на предоставения от Mesa интерфейс Gallium. Clover отдавна е в забвение и rusticl е позициониран като негово бъдещо заменяне. Освен че постига съвместимост с OpenCL 3.0, проектът Rusticl се отличава от Clover с поддръжка на OpenCL разширения за обработка на изображения, но все още не поддържа формат FP16. За генериране на биндинги за Mesa и OpenCL, позволяващи извикването на Rust функции от код на C и обратно, в 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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster