Rilascio di ZLUDA 5, una realizzazione open source della tecnologia CUDA

Andrzej Janik ha presentato il rilascio di ZLUDA 5, una implementazione 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, mantenendo prestazioni vicine 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, dopo la pulizia del codice sorgente dai componenti sviluppati durante il lavoro di Andrzej presso AMD. Dal 2022, Andrzej ha lavorato in AMD per creare un layer di compatibilità per le GPU AMD con CUDA, ma nel 2024 il progetto è stato sospeso. In conformità con le condizioni del contratto e dopo aver ricevuto il permesso di pubblicazione da un rappresentante di AMD, Andrzej ha reso pubblici i codici delle sue lavorazioni, sviluppati durante il suo lavoro in AMD e che consentono l'esecuzione di applicazioni CUDA sopra il stack ROCm e il runtime HIP (Heterogeneous-computing Interface for Portability).

Lo scorso anno, Andrzej ha dovuto rimuovere il codice dall'accesso pubblico dopo una lettera da parte di avvocati che hanno fatto capire che il permesso dato durante una corrispondenza via email non aveva valore legale. Dopo di ciò, Andrzej ha iniziato a lavorare su una nuova versione di ZLUDA, basata sulla vecchia base di codice esistente prima del suo arrivo in AMD. Allo stato attuale, lo sviluppo si concentra sull'esecuzione di applicazioni che utilizzano CUDA per accelerare compiti legati all'apprendimento automatico. Il progetto è attualmente limitato ai GPU AMD, ma in futuro sarà adattato per i GPU Intel.

Miglioramenti chiave nella nuova versione:

  • Aggiunta la supporto iniziale all'esecuzione di framework come llm.c, Llama.cpp e PyTorch sopra ZLUDA per eseguire modelli linguistici di grandi dimensioni, sfruttando ottimizzazioni CUDA destinate ai GPU NVIDIA.
  • Implementato il supporto iniziale per l'esecuzione di applicazioni che utilizzano le librerie cuBLAS, cuBLASLt e nvml per migliorare le performance.
  • Aggiunta la sovrapposizione zluda_trace per il tracciamento delle applicazioni che utilizzano CUDA. Con zluda_trace è possibile diagnosticare problemi e identificare carenze in ZLUDA che ostacolano il corretto funzionamento dell'applicazione.
  • È disponibile l'utilità da riga di comando zoc (compilatore offline ZLUDA), che consente di compilare file con istruzioni NVIDIA PTX in una rappresentazione intermedia AMD RDNA (precedentemente, questa funzionalità era disponibile sotto forma di funzioni di libreria).
  • Nel caricatore di moduli PTX è stato implementato un meccanismo di caching dei core eseguiti sulla GPU. Il caching consente di evitare l'esecuzione ripetuta di operazioni di compilazione delle istruzioni PTX (Parallel Thread Execution) in codice macchina per una data GPU.

    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