Objavljen je ZLUDA alat koji vam omogućava pokretanje CUDA aplikacija na AMD GPU-ovima

Projekt ZLUDA razvio je implementaciju CUDA tehnologije otvorenog koda za AMD GPU-ove, omogućavajući izvršavanje nemodificiranih CUDA aplikacija s performansama bliskim onima aplikacija koje rade bez posrednika. Objavljeni alat osigurava binarnu kompatibilnost s postojećim CUDA aplikacijama izgrađenim pomoću CUDA kompajlera za NVIDIA GPU-ove. Implementacija radi na AMD-ovom ROCm steku i Heterogeneous Computing Interface for Portability (HIP) runtime-u. Kod projekta je napisan u Rustu i distribuiran pod MIT i Apache 2.0 licencama. Podržava... Linux и Windows.

Sloj za organizovanje CUDA rada na sistemima sa AMD GPU-ima je razvijen u protekle dve godine, ali projekat ima dužu istoriju i prvobitno je kreiran da obezbedi CUDA rad na Intel GPU-ovima. Promjena politike podrške za GPU objašnjava se činjenicom da je u početku ZLUDA programer bio zaposlenik Intela, ali je 2021. ova kompanija smatrala da pružanje mogućnosti pokretanja CUDA aplikacija na Intel GPU-ima nije od poslovnog interesa i nije ubrzala razvoj inicijative.

Početkom 2022. programer je napustio Intel i AMD ga je ugovorio da razvije sloj za CUDA kompatibilnost. Tokom razvoja, AMD je tražio da ne oglašava AMD-ov interes za ZLUDA projekat i da ne vrši obvezivanja na javnom ZLUDA repozitorijumu. Dvije godine kasnije, AMD je odlučio da pokretanje CUDA aplikacija na AMD GPU-ima nije od interesa za poslovanje, što je, prema uslovima ugovora, omogućilo programeru da otkrije njegov rad. Pošto su proizvođači GPU-a prestali da finansiraju projekat, njegova sudbina sada zavisi od interesa zajednice i dobijanja predloga za saradnju od drugih kompanija. Bez eksterne podrške, projekat će se moći razvijati samo u pravcima koji su lično zanimljivi autoru, kao što je DLSS (Deep Learning Super Sampling).

U sadašnjem obliku, nivo kvaliteta implementacije se ocenjuje kao alfa verzija. Međutim, ZLUDA se već može koristiti za pokretanje mnogih CUDA aplikacija, uključujući Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM i Arnold. Pruža minimalnu podršku za cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL i NVML primitive i biblioteke.

Prvo pokretanje CUDA aplikacija koje pokreću ZLUDA događa se s primjetnim kašnjenjima zbog činjenice da ZLUDA kompajlira GPU kod. Nema takvog kašnjenja u narednim izvođenjima, pošto je kompajlirani kod pohranjen u keš memoriji. Kada se izvodi kompajlirani kod, performanse su bliske izvornim. Prilikom pokretanja Geekbench-a na AMD Radeon 6800 XT GPU-u, ZLUDA verzija CUDA benchmark paketa radila je primjetno bolje od OpenCL verzije.

Objavljen je ZLUDA alat koji vam omogućava pokretanje CUDA aplikacija na AMD GPU-ovima

Podrška za službeni CUDA Driver API i obrnutim inženjeringom dio nedokumentiranog CUDA API-ja implementiran je u ZLUDA zamjenom poziva funkcija sa sličnim funkcijama koje se pružaju u HIP runtime-u, što je na mnogo načina slično CUDA-i. Na primjer, funkcija cuDeviceGetAttribute() je zamijenjena hipDeviceGetAttribute(). Kompatibilnost sa NVIDIA bibliotekama kao što su NVML, cuBLAS i cuSPARSE je obezbeđena na sličan način - za takve biblioteke, ZLUDA obezbeđuje prevodilačke biblioteke sa istim imenom i istim skupom funkcija, izgrađene kao dodaci preko sličnih AMD biblioteka.

Aplikacijski kod GPU-a preveden u PTX (Parallel Thread Execution) reprezentaciju prvo se prevodi posebnim kompajlerom u LLVM IR međureprezentaciju, na osnovu koje se generira binarni kod za AMD GPU-ove.

Objavljen je ZLUDA alat koji vam omogućava pokretanje CUDA aplikacija na AMD GPU-ovima


izvor: opennet.ru
Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster