Lansarea ZLUDA 5, implementarea deschisă universală a tehnologiei CUDA

Andrzej Janik a prezentat versiunea ZLUDA 5, o implementare deschisă a tehnologiei CUDA. Scopul proiectului este de a oferi posibilitatea de a rula aplicații CUDA neîmbunătățite pe sisteme cu GPU-uri diferite de GPU-urile NVIDIA, cu performanțe apropiate de cele ale aplicațiilor executate fără straturi. Codul proiectului este scris în limbajul Rust și este distribuit sub licențele MIT și Apache 2.0.

ZLUDA 5 a devenit a doua lansare semnificativă a proiectului, formată după curățarea bazei de cod de codul dezvoltat în timpul lucrării lui Andrzej la AMD. Din 2022, Andrzej a lucrat la AMD pentru a crea un strat de compatibilitate între GPU-urile AMD și CUDA, dar în 2024 proiectul a fost suspendat. Conform termenilor contractului și după obținerea permisiunii de publicare din partea unui reprezentant AMD, Andrzej a deschis codul lucrărilor realizate în timpul lucrării la AMD, care permit rularea aplicațiilor CUDA deasupra stivei ROCm și runtime-ului HIP (Heterogeneous-computing Interface for Portability).

Anul trecut, Andrzej a fost nevoit să îndepărteze codul din accesul deschis după o scrisoare de la avocați, care au indicat că permisiunea dată în timpul corespondenței prin email nu are valoare legală. După aceea, Andrzej a început lucrul la o nouă versiune a ZLUDA, formată pe baza bazei de cod existente înainte de începerea lucrului lui Andrzej la AMD. În forma curentă, dezvoltarea este concentrată asupra executării aplicațiilor care folosesc CUDA pentru accelerarea sarcinilor legate de învățarea automată. Proiectul se limitează momentan la lucrul pe GPU-uri AMD, dar va fi adaptat în viitor pentru GPU-uri Intel.

Îmbunătățiri cheie în noua versiune:

  • A fost adăugată suport inițial pentru rularea framework-urilor llm.c, Llama.cpp și PyTorch deasupra ZLUDA pentru executarea modelurilor lingvistice mari, utilizând optimizările CUDA aplicate pentru GPU-urile NVIDIA.
  • A fost implementat suport inițial pentru rularea aplicațiilor care folosesc bibliotecile cuBLAS, cuBLASLt și nvml pentru a spori performanța.
  • A fost adăugată o interfață zluda_trace pentru trasarea aplicațiilor care utilizează CUDA. Cu ajutorul zluda_trace se pot diagnostica probleme și identifica neajunsuri în ZLUDA care afectează execuția normală a aplicației.
  • A fost prezentat utilitarul de linie de comandă zoc (compilator offline ZLUDA), care permite compilarea fișierelor cu instrucțiuni NVIDIA PTX într-o reprezentare intermediară AMD RDNA (anterior, această funcționalitate era disponibilă sub formă de funcții de bibliotecă).
  • În încărcătorul de module PTX a fost implementat un mecanism de cache pentru nucleele executate pe GPU. Cache-ul permite evitarea re-executării operațiunilor consumatoare de resurse pentru compilarea instrucțiunilor PTX (Parallel Thread Execution) în cod mașină pentru un GPU dat.

    Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster