Andrzej Janik oznámil vydanie ZLUDA 5, open-source implementácie technológie CUDA. Cieľom projektu je umožniť spustenie nemodifikovaných CUDA aplikácií na systémoch s grafickými procesormi inými ako NVIDIA s výkonom blízkym aplikáciám bežiacim bez interpozerov. Kód projektu je napísaný v jazyku Rust a je licencovaný pod licenciami MIT a Apache 2.0.
ZLUDA 5 bolo druhým významným vydaním projektu, ktoré vzniklo po vyčistení kódovej základne kódu vyvinutého počas Andrzejovho pôsobenia v AMD. Od roku 2022 Andrzej pracoval v AMD na vytváraní vrstvy kompatibility CUDA pre grafické procesory AMD, ale projekt bol v roku 2024 ukončený. V súlade s podmienkami svojej zmluvy a po získaní povolenia na publikovanie od zástupcu AMD Andrzej sprístupnil prácu, ktorú vyvinul počas pôsobenia v AMD, ako otvorený zdrojový kód, čo umožnilo spúšťanie aplikácií CUDA nad ROCm stackom a runtime prostredím Heterogeneous Computing Interface for Portability (HIP).
Minulý rok bol Andrzej nútený odstrániť svoj kód z verejného prístupu po tom, čo list od právnikov objasnil, že povolenie udelené v e-mailovej výmene je neplatné. Následne Andrzej začal pracovať na novej verzii ZLUDA, založenej na kódovej základni, ktorá existovala predtým, ako Andrzej nastúpil do spoločnosti AMD. V súčasnosti sa projekt zameriava na aplikácie, ktoré používajú CUDA na urýchlenie úloh strojového učenia. Projekt je v súčasnosti obmedzený na grafické procesory AMD, ale nakoniec bude upravený pre grafické procesory Intel.
Kľúčové vylepšenia v novej verzii:
- Pridaná počiatočná podpora pre spúšťanie frameworkov llm.c, Llama.cpp a PyTorch nad ZLUDA na spúšťanie rozsiahlych jazykových modelov pomocou optimalizácií CUDA pre grafické procesory NVIDIA.
- Bola implementovaná počiatočná podpora pre spúšťanie aplikácií, ktoré používajú knižnice cuBLAS, cuBLASLt a nvml na zlepšenie výkonu.
- Bola pridaná vrstva zluda_trace pre sledovanie aplikácií pomocou CUDA. Pomocou zluda_trace môžete diagnostikovať problémy a identifikovať chyby v ZLUDA, ktoré narúšajú bežné vykonávanie aplikácií.
- Bol predstavený nástroj príkazového riadka zoc (offline kompilátor ZLUDA), ktorý umožňuje kompiláciu súborov inštrukcií NVIDIA PTX do medzireprezentácie AMD RDNA (predtým bola táto funkcia dostupná ako knižničné funkcie).
- Zavádzač modulov PTX implementuje mechanizmus ukladania do vyrovnávacej pamäte pre jadrá vykonávané na grafickej karte (GPU). Ukladanie do vyrovnávacej pamäte zabraňuje opätovnému vykonávaniu operácií náročných na zdroje, ako je kompilácia inštrukcií PTX (Parallel Thread Execution) do strojového kódu pre danú grafickú kartu.
Zdroj: opennet.ru
