Mesa-ren Rust OpenCL inplementazioak OpenCL 3.0 onartzen du orain

Mesa proiekturako garatzen ari den OpenCL inplementazio berriak (rusticl), Rust-en idatzita, arrakastaz gainditu du Khronos partzuergoak OpenCL 3.0 zehaztapenekin bateragarritasuna ebaluatzeko erabiltzen duen CTS (Kronos Conformance Test Suite) proba multzoa. Proiektua Red Hat-eko Karol Herbst-ek garatzen ari da, Mesa, Nouveau kontrolatzailea eta OpenCL open stack-en garapenean parte hartzen duena. Kontuan izan da Carol Khronosekin harremanetan jarri zela OpenCL 3.0 laguntzaren ziurtagiri ofizialaren inguruan rusticl-en.

Probak 12. belaunaldiko Intel GPU (Alder Lake) duen sistema batean burutu ziren. Lana Mesa Iris kontrolatzailea erabiliz egin da, baina proiektuak NIR itzalgailuen typeless intermediate representation (IR) erabiltzen duten beste Mesa kontrolatzaileekin ere lan egin beharko luke. Rusticle Mesa-rekin batzeko eskaera aztertzen ari da oraindik eta ez da erabaki Rust kodea Mesan sartu ala ez. Rusticl Mesa osaera nagusian onartu aurretik, adar bereizi bat erabil dezakezu eraikitzeko, konpilatzerakoan, eraikitzeko parametroak zehaztu beharko dituzu β€œ-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= egia”.

Rusticle-k Mesa-ren OpenCL frontend Clover-en analogo gisa jokatzen du eta Mesa-n emandako Gallium interfazea erabiliz ere garatzen da. Clover-en partaidetza denbora luzez utzita egon da eta rusticl etorkizuneko ordezko gisa kokatu da. OpenCL 3.0 bateragarritasuna lortzeaz gain, Rusticle proiektua Clover-en desberdina da OpenCL luzapenak onartzen dituelako irudiak prozesatzeko, baina oraindik ez du FP16 formatua onartzen.

Mesa eta OpenCLrako loturak sortzeko, Rust-en funtzioei C kodetik deitzeko eta alderantziz, Rusticle-n rust-bindgen erabiltzen da. Mesa proiektuan Rust hizkuntza erabiltzeko aukera 2020tik eztabaidatu da. Rust-en euskarriaren abantailen artean, gidarien segurtasuna eta kalitatea areagotzea aipatzen da, memoriarekin lan egitean ohiko arazoak kentzeagatik, baita hirugarrenen garapenak Mesa-n sartzeko gaitasuna ere, Kazan adibidez (Vulkan-en inplementazioa). Herdoilduan). Desabantailak honako hauek dira: eraikuntza-sistemaren konplexutasuna areagotzea, zama paketeen sistemari lotzeko errezeloa, eraikuntza-ingurunerako eskakizun hedatuak eta Rust konpilatzailea Linux-en mahaigaineko osagai nagusiak eraikitzeko beharrezkoak diren eraikitze-menpekotasunetan sartzeko beharra.

Iturria: opennet.ru

Gehitu iruzkin berria