Rusticle اوپن سورس ڊرائيور تصديق ٿيل آهي 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 и также разработан с использованием предоставляемого в Mesa интерфейса Gallium. 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

تبصرو شامل ڪريو