Nová implementace OpenCL (rusticl), napsaná v Rustu, vyvíjená pro projekt Mesa, úspěšně prošla testovací sadou CTS (Kronos Conformance Test Suite), kterou používá konsorcium Khronos k posouzení kompatibility se specifikacemi OpenCL 3.0. Projekt vyvíjí Karol Herbst z Red Hatu, který se podílí na vývoji Mesa, ovladače Nouveau a OpenCL open stacku. Je třeba poznamenat, že Carol kontaktovala Khronos ohledně oficiální certifikace podpory OpenCL 3.0 v rustikálním jazyce.
Testy byly dokončeny na systému s 12. generací Intel GPU (Alder Lake). Práce byla provedena pomocí ovladače Mesa Iris, ale projekt by měl fungovat i s dalšími ovladači Mesa, které používají beztypovou střední reprezentaci (IR) NIR shaderů. Žádost o sloučení Rusticle s Mesa je stále předmětem přezkumu a nebylo učiněno žádné rozhodnutí o tom, zda zahrnout Rust kód do Mesa. Než bude Rusticl přijat do hlavní kompozice Mesa, můžete použít samostatnou větev pro sestavení, při kompilaci byste měli zadat parametry sestavení “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= skutečný".
Rusticle funguje jako analog Mesa's OpenCL frontend Clover a je také vyvinut pomocí rozhraní Gallium poskytovaného v Mesa. Kůl Clover byl dlouhou dobu opuštěn a jako jeho budoucí náhrada je umístěn rustikální. Kromě dosažení kompatibility s OpenCL 3.0 se projekt Rusticle od Clover liší podporou rozšíření OpenCL pro zpracování obrazu, ale zatím nepodporuje formát FP16.
Rusticl používá rust-bindgen ke generování vazeb pro Mesa a OpenCL, což umožňuje volání funkcí Rustu z kódu C a naopak. Možnost použití jazyka Rust v projektu Mesa se diskutuje od roku 2020. Mezi výhody podpory Rustu patří zvýšené zabezpečení a kvalita ovladačů díky eliminaci běžných problémů s pamětí a také možnost začlenit do Mesy vývoj třetích stran, jako je Kazan (implementace Vulkanu v Rustu). Mezi nevýhody patří zvýšená složitost systému sestavení, neochota spoléhat se na systém balení cargo, rozšířené požadavky na prostředí sestavení a nutnost zahrnout kompilátor Rust do závislostí sestavení potřebných pro sestavení klíčových komponent desktopu. Linux.
Zdroj: opennet.ru
