ZLUDA, en implementering som tillåter körning av CUDA-applikationer på AMD GPU:er

Zluda

ZLUDA körs på AMD:s ROCm-stack

Nyheten har släppts att AMD har tagit beslutet att sluta finansiera utvecklingen av ZLUDA, vilket är en öppen implementering av CUDA-teknik för AMD GPU:er, så att du kan köra CUDA-applikationer utan att modifiera dem med prestanda nära den för applikationer som körs utan ytterligare lager.

Under de senaste två åren har det arbetats med utvecklingen av detta lager för att underlätta exekvering av CUDA-applikationer på system med AMD GPU:er. Men tills nyligen AMD har fattat beslutet att kör CUDA-applikationer på AMD GPU:er var inte av kommersiellt intresse, vilket gjorde det möjligt för exploatören att öppna sin utveckling som överenskommits i avtalet.

Om ZLUDA

Projektet skapades ursprungligen för att stödja CUDA-arbete på Intel GPU:er och förändringen i GPU-supportpolicyn beror på att utvecklaren av ZLUDA från början var en Intel-anställd. År 2021, Intel beslutade att det inte var kommersiellt gångbart ger möjligheten att köra CUDA-applikationer på Intel GPU: er, vilket ledde till att utvecklingen av initiativet avbröts.

I början av 2022, utvecklaren lämnade Intel och tecknade ett kontrakt med AMD för att fortsätta utvecklingen av CUDA-kompatibilitetslagret. Under utvecklingen begärde AMD att företagets intresse för ZLUDA-projektet inte skulle främjas och att det inte förbinder sig till ZLUDAs offentliga arkiv.

ZLUDA tillhandahåller binärt stöd för CUDA-applikationer befintliga kompilerade med CUDA-kompilatorn för NVIDIA GPU:er, utan att behöva göra ändringar på källkodsnivå. Implementeringen fungerar på AMD:s ROCm-stack och HIP-runtime.

I sitt nuvarande tillstånd, ZLUDAs konverteringskvalitetsnivå anses vara en alfaversion. Även om det är värt att nämna att den redan kan köra många CUDA-applikationer, förutom att ge minimalt stöd för primitiver och bibliotek, har den också prototypimplementationer av OptiX-ramverket.

Zluda

Jämförelsediagram för ZLUDA

Under den första exekveringen av CUDA-applikationer under ZLUDA-kontroll upplever du märkbara förseningar eftersom ZLUDA kompilerar koden för GPU:n. Dock, vid efterföljande körningar försvinner denna fördröjning, eftersom den kompilerade koden cachelagras, vilket resulterar i nästan inbyggd prestanda när den kompilerade koden körs. Till exempel, när man körde Geekbench på en AMD Radeon 6800 XT GPU, visade den ZLUDA-baserade versionen av CUDA benchmark-sviten betydligt bättre prestanda än den OpenCL-baserade versionen.

Dessutom nämns att stöd för det officiella CUDA-drivrutin-API:et och reverse engineering av det odokumenterade CUDA-API:et implementeras i ZLUDA genom att ersätta funktionsanrop med analoga funktioner som tillhandahålls i HIP-runtime, vilket är mycket likt CUDA.

Till exempel är funktionen cuDeviceGetAttribute() ersatt av hipDeviceGetAttribute(). ZLUDA säkerställer också kompatibilitet med NVIDIA-bibliotek som NVML, cuBLAS och cuSPARSE. För dessa bibliotek tillhandahåller ZLUDA översättningsbibliotek med samma namn och samma funktionsuppsättning, byggda ovanpå liknande AMD-bibliotek. GPU-applikationskoden, kompilerad i PTX (Parallel Thread Execution) representation, översätts av en speciell kompilator till en mellanliggande LLVM IR-representation, från vilken den binära koden för AMD GPU genereras.

Slutligen bör det nämnas att Framtiden för projektet beror på samhällets intresse och eventuella samarbetsförslag från andra företag. Utan externt stöd kommer projektet att fortsätta att utvecklas enbart inom områden av personligt intresse för författaren, såsom DLSS.

För intresserad av projektkoden, du bör veta att det är skrivet i Rust och distribueras under MIT- och Apache 2.0-licenserna, och att projektet är kompatibelt med Linux och Windows. Om du är intresserad av att lära dig mer om det kan du konsultera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.