OpenCL:n Mesan Rust-toteutus tukee OpenCL 3.0:aa

Mesa-projektia varten kehitetty uusi Rust-kielellä kirjoitettu OpenCL-toteutus (rusticl) on läpäissyt CTS (Kronos Conformance Test Suite) -testisarjan, jota Khronos-konsortio käyttää arvioidakseen yhteensopivuutta OpenCL 3.0 -spesifikaatioiden kanssa. Projektia kehittää Karol Herbst Red Hatista, joka on mukana Mesan, Nouveau-ohjaimen ja OpenCL-avopinon kehittämisessä. On huomattava, että Carol otti yhteyttä Khronosiin koskien OpenCL 3.0 -tuen virallista sertifiointia rustiklissa.

Testit suoritettiin järjestelmällä, jossa oli 12. sukupolven Intel GPU (Alder Lake). Työ tehtiin Mesa Iris -ajurilla, mutta projektin tulisi toimia myös muiden Mesa-ajureiden kanssa, jotka käyttävät NIR-varjostimien tyyppitöntä väliesitystä (IR). Pyyntö Rusticlen yhdistämisestä Mesaan on edelleen käsittelyssä, eikä Rust-koodin sisällyttämisestä Mesaan ole tehty päätöstä. Ennen kuin Rusticl hyväksytään Mesan pääkoostumukseen, voit käyttää rakentamiseen erillistä haaraa, jota käännettäessä tulee määrittää koontiparametrit “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= totta".

Rusticle toimii analogisena Mesan OpenCL-käyttöliittymän Cloverille, ja se on myös kehitetty Mesan Gallium-rajapinnalla. Clover-paalu on hylätty pitkään ja rusticl on asetettu sen tilalle tulevaisuudessa. OpenCL 3.0 -yhteensopivuuden lisäksi Rusticle-projekti eroaa Cloverista siinä, että se tukee OpenCL-laajennuksia kuvankäsittelyyn, mutta ei vielä tue FP16-muotoa.

Mesa- ja OpenCL-sidosten luomiseksi, jolloin voit kutsua Rust-funktioita C-koodista ja päinvastoin, Rusticlessa käytetään rust-bindgeniä. Rust-kielen käyttömahdollisuudesta Mesa-projektissa on keskusteltu vuodesta 2020 lähtien. Rust-tuen etujen joukossa mainitaan ajurien lisääntynyt turvallisuus ja laatu, koska se johtuu tyypillisistä muistiongelmista eroon pääsemisestä, sekä kyvystä sisällyttää Mesaan kolmannen osapuolen kehitystyöt, kuten Kazan (Vulkanin toteutus). ruosteessa). Haittoja ovat rakennusjärjestelmän lisääntynyt monimutkaisuus, haluttomuus olla sidottu rahtipakettijärjestelmään, laajemmat vaatimukset rakennusympäristölle ja tarve sisällyttää Rust-kääntäjä koontiriippuvuuksiin, joita tarvitaan tärkeiden työpöytäkomponenttien rakentamiseen Linuxissa.

Lähde: opennet.ru

Lisää kommentti