Az OpenCL for Mesa Rust implementációja támogatja az OpenCL 3.0-t

Az új, Rust nyelven írt OpenCL implementáció (rusticl), amelyet a Mesa projekthez fejlesztettek ki, sikeresen teljesítette a CTS (Kronos Conformance Test Suite) tesztcsomagot, amelyet a Khronos konzorcium használt az OpenCL 3.0 specifikációival való kompatibilitás felmérésére. A projektet a Red Hat munkatársa, Karol Herbst fejleszti, aki részt vesz a Mesa, a Nouveau meghajtó és az OpenCL nyílt verem fejlesztésében. Meg kell jegyezni, hogy Carol felvette a kapcsolatot a Khronosszal az OpenCL 3.0 rusticl támogatásának hivatalos tanúsítása ügyében.

A teszteket egy 12. generációs Intel GPU-val (Alder Lake) felszerelt rendszeren fejezték be. A munkát a Mesa Iris meghajtóval végezték el, de a projektnek más Mesa meghajtókkal is működnie kell, amelyek a NIR shaderek típus nélküli intermediate reprezentációját (IR) használják. A Rusticle és a Mesa egyesítésére vonatkozó kérés még mindig felülvizsgálat alatt áll, és nem született döntés arról, hogy a Rust kódot belefoglalják-e a Mesába. Mielőtt a Rusticl-t elfogadnák a fő Mesa összetételbe, használhat egy külön ágat az építéshez, amelynek összeállításánál meg kell adni a build paramétereket „-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= igaz".

A Rusticle a Mesa OpenCL Clover frontendjének analógjaként működik, és a Mesa által biztosított Gallium interfész segítségével is fejlesztették. A Clover karót már régóta elhagyták, és a rusztik a jövőbeni helyettesítője. Az OpenCL 3.0 kompatibilitás elérése mellett a Rusticle projekt abban különbözik a Clovertől, hogy támogatja az OpenCL kiterjesztéseket a képfeldolgozáshoz, de még nem támogatja az FP16 formátumot.

A Mesa és OpenCL kötések létrehozásához, lehetővé téve a Rust függvények C kódból történő meghívását, és fordítva, a Rusticle-ban a rust-bindgen használatos. 2020 óta tárgyalják a Rust nyelv alkalmazásának lehetőségét a Mesa projektben. A Rust támogatás előnyei között említik az illesztőprogramok megnövekedett biztonságát és minőségét a memóriával való munka során előforduló tipikus problémák megszabadulása, valamint a harmadik féltől származó fejlesztések, például a Kazan (a Vulkan megvalósítása) Mesa programba való beépítése miatt. Rozsdában). A hátrányok közé tartozik a felépítési rendszer megnövekedett összetettsége, a rakománycsomag-rendszerhez való kötődéstől való vonakodás, a kibővített összeállítási környezet követelményei, valamint annak szükségessége, hogy a Rust fordítót bele kell foglalni a kulcsfontosságú asztali komponensek Linuxon való összeállításához szükséges összeállítási függőségekbe.

Forrás: opennet.ru

Hozzászólás