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.
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² Π΄Π»Ρ Mesa ΠΈ OpenCL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
Π²ΡΠ·ΡΠ²Π°ΡΡ Rust-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π² Rusticl Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ rust-bindgen. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Rust Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Mesa ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Ρ 2020 Π³ΠΎΠ΄Π°. ΠΠ· ΠΏΠ»ΡΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Rust ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π·Π° ΡΡΡΡ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΠΈΠΏΠΎΠ²ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Mesa ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Kazan (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Vulkan Π½Π° Rust). ΠΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ cargo, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΌΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Rust Π² ΡΠ±ΠΎΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° Π² Linux.
Source: opennet.ru
