Implementimi i ri OpenCL (rusticl), i shkruar në Rust, i zhvilluar për projektin Mesa, ka kaluar me sukses paketën e testimit CTS (Kronos Conformance Test Suite) të përdorur nga konsorciumi Khronos për të vlerësuar përputhshmërinë me specifikimet OpenCL 3.0. Projekti është duke u zhvilluar nga Karol Herbst nga Red Hat, i cili është i përfshirë në zhvillimin e Mesa, shoferit Nouveau dhe grupit të hapur OpenCL. Vihet re se Carol kontaktoi Khronos në lidhje me certifikimin zyrtar të mbështetjes OpenCL 3.0 në rusticl.
Testet u përfunduan në një sistem me një GPU Intel të gjeneratës së 12-të (Alder Lake). Puna u krye duke përdorur drejtuesin Mesa Iris, por projekti duhet të punojë edhe me drejtues të tjerë Mesa që përdorin paraqitjen e ndërmjetme pa tip (IR) të shaderëve NIR. Kërkesa për bashkimin e Rusticle me Mesa është ende në shqyrtim dhe nuk është marrë asnjë vendim nëse do të përfshihet kodi Rust në Mesa. Përpara se Rusticl të pranohet në përbërjen kryesore Mesa, mund të përdorni një degë të veçantë për ndërtimin, gjatë përpilimit të së cilës duhet të specifikoni parametrat e ndërtimit "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= e vërtetë”.
Rusticle vepron si një analog i Mesa's OpenCL Clover dhe është zhvilluar gjithashtu duke përdorur ndërfaqen Gallium të ofruar në Mesa. Aksioni i Tërfilit është braktisur për një kohë të gjatë dhe fshatari është pozicionuar si zëvendësimi i tij i ardhshëm. Përveç arritjes së përputhshmërisë me OpenCL 3.0, projekti Rusticle ndryshon nga Clover në mbështetjen e zgjerimeve OpenCL për përpunimin e imazhit, por nuk e mbështet ende formatin FP16.
Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.
Burimi: opennet.ru
