È stato pubblicato lo strumento ZLUDA, che consente di eseguire applicazioni CUDA su GPU AMD

Il progetto ZLUDA ha sviluppato un'implementazione open source della tecnologia CUDA per le GPU AMD, consentendo di eseguire applicazioni CUDA non modificate con prestazioni vicine a quelle delle applicazioni eseguite senza interruzioni. Gli strumenti pubblicati garantiscono la compatibilità binaria con le applicazioni CUDA esistenti, compilate utilizzando il compilatore CUDA per le GPU NVIDIA. L'implementazione funziona sopra il stack ROCm in sviluppo da parte di AMD e il runtime HIP (Heterogeneous-computing Interface for Portability). Il codice del progetto è scritto in Rust e distribuito sotto le licenze MIT e Apache 2.0. È supportato il funzionamento su Linux e Windows.

Il layer per l'organizzazione del funzionamento di CUDA sui sistemi con GPU AMD è stato sviluppato negli ultimi due anni, ma il progetto ha una storia più lunga ed è stato originariamente creato per garantire il funzionamento di CUDA su GPU Intel. Il cambiamento della politica di supporto delle GPU è spiegato dal fatto che inizialmente lo sviluppatore di ZLUDA era un dipendente di Intel, ma nel 2021 tale azienda ha considerato la possibilità di eseguire applicazioni CUDA su GPU Intel non interessante per il business e ha deciso di non forzare lo sviluppo dell'iniziativa.

All'inizio del 2022, lo sviluppatore ha lasciato Intel e ha stipulato un contratto con AMD per sviluppare un layer per la compatibilità con CUDA. Durante lo sviluppo, AMD ha richiesto di non pubblicizzare il suo interesse per il progetto ZLUDA e di non effettuare commit nel repository pubblico di ZLUDA. Dopo due anni, AMD ha deciso che l'esecuzione delle applicazioni CUDA su GPU AMD non rappresentava un interesse commerciale, il che, in base ai termini del contratto, ha permesso allo sviluppatore di rivelare i suoi progressi. Poiché i produttori di GPU hanno smesso di finanziare il progetto, il suo destino ora dipende dall'interesse della comunità e dalle proposte di collaborazione da altre aziende. Senza supporto esterno, il progetto potrebbe svilupparsi solo in direzioni di interesse personale per l'autore, come DLSS (Deep Learning Super Sampling).

Nella sua forma attuale, il livello di qualità dell'implementazione è valutato come versione alpha. Tuttavia, ZLUDA può già essere utilizzato per eseguire molte applicazioni CUDA, inclusi Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM e Arnold. È garantito un supporto minimo per i primitivi e le librerie cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL e NVML.

Il primo avvio delle applicazioni CUDA sotto ZLUDA presenta ritardi significativi, poiché ZLUDA compila il codice GPU. Nei successivi avvii, tale ritardo è assente, poiché il codice compilato viene memorizzato nella cache. Durante l'esecuzione del codice compilato, le prestazioni sono vicine a quelle native. Eseguendo il pacchetto Geekbench su GPU AMD Radeon 6800 XT, la variante del set di test per CUDA, eseguita tramite ZLUDA, ha mostrato prestazioni significativamente superiori rispetto alla variante basata su OpenCL.

È stato pubblicato lo strumento ZLUDA, che consente di eseguire applicazioni CUDA su GPU AMD

Il supporto ufficiale per l'API CUDA Driver e le parti dell'API CUDA non documentate, analizzate tramite reverse engineering, sono implementati in ZLUDA attraverso la sostituzione delle chiamate di funzione con funzioni simili fornite dal runtime HIP, che è molto simile a CUDA. Ad esempio, la funzione cuDeviceGetAttribute() viene sostituita con hipDeviceGetAttribute(). In modo analogo, è garantita la compatibilità con le librerie NVIDIA, come NVML, cuBLAS e cuSPARSE: per queste librerie, ZLUDA fornisce librerie di traduzione con lo stesso nome e lo stesso set di funzioni, costruite come estensioni sopra librerie AMD simili.

Il codice GPU delle applicazioni, compilato in rappresentazione PTX (Parallel Thread Execution), viene tradotto inizialmente da un compilatore speciale in una rappresentazione intermedia LLVM IR, sulla base della quale viene generato il codice binario per le GPU AMD.

È stato pubblicato lo strumento ZLUDA, che consente di eseguire applicazioni CUDA su GPU AMD


Fonte: opennet.ru
Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster