ZLUDA: Progressi significativi per CUDA su GPU non-Nvidia
ZLUDA amplia il team e avanza nel supporto a CUDA su GPU non-Nvidia, con focus su AI e PhysX a 32 bit.
ZLUDA, il progetto per portare CUDA su GPU non-Nvidia, sta facendo notevoli progressi, come riportato da Phoronix. Inizialmente a rischio chiusura, il progetto ha ora due sviluppatori a tempo pieno che si concentrano principalmente su carichi di lavoro AI e sul supporto a PhysX a 32 bit.
Recentemente, il team è stato ampliato con l'aggiunta di Violet, che ha introdotto miglioramenti significativi, in particolare nel supporto ai large language model tramite il progetto llm.c. Un contributore della comunità, @Groowy, ha avviato il lavoro per abilitare il supporto a 32 bit PhysX, scoprendo diversi bug che potrebbero influenzare anche la funzionalità CUDA a 64 bit.
Il progetto llm.c serve come esempio di test, cercando di eseguire un modello GPT-2 con CUDA. Questo test ha permesso di migliorare l'accuratezza delle istruzioni CUDA su GPU non-Nvidia, completando il supporto per 16 delle 44 funzioni necessarie.
L'obiettivo di ZLUDA è eseguire programmi CUDA standard su GPU non-Nvidia, mantenendo il comportamento quanto più simile possibile all'hardware Nvidia. Per garantire l'accuratezza, ZLUDA utilizza test di sweep PTX per verificare la validità delle combinazioni di istruzioni su tutti gli input.
Il sistema di logging di ZLUDA è stato aggiornato significativamente, catturando un intervallo più ampio di attività, incluso il comportamento interno dettagliato delle librerie specializzate come cuBLAS e cuDNN.
Cos'è ZLUDA e qual è il suo obiettivo principale?
ZLUDA è un progetto open-source che mira a consentire l'esecuzione di applicazioni CUDA su GPU non-Nvidia, come quelle di AMD e Intel, mantenendo prestazioni quasi native. L'obiettivo è permettere l'utilizzo di software sviluppato per l'ecosistema CUDA su hardware alternativo, ampliando le opzioni disponibili per gli sviluppatori e gli utenti.
Quali sono stati i recenti sviluppi nel progetto ZLUDA?
Recentemente, ZLUDA ha ampliato il suo team con l'aggiunta di un secondo sviluppatore a tempo pieno, Violet, che ha contribuito significativamente al supporto per i modelli di linguaggio di grandi dimensioni tramite il progetto llm.c. Inoltre, sono stati avviati lavori per abilitare il supporto a 32 bit per PhysX, con la scoperta di bug che potrebbero influenzare anche la funzionalità CUDA a 64 bit.
Come ZLUDA garantisce l'accuratezza nell'esecuzione delle istruzioni CUDA su GPU non-Nvidia?
ZLUDA utilizza test di sweep PTX per verificare la validità delle combinazioni di istruzioni su tutti gli input, assicurando che il comportamento delle applicazioni CUDA su GPU non-Nvidia sia il più simile possibile a quello su hardware Nvidia. Questo approccio aiuta a mantenere l'accuratezza e la compatibilità delle applicazioni.
Quali sono le implicazioni legali dell'utilizzo di ZLUDA per eseguire applicazioni CUDA su GPU non-Nvidia?
Nvidia ha aggiornato i termini di utilizzo di CUDA, vietando espressamente l'ingegneria inversa, la decompilazione o il disassemblaggio del software per eseguire codice CUDA su piattaforme non-Nvidia. Questo potrebbe rendere l'utilizzo di progetti come ZLUDA legalmente problematico, poiché viola i termini imposti da Nvidia.
Quali alternative esistono per eseguire applicazioni CUDA su hardware non-Nvidia?
Oltre a ZLUDA, esistono altri progetti come Coriander, che converte il codice CUDA in OpenCL, e HIP di AMD, che fornisce un livello di astrazione per eseguire codice CUDA su GPU AMD. Tuttavia, l'efficacia e la compatibilità di queste soluzioni possono variare a seconda delle specifiche applicazioni e hardware utilizzati.
Qual è l'importanza del supporto a 32 bit per PhysX nel contesto di ZLUDA?
Il supporto a 32 bit per PhysX è cruciale per garantire la compatibilità con giochi e applicazioni legacy che utilizzano questa tecnologia. L'abilitazione di questo supporto in ZLUDA permette agli utenti di eseguire tali applicazioni su GPU non-Nvidia, ampliando le possibilità di utilizzo e preservando l'accesso a software più datato.