Andrzej Janik paskelbė apie „ZLUDA 5“, atvirojo kodo CUDA technologijos įgyvendinimo, išleidimą. Projekto tikslas – sudaryti sąlygas nemodifikuotoms CUDA programoms veikti sistemose su ne NVIDIA GPU, o jų našumas būtų artimas programų, veikiančių be tarpinių procesorių, našumui. Projekto kodas parašytas Rust kalba ir licencijuotas pagal MIT ir Apache 2.0 licencijas.
„ZLUDA 5“ buvo antrasis reikšmingas projekto leidimas, sukurtas išvalius kodo bazę nuo kodo, sukurto Andrzejaus dirbant AMD. Nuo 2022 m. Andrzejus dirbo AMD kurdamas CUDA suderinamumo sluoksnį AMD GPU, tačiau projektas buvo nutrauktas 2024 m. Vadovaudamasis savo sutarties sąlygomis ir gavęs AMD atstovo leidimą publikuoti, Andrzejus atvirojo kodo versiją suteikė savo sukurtam darbui, kurį jis sukūrė dirbdamas AMD, taip įgalindamas CUDA programų vykdymą ROCm steko ir heterogeninės skaičiavimo sąsajos perkeliamumui (HIP) vykdymo aplinkoje.
Praėjusiais metais Andrzejus buvo priverstas pašalinti savo kodą iš atviros prieigos, kai teisininkų laiške buvo aiškiai nurodyta, kad el. laiške suteiktas leidimas negalioja. Vėliau Andrzejus pradėjo dirbti su nauja ZLUDA versija, pagrįsta kodo baze, kuri egzistavo prieš Andrzejui prisijungiant prie AMD. Šiuo metu projektas orientuotas į programas, kurios naudoja CUDA, kad paspartintų mašininio mokymosi užduotis. Šiuo metu projektas apsiriboja AMD GPU, tačiau galiausiai bus pritaikytas „Intel“ GPU.
Svarbiausi naujojo leidimo patobulinimai:
- Pridėta pradinė parama llm.c, Llama.cpp ir PyTorch sistemų paleidimui ant ZLUDA, kad būtų galima vykdyti didelius kalbos modelius naudojant CUDA optimizacijas NVIDIA GPU.
- Įdiegta pradinė parama programų, kurios naudoja cuBLAS, cuBLASLt ir nvml bibliotekas, vykdymui, siekiant pagerinti našumą.
- „Zluda_trace“ sluoksnis buvo pridėtas programų sekimui naudojant CUDA. Naudodami „zluda_trace“, galite diagnozuoti problemas ir nustatyti „ZLUDA“ trūkumus, kurie trukdo normaliam programos vykdymui.
- Įdiegta komandinės eilutės programa „zoc“ (neprisijungus veikiantis „ZLUDA“ kompiliatorius), leidžianti kompiliuoti NVIDIA PTX instrukcijų failus į AMD RDNA tarpinę reprezentaciją (anksčiau ši funkcija buvo prieinama kaip bibliotekos funkcijos).
- PTX modulio įkėlėjas įgyvendina kaupimo mechanizmą GPU vykdomiems branduoliams. Kaupimas talpykloje leidžia išvengti pakartotinio išteklių reikalaujančių operacijų, tokių kaip PTX (lygiagretaus gijų vykdymo) instrukcijų kompiliavimas į mašininį kodą tam tikram GPU.
Šaltinis: opennet.ru
