Implementasi Rust saka OpenCL kanggo Mesa nyedhiyakake dhukungan kanggo OpenCL 3.0

Implementasi OpenCL anyar (rusticl), sing ditulis ing Rust, dikembangake kanggo proyek Mesa, wis kasil ngliwati suite uji CTS (Kronos Conformance Test Suite) sing digunakake dening konsorsium Khronos kanggo netepake kompatibilitas karo spesifikasi OpenCL 3.0. Proyek iki dikembangake dening Karol Herbst saka Red Hat, sing melu pangembangan Mesa, pembalap Nouveau lan tumpukan mbukak OpenCL. Kacathet yen Carol ngubungi Khronos babagan sertifikasi resmi dhukungan OpenCL 3.0 ing rusticl.

Tes rampung ing sistem kanthi Intel GPU generasi kaping 12 (Alder Lake). Karya kasebut ditindakake kanthi nggunakake driver Mesa Iris, nanging proyek kasebut uga kudu digarap karo driver Mesa liyane sing nggunakake representasi perantara tanpa tipe (IR) saka shader NIR. Panyuwunan kanggo nggabungake Rusticle karo Mesa isih ditinjau lan durung ana keputusan apa arep nyakup kode Rust ing Mesa. Sadurunge Rusticl ditampa ing komposisi Mesa utama, sampeyan bisa nggunakake cabang kapisah kanggo bangunan, nalika kompilasi sampeyan kudu nemtokake parameter mbangun "-Dgallium-rusticl = bener -Dopencl-spirv = bener -Dshader-cache = bener -Dllvm = bener”.

Rusticle tumindak minangka analog saka OpenCL frontend Clover Mesa lan uga dikembangake nggunakake antarmuka Gallium sing kasedhiya ing Mesa. The Clover stake wis nilar kanggo dangu lan rusticl dipanggonke minangka panggantos sawijining mangsa. Saliyane entuk kompatibilitas OpenCL 3.0, proyek Rusticle beda karo Clover ing ndhukung ekstensi OpenCL kanggo pangolahan gambar, nanging durung ndhukung format FP16.

Kanggo generate bindings kanggo Mesa lan OpenCL, ngijini sampeyan kanggo nelpon fungsi Rust saka kode C lan kosok balene, teyeng-bindgen digunakake ing Rusticle. Kemungkinan nggunakake basa Rust ing proyek Mesa wis dibahas wiwit taun 2020. Antarane kaluwihan saka dhukungan Rust, tambah keamanan lan kualitas driver kasebut amarga nyingkirake masalah khas nalika nggarap memori, uga kemampuan kanggo nyakup pangembangan pihak katelu ing Mesa, kayata Kazan (implementasine Vulkan). ing Rust). Cacat kalebu tambah kerumitan sistem mbangun, wegah kanggo disambungake menyang sistem paket kargo, syarat ditambahi kanggo mbangun lingkungan, lan perlu kanggo kalebu Rust compiler ing dependensi mbangun dibutuhake kanggo mbangun komponen desktop tombol ing Linux.

Source: opennet.ru

Add a comment