Implementácia Rust OpenCL for Mesa poskytuje podporu pre OpenCL 3.0

Nová implementácia OpenCL (rusticl), napísaná v jazyku Rust, vyvíjaná pre projekt Mesa, úspešne prešla testovacím balíkom CTS (Kronos Conformance Test Suite), ktorý používa konzorcium Khronos na posúdenie kompatibility so špecifikáciami OpenCL 3.0. Projekt vyvíja Karol Herbst z Red Hatu, ktorý sa podieľa na vývoji Mesa, ovládača Nouveau a OpenCL open stacku. Je potrebné poznamenať, že Carol kontaktovala spoločnosť Khronos ohľadom oficiálnej certifikácie podpory OpenCL 3.0 v rustikálnom jazyku.

Testy boli ukončené na systéme s 12. generáciou Intel GPU (Alder Lake). Práca bola vykonaná pomocou ovládača Mesa Iris, ale projekt by mal fungovať aj s inými ovládačmi Mesa, ktoré používajú beztypovú medzistupňovú reprezentáciu (IR) NIR shaderov. Žiadosť o zlúčenie Rusticle s Mesa je stále v štádiu posudzovania a nebolo prijaté žiadne rozhodnutie o tom, či zahrnúť Rust kód do Mesa. Pred prijatím Rusticl do hlavnej kompozície Mesa môžete použiť samostatnú vetvu na zostavovanie, pri ktorej kompilácii by ste mali zadať parametre zostavy “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= pravda“.

Rusticle funguje ako analóg Mesa's OpenCL frontend Clover a je tiež vyvinutý pomocou rozhrania Gallium poskytovaného v Mesa. Kôl Clover je už dlho opustený a jeho budúcou náhradou je rustikálny. Okrem dosiahnutia kompatibility s OpenCL 3.0 sa projekt Rusticle od Clover líši podporou rozšírení OpenCL pre spracovanie obrazu, zatiaľ však nepodporuje formát FP16.

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

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster