Sinusuportahan na ngayon ng Rust na pagpapatupad ng OpenCL ng OpenCL ang OpenCL 3.0

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.

Upang makabuo ng mga binding para sa Mesa at OpenCL, na nagbibigay-daan sa iyong tumawag sa mga function ng Rust mula sa C code at vice versa, ginagamit ang rust-bindgen sa Rusticle. Ang posibilidad ng paggamit ng Rust na wika sa proyekto ng Mesa ay tinalakay mula noong 2020. Kabilang sa mga pakinabang ng suporta sa Rust, ang pagtaas ng seguridad at kalidad ng mga driver ay nabanggit dahil sa pag-alis ng mga tipikal na problema kapag nagtatrabaho sa memorya, pati na rin ang kakayahang isama ang mga pag-unlad ng third-party sa Mesa, tulad ng Kazan (isang pagpapatupad ng Vulkan sa kalawang). Kabilang sa mga disadvantage ang pagtaas ng pagiging kumplikado ng build system, pag-aatubili na maiugnay sa cargo package system, pinalawak na mga kinakailangan para sa build environment, at ang pangangailangang isama ang Rust compiler sa mga build dependencies na kinakailangan para bumuo ng mga pangunahing bahagi ng desktop sa Linux.

Pinagmulan: opennet.ru

Magdagdag ng komento