Andrzej Janik presenterade ZLUDA 5, en öppen implementation av CUDA-teknologi. Projektets syfte Àr att möjliggöra körning av oförÀndrade CUDA-applikationer pÄ system med GPU:er som inte Àr NVIDIA, med prestanda nÀra den hos applikationer som körs utan mellanlager. Projektkoden Àr skriven i Rust och sprids under licenserna MIT och Apache 2.0.
ZLUDA 5 blev den andra betydande versionen av projektet, som formades efter att kodbasen rensats frÄn kod utvecklad under Andrzejs tid pÄ AMD. Sedan 2022 har Andrzej arbetat pÄ AMD med att skapa ett lager för GPU-kompatibilitet med CUDA, men projektet lades ned 2024. Enligt kontraktets villkor och efter att ha fÄtt tillstÄnd att publicera frÄn en representant pÄ AMD, öppnade Andrzej koden för arbete som gjorts under tiden pÄ AMD och som möjliggör körning av CUDA-applikationer ovanpÄ ROCm-stacken och runtime HIP (Heterogeneous-computing Interface for Portability).
Förra Äret tvingades Andrzej ta bort koden frÄn öppen tillgÄng efter ett brev frÄn jurister som klargjorde att tillstÄndet som gavs i e-postkonversationen inte hade nÄgon juridisk giltighet. Efter detta började Andrzej arbeta med en ny version av ZLUDA, baserad pÄ en kodbas som existerade före hans tid pÄ AMD. För nÀrvarande Àr utvecklingen fokuserad pÄ att köra applikationer som anvÀnder CUDA för att snabba upp maskininlÀrningsrelaterade uppgifter. Projektet Àr för nÀrvarande begrÀnsat till arbete med AMD-GPU:er, men kommer i framtiden att anpassas för Intel-GPU:er.
NyckelförbÀttringar i den nya versionen:
- Initierat stöd för att köra ramverken llm.c, Llama.cpp och PyTorch ovanpÄ ZLUDA för att utföra stora sprÄkmodeller med CUDA-optimeringar som anvÀnds för NVIDIA-GPU:er.
- Initierat stöd för att köra applikationer som anvÀnder cuBLAS, cuBLASLt och nvml-bibliotek för att öka prestandan.
- Tillagd mellanlager zluda_trace för spÄrning av applikationer som anvÀnder CUDA. Med zluda_trace kan man diagnostisera problem och identifiera brister i ZLUDA som hindrar normal körning av applikationen.
- Ett kommandoradsverktyg, zoc (ZLUDA offline-kompilator), har presenterats, vilket gör det möjligt att kompilera filer med NVIDIA PTX-instruktioner till ett mellanliggande format för AMD RDNA (denna funktionalitet var tidigare tillgÀnglig i form av bibliotekfunktioner).
- Det har implementerats en cachningsmekanism för GPU-kÀrnorna i PTX-modulens laddare. Cachning möjliggör att undvika att resurssky consuming kompilering av PTX-instruktioner (Parallel Thread Execution) till maskinkod för en given GPU körs om.
KĂ€lla: opennet.ru
