Uscita di ZLUDA 5, implementazione open-source universale della tecnologia CUDA

Andrzej Janik ha presentato il rilascio di ZLUDA 5, una realizzazione open source della tecnologia CUDA. L'obiettivo del progetto è fornire la possibilità di eseguire applicazioni CUDA non modificate su sistemi con GPU diverse dalle GPU NVIDIA, con prestazioni simili a quelle delle applicazioni eseguite senza strati intermedi. Il codice del progetto è scritto in Rust e distribuito sotto le licenze MIT e Apache 2.0.

ZLUDA 5 è diventato il secondo rilascio significativo del progetto, formato dopo la pulizia del codice sorgente dal codice sviluppato durante il lavoro di Andrzej presso AMD. Dal 2022 Andrzej ha lavorato presso AMD allo sviluppo di uno strato di compatibilità per GPU AMD con CUDA, ma nel 2024 il progetto è stato interrotto. In conformità ai termini del contratto e dopo aver ricevuto il permesso di pubblicazione da un rappresentante di AMD, Andrzej ha aperto il codice delle implementazioni create durante il suo lavoro in AMD che consentono l'esecuzione di applicazioni CUDA sopra lo stack ROCm e runtime HIP (Heterogeneous-computing Interface for Portability).

Lo scorso anno Andrzej è stato costretto a rimuovere il codice dall'accesso pubblico dopo una lettera da parte dei legali, che hanno fatto capire che il permesso dato nel corso della corrispondenza via email non ha valore legale. Dopo ciò, Andrzej ha iniziato a lavorare su una nuova edizione di ZLUDA, basata sulla codebase esistente prima dell'inizio del suo lavoro presso AMD. Nella versione attuale, lo sviluppo è incentrato sull'esecuzione di applicazioni che utilizzano CUDA per accelerare compiti legati all'apprendimento automatico. Il progetto è al momento limitato all'uso su GPU AMD, ma sarà adattato in seguito per le GPU Intel.

Miglioramenti chiave nel nuovo rilascio:

  • È stata aggiunta la prima supporto per l'esecuzione sopra ZLUDA dei framework llm.c, Llama.cpp e PyTorch per l'esecuzione di modelli linguistici di grandi dimensioni utilizzando ottimizzazioni CUDA applicate alle GPU NVIDIA.
  • È stato implementato il primo supporto per l'esecuzione di applicazioni che utilizzano le librerie cuBLAS, cuBLASLt e nvml per migliorare le prestazioni.
  • È stato aggiunto il layer zluda_trace per il tracciamento delle applicazioni che utilizzano CUDA. Utilizzando zluda_trace è possibile diagnosticare problemi e identificare mancanze in ZLUDA che ostacolano l'esecuzione normale dell'applicazione.
  • È stata presentata l'utilità da riga di comando zoc (ZLUDA offline compiler), che consente di compilare file con istruzioni NVIDIA PTX in una rappresentazione intermedia AMD RDNA (in precedenza questa funzionalità era disponibile sotto forma di funzioni di libreria).
  • Nel caricatore di moduli PTX è stato implementato un meccanismo di caching delle kernel eseguite sulla GPU. Il caching consente di evitare l'esecuzione ripetuta di operazioni intensive in termini di risorse per la compilazione delle istruzioni PTX (Parallel Thread Execution) in codice macchina per una GPU specifica.

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