OpenCL ieviešana Rust for Mesa nodrošina atbalstu OpenCL 3.0

Jauna OpenCL implementācija (rusticl), kas rakstīta Rust valodā un tiek izstrādāta Mesa projektam, ir veiksmīgi izturējusi Kronos atbilstības testēšanas komplektu (CTS), ko Khronos konsorcijs izmanto, lai novērtētu saderību ar OpenCL 3.0 specifikāciju. Projektu izstrādā Karola Herbsta no Red Hat, kas ir iesaistīta Mesa, Nouveau draivera un atvērtā pirmkoda OpenCL steka izstrādē. Viņš ir sazinājies ar Khronos par oficiālu OpenCL 3.0 atbalsta sertifikāciju rusticl valodā.

Testi tika veikti sistēmā ar 12. paaudzes Intel GPU (Alder Lake). Darbs tika veikts, izmantojot Iris Mesa draiveri, taču projektam vajadzētu darboties arī ar citiem Mesa draiveriem, kas izmanto NIR ēnotāju netipizēto starpposma attēlojumu (IR). Pašlaik tiek izskatīts Rusticl apvienošanas pieprasījums ar Mesa, un lēmums par Rust koda iekļaušanu Mesa vēl nav pieņemts. Kamēr Rusticl netiks integrēts galvenajā Mesa izplatījumā, kompilēšanai var izmantot atsevišķu atzaru. Kompilējot, jānorāda šādi kompilācijas parametri: -Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true.

Rusticl ir alternatīva Mesa esošajai OpenCL saskarnei Clover, un tā arī ir izstrādāta, izmantojot Mesa Gallium saskarni. Clover jau sen ir atmests, un rusticl tiek pozicionēts kā tā nākotnes aizstājējs. Papildus OpenCL 3.0 saderības sasniegšanai Rusticl atšķiras no Clover ar to, ka tas atbalsta OpenCL paplašinājumus attēlu apstrādei, bet vēl neatbalsta FP16 formātu.

Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster