Avaldatud ZLUDA tööriistakomplekt, mis vÔimaldab CUDA rakenduste kÀitamist AMD GPU-de peal

ZLUDA projekt on valmistanud avatud rakenduse CUDA tehnoloogiale AMD GPU-dele, vĂ”imaldades kĂ€ivitada muutmata CUDA rakendusi tootlikkusega, mis on lĂ€hedane rakendustele, mis kĂ€ivituvad ilma kihtideta. Avaldatud tööriistakomplekt tagab binaarse ĂŒhilduvuse olemasolevate CUDA rakendustega, mis on koostatud NVIDIA GPU-dele mĂ”eldud CUDA kompilaatoriga. Rakendamine toimib AMD arendatava ROCm ja HIP (Heterogeneous-computing Interface for Portability) kĂ€ituskihi peal. Projekti kood on kirjutatud Rust keeles ning seda levitatakse MIT ja Apache 2.0 litsentside alusel. Toetatakse töötamist Linuxis ja Windowsis.

CUDA töötlemise kihti AMD GPU-dega sĂŒsteemides on arendatud viimased kaks aastat, kuid projektil on pikem ajalugu ja see loodi algselt CUDA toimimise tagamiseks Intel GPU-del. GPU toetamise poliitika muutmine seletub sellega, et projekti arendaja ZLUDA oli algselt Intel'i töötaja, kuid 2021. aastal leidis ettevĂ”te, et CUDA rakenduste kĂ€ivitamine Intel GPU-del ei paku nende Ă€rile huvi ja ei kiirendanud algatuse arendamist.

2022. aasta alguses lahkus arendaja Intel’ist ja sĂ”lmis lepingu AMD-ga CUDA ĂŒhilduvuse kihi arendamiseks. AMD palus arenduse kĂ€igus mitte avalikustada huvi projekti ZLUDA vastu ning mitte teha avalikke commit’e ZLUDA repositooriumis. Kaks aastat hiljem leidis AMD, et CUDA rakenduste kĂ€ivitamine AMD GPU-del ei paku nende Ă€ri jaoks huvi, mis lepingutingimuste kohaselt vĂ”imaldas arendajal oma töid avalikustada. Kuna GPU tootjad on projekti rahastamise lĂ”petanud, sĂ”ltub selle saatus nĂŒĂŒd kogukonna huvidest ja teiste ettevĂ”tete koostööettepanekutest. Ilma vĂ€listoetusteta vĂ”ib projekt areneda ainult suundades, mis huvitavad isiklikult autorit, nĂ€iteks DLSS (Deep Learning Super Sampling).

Praeguses vormis hinnatakse rakenduse kvaliteedi taset alfa-versioonina. Sellegipoolest saab ZLUDA-d juba kasutada paljude CUDA rakenduste, sealhulgas Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM ja Arnold kÀitamiseks. Tagatud on minimaalne toetus primitiividele ja raamatukogudele cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL ja NVML.

CUDA rakenduste esimene kÀivitus ZLUDA juhtimisel toimub mÀrkimisvÀÀrsete viivitustega, kuna ZLUDA kompileerib GPU koodi. JÀrgmiste kÀivituste puhul selline viivitus puudub, kuna kompileeritud kood salvestatakse vahemÀlu. Kompileeritud koodi tÀitmise ajal on jÔudlus lÀhedane natiivsele. Geekbench paketi sooritamisel AMD Radeon 6800 XT GPU-l nÀitas ZLUDA abil teostatud CUDA-testikomplekti variant oluliselt kÔrgemat jÔudlust kui OpenCL-pÔhine variant.

Avaldatud ZLUDA tööriistakomplekt, mis vÔimaldab CUDA rakenduste kÀitamist AMD GPU-de peal

ZLUDA-s on ametliku CUDA Driver API toe ja tagasipööramise inseneritehnika abil uuritud dokumenteerimata CUDA API osade toe rakendamine lĂ€bi funktsioonikutsede asendamise HIP runtime-s pakutavate vastavate funktsioonidega, mis sarnanevad CUDA-ga. NĂ€iteks asendatakse funktsioon cuDeviceGetAttribute() funktsiooniga hipDeviceGetAttribute(). Sarnasel viisil tagatakse ka ĂŒhilduvus NVIDIA raamatukogudega, nagu NVML, cuBLAS ja cuSPARSE – ZLUDA-s antakse nende raamatukogude jaoks ĂŒlekanne raamatukogud, millel on sama nimi ja sama funktsioonide kogum, mis on ehitatud AMD sarnaste raamatukogude peale.

Rakenduste GPU-kood, mis on kompileeritud PTX (Parallel Thread Execution) esituses, tÔlgitakse alguses spetsiaalse kompilaatori poolt vahepealsesse LLVM IR esitusesse, mille pÔhjal genereeritakse binaarkood AMD GPU jaoks.

Avaldatud ZLUDA tööriistakomplekt, mis vÔimaldab CUDA rakenduste kÀitamist AMD GPU-de peal


Allikas: opennet.ru
Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster