Mesina Rust implementacija OpenCL-a sada podržava OpenCL 3.0

Nova implementacija OpenCL-a (rusticl), napisana u Rustu, koja se razvija za projekt Mesa, uspješno je prošla CTS (Kronos Conformance Test Suite) paket testova koji koristi konzorcij Khronos za procjenu kompatibilnosti sa specifikacijama OpenCL 3.0. Projekt razvija Karol Herbst iz Red Hata, koji je uključen u razvoj Mesa, Nouveau drivera i OpenCL open stacka. Primijećeno je da je Carol kontaktirala Khronos u vezi sa službenom certifikacijom podrške za OpenCL 3.0 u rusticl-u.

Testovi su dovršeni na sustavu s Intel GPU-om 12. generacije (Alder Lake). Rad je obavljen pomoću upravljačkog programa Mesa Iris, ali bi projekt također trebao raditi s drugim upravljačkim programima Mesa koji koriste međureprezentaciju bez tipa (IR) NIR shadera. Zahtjev za spajanje Rusticlea s Mesa-om još uvijek je u fazi pregleda i nije donesena odluka hoće li se Rust kod uključiti u Mesa-u. Prije nego se Rusticl prihvati u glavni sastav Mesa-e, možete koristiti zasebnu granu za izgradnju, pri čijem sastavljanju trebate navesti parametre izgradnje “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= pravi".

Rusticle djeluje kao analog Mesa OpenCL sučelja Clover i također je razvijen korištenjem Gallium sučelja koje nudi Mesa. Ulog Clover je već dugo napušten i rusticl je pozicioniran kao njegova buduća zamjena. Osim postizanja kompatibilnosti s OpenCL 3.0, projekt Rusticle razlikuje se od Clover-a po tome što podržava OpenCL ekstenzije za obradu slika, ali još ne podržava format FP16.

Za generiranje vezanja za Mesa i OpenCL, što vam omogućuje pozivanje Rust funkcija iz C koda i obrnuto, u Rusticleu se koristi rust-bindgen. O mogućnosti korištenja jezika Rust u projektu Mesa raspravlja se od 2020. godine. Među prednostima podrške za Rust spominje se povećana sigurnost i kvaliteta upravljačkih programa zbog uklanjanja tipičnih problema pri radu s memorijom, kao i mogućnost uključivanja razvoja trećih strana u Mesu, kao što je Kazan (implementacija Vulkana u Rustu). Nedostaci uključuju povećanu složenost sustava izgradnje, nevoljkost vezivanja za sustav paketa tereta, proširene zahtjeve za okruženje izgradnje i potrebu za uključivanjem Rust kompajlera u ovisnosti izgradnje potrebne za izgradnju ključnih komponenti radne površine na Linuxu.

Izvor: opennet.ru

Dodajte komentar