Ang bagong pagpapatupad ng OpenCL (rusticl), na nakasulat sa Rust, na binuo para sa proyekto ng Mesa, ay matagumpay na nakapasa sa CTS (Kronos Conformance Test Suite) test suite na ginamit ng Khronos consortium upang masuri ang pagiging tugma sa mga detalye ng OpenCL 3.0. Ang proyekto ay binuo ni Karol Herbst mula sa Red Hat, na kasangkot sa pagbuo ng Mesa, ang Nouveau driver at ang OpenCL open stack. Napansin na nakipag-ugnayan si Carol kay Khronos tungkol sa opisyal na sertipikasyon ng suporta ng OpenCL 3.0 sa rusticl.
Nakumpleto ang mga pagsubok sa isang system na may ika-12 henerasyong Intel GPU (Alder Lake). Isinagawa ang gawain gamit ang driver ng Mesa Iris, ngunit dapat ding gumana ang proyekto sa iba pang mga driver ng Mesa na gumagamit ng typeless intermediate representation (IR) ng mga NIR shader. Ang kahilingan na pagsamahin ang Rusticle sa Mesa ay nasa ilalim pa rin ng pagsusuri at walang desisyon na ginawa kung isasama ang Rust code sa Mesa. Bago tanggapin ang Rusticl sa pangunahing komposisyon ng Mesa, maaari kang gumamit ng isang hiwalay na sangay para sa pagbuo, kapag kino-compile kung saan dapat mong tukuyin ang mga parameter ng build "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= totooβ.
Ang Rusticle ay gumaganap bilang isang analogue ng OpenCL frontend Clover ng Mesa at binuo din gamit ang interface ng Gallium na ibinigay sa Mesa. Ang Clover stake ay matagal nang inabandona at ang rusticl ay nakaposisyon bilang kapalit nito sa hinaharap. Bilang karagdagan sa pagkamit ng OpenCL 3.0 compatibility, ang proyekto ng Rusticle ay naiiba sa Clover sa pagsuporta sa mga extension ng OpenCL para sa pagpoproseso ng imahe, ngunit hindi pa sinusuportahan ang FP16 na format.
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² Π΄Π»Ρ Mesa ΠΈ OpenCL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
Π²ΡΠ·ΡΠ²Π°ΡΡ Rust-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π² Rusticl Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ rust-bindgen. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Rust Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Mesa ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Ρ 2020 Π³ΠΎΠ΄Π°. ΠΠ· ΠΏΠ»ΡΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Rust ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π·Π° ΡΡΡΡ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΠΈΠΏΠΎΠ²ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Mesa ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Kazan (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Vulkan Π½Π° Rust). ΠΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ cargo, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΌΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Rust Π² ΡΠ±ΠΎΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° Π² Linux.
Pinagmulan: opennet.ru
