Paskelbta žinia, kad AMD priėmė sprendimą sustabdyti ZLUDA kūrimo finansavimą, kuris yra atviras CUDA technologijos diegimas AMD GPU, leidžia paleisti CUDA programas jų nekeičiant, o našumas panašus į programų, veikiančių be papildomų sluoksnių.
Per pastaruosius dvejus metus buvo dirbama prie šio sluoksnio plėtros palengvinti CUDA programų vykdymą sistemose su AMD GPU. Bet dar visai neseniai AMD priėmė tokį sprendimą paleiskite CUDA programas AMD GPU nebuvo komercinio intereso, o tai leido kūrėjui atidaryti savo plėtrą kaip sutarta sutartyje.
Apie ZLUDA
El proyecto iš pradžių buvo sukurtas palaikyti CUDA darbą su Intel GPU o GPU palaikymo politikos pasikeitimas atsirado dėl to, kad iš pradžių ZLUDA kūrėjas buvo Intel darbuotojas. 2021 m. „Intel“ nusprendė, kad tai nėra komerciškai perspektyvi suteikti galimybę paleisti CUDA programas „Intel“ GPU, todėl iniciatyvos kūrimas buvo nutrauktas.
2022 m. Pradžioje kūrėjas paliko „Intel“ ir pasirašė sutartį su AMD tęsti plėtrą CUDA suderinamumo sluoksnio. Plėtros metu AMD paprašė, kad nebūtų skatinamas bendrovės susidomėjimas ZLUDA projektu ir neįsipareigoja ZLUDA viešoji saugykla.
ZLUDA teikia dvejetainį palaikymą CUDA programoms esamus, sudarytus naudojant CUDA kompiliatorių, skirtą NVIDIA GPU, nereikalaujant atlikti pakeitimų šaltinio kodo lygiu. Diegimas veikia naudojant AMD ROCm krūvą ir HIP vykdymo laiką.
Esant dabartinei padėčiai, ZLUDA konversijos kokybės lygis laikomas alfa versija. Nors verta paminėti, kad jis jau gali paleisti daugelį CUDA programų, be minimalios primityvų ir bibliotekų palaikymo, jis taip pat turi OptiX sistemos prototipų diegimus.
Pirmą kartą vykdant CUDA programas, valdomas ZLUDA, pastebimi vėlavimai nes ZLUDA sukompiliuoja GPU kodą. Tačiau vėlesniuose važiavimuose šis delsimas išnyksta, kai sukompiliuotas kodas saugomas talpykloje, todėl paleidžiant sukompiliuotą kodą pasiekiamas beveik vietinis našumas. Pavyzdžiui, paleidus „Geekbench“ su AMD Radeon 6800 XT GPU, ZLUDA pagrįsta CUDA etaloninio rinkinio versija parodė žymiai geresnį našumą nei „OpenCL“ pagrįsta versija.
Be to, minima, kad oficialios CUDA tvarkyklės API palaikymas ir nedokumentuotos CUDA API atvirkštinė inžinerija yra įdiegta ZLUDA, pakeičiant funkcijų iškvietimus analogiškomis funkcijomis, numatytomis HIP vykdymo laiku, kuris labai panašus į CUDA.
Pavyzdžiui, funkcija cuDeviceGetAttribute() pakeičiama hipDeviceGetAttribute(). ZLUDA taip pat užtikrina suderinamumą su NVIDIA bibliotekomis, tokiomis kaip NVML, cuBLAS ir cuSPARSE. Šioms bibliotekoms ZLUDA teikia vertimo bibliotekas su tuo pačiu pavadinimu ir tuo pačiu funkcijų rinkiniu, sukurtu ant panašių AMD bibliotekų. GPU programos kodas, sudarytas naudojant PTX (Parallel Thread Execution) atvaizdavimą, specialiu kompiliatoriumi išverčiamas į tarpinį LLVM IR atvaizdą, iš kurio generuojamas dvejetainis AMD GPU kodas.
Galiausiai reikėtų paminėti tai Projekto ateitis priklauso nuo bendruomenės interesų ir galimus kitų įmonių bendradarbiavimo pasiūlymus. Be išorinės paramos projektas ir toliau bus plėtojamas tik tose srityse, kurios asmeniškai domina autorių, pavyzdžiui, DLSS.
Už domina projekto kodas, turėtumėte žinoti, kad jis parašytas Rust ir platinamas pagal MIT ir Apache 2.0 licencijas, o projektas yra suderinamas su Linux ir Windows. Jei norite sužinoti daugiau apie tai, galite sužinoti daugiau Šioje nuorodoje.