Andrzej Janik præsenterede ZLUDA 5, en open source-implementering af CUDA-teknologi. Målet med projektet er at give mulighed for at køre uændrede CUDA-applikationer på systemer med GPU'er, der ikke er NVIDIA GPU'er, med ydeevne, der ligger tæt på ydeevnen af applikationer, der køres uden lag. Projektkoden er skrevet i Rust og distribueres under MIT- og Apache 2.0-licenserne.
ZLUDA 5 blev den anden væsentlige udgivelse af projektet, som blev formet efter oprydningen af kodebasen fra koden, der blev udviklet under Andrzejs tid hos AMD. Siden 2022 har Andrzej arbejdet hos AMD med at skabe et lag for kompatibilitet mellem AMD GPU'er og CUDA, men projektet blev lukket i 2024. I henhold til kontraktbetingelserne og efter at have fået tilladelse til offentliggørelse fra en repræsentant fra AMD, åbnede Andrzej koden for det arbejde, der blev udført under sit ophold hos AMD, og som gør det muligt at køre CUDA-applikationer oven på ROCm-stakken og runtime HIP (Heterogeneous-computing Interface for Portability).
Sidste år blev Andrzej tvunget til at fjerne koden fra offentlig adgang efter et brev fra advokater, der gjorde det klart, at tilladelsen givet i e-mail-korrespondancen ikke havde juridisk gyldighed. Efter dette begyndte Andrzej at arbejde på en ny udgave af ZLUDA, baseret på den kodebase, der eksisterede før hans arbejde hos AMD. I sin nuværende form fokuserer udviklingen på at køre applikationer, der bruger CUDA til at accelerere opgaver relateret til maskinlæring. Projektet er i øjeblikket begrænset til at fungere på AMD GPU'er, men vil i fremtiden blive tilpasset til Intel GPU'er.
Nøgleforbedringer i den nye udgivelse:
- Indledende support til at køre llm.c, Llama.cpp og PyTorch-rammer oven på ZLUDA for at udføre store sprogmodeller med CUDA-optimeringer, der anvendes til NVIDIA GPU'er, er blevet tilføjet.
- Indledende support til at køre applikationer, der bruger cuBLAS, cuBLASLt og nvml-bibliotekerne for at forbedre ydeevnen, er blevet implementeret.
- En zluda_trace-lag til sporing af applikationer, der bruger CUDA, er blevet tilføjet. Ved hjælp af zluda_trace kan man diagnosticere problemer og identificere mangler i ZLUDA, der forhindrer korrekt udførelse af applikationen.
- Der kommandolinjeværktøj zoc (ZLUDA offline compiler) er blevet præsenteret, hvilket gør det muligt at kompilere filer med NVIDIA PTX-instruktioner til den mellemliggende repræsentation AMD RDNA (denne funktionalitet var tidligere tilgængelig som biblioteksfunktioner).
- I PTX-modulindlæseren er der implementeret et cache-system for de udførte GPU-kerner. Caching gør det muligt at undgå gentagen udførelse af ressourcekrævende kompilering af PTX-instruktioner (Parallel Thread Execution) til maskinkode for den specificerede GPU.
Kilde: opennet.ru
