ZLUDA: il progetto per eseguire CUDA su GPU non NVIDIA cresce e fa progressi

Il progetto open source ZLUDA, che punta a eseguire codice CUDA su GPU non NVIDIA, ha compiuto significativi passi avanti. Il team si amplia, migliorano compatibilità e precisione, e si lavora sul supporto a PhysX 32-bit. Il tutto con NVIDIA pronta a mettere i bastoni tra le ruote.
di Manolo De Agostini pubblicata il 05 Luglio 2025, alle 09:01 nel canale Server e WorkstationZLUDAIntelAMDNVIDIACUDA
ZLUDA, progetto open source che punta a eseguire carichi di lavoro CUDA su GPU non NVIDIA, ha condiviso un aggiornamento sullo stato dei lavori, da cui emergono significativi progressi tecnici e un'espansione del team di sviluppo che potrebbe accelerarli ulteriormente.
Cos'è ZLUDA, in estrema sintesi
ZLUDA fornisce un'alternativa alle librerie "libcuda" di NVIDIA, intercettando le chiamate CUDA e traducendo i comandi in chiamate appropriate alle API native delle altre GPU. Per il mondo open source e per l'ecosistema GPU in generale, ZLUDA potrebbe rappresentare un importante tassello verso una maggiore interoperabilità e libertà di scelta in ambito hardware.
L'architettura interna è basata su Rust e C/C++: il cuore consiste in due componenti principali, il crate "ptx" (che compila il linguaggio intermedio PTX di NVIDIA) e il crate "zluda" (runtime sulle GPU AMD tramite ROCm). In pratica, ZLUDA recupera i kernel CUDA compilati in PTX e li "finalizza" in tempo reale per l'hardware di destinazione, similmente a quanto farebbe il driver CUDA originale.
ZLUDA è nato nel 2020 per iniziativa di Andrzej "vosen" Janik. L'idea destò fin da subito molto interesse nelle community AI/ML/HPC e, dalla fine del 2021, AMD entrò in gioco come sponsor: a fronte di un focus iniziale sulle GPU Intel, Janik virò il focus sulle GPU AMD usando ROCm, con fondi non ufficiali da parte di AMD.
Nei successivi due anni il progetto fu sviluppato in private partnership, fino a che (inizio 2024) AMD decise di interrompere improvvisamente i finanziamenti. Poco dopo il codice fu pubblicato su GitHub (in base agli accordi di cessione), ma in seguito il team legale di AMD richiese la rimozione del codice open source.
Probabilmente, ciò avvenne perché NVIDIA aveva dichiarato illegale l'uso di translation layer su CUDA, creando potenziali problematiche legali. Ad agosto dello scorso anno Janik ha deciso di ripartire da da uno stato pulito (codice pre-AMD), annunciando poco dopo di aver trovato un partner anonimo disposto a finanziare lo sviluppo di ZLUDA, focalizzato stavolta su applicazioni AI e multi-architettura.
Il codice è stato quindi riscritto da zero, eliminando feature di nicchia come il supporto a NVIDIA OptiX, per concentrarsi su ambiti con una maggiore domanda (llama.cpp, PyTorch, TensorFlow ecc.). Infine, a dicembre 2024 è stata pubblicata la versione 4 sul GitHub ufficiale, seguita nel 2025 da aggiornamenti regolari.
Il team di ZLUDA cresce
Una delle novità più rilevanti dell'ultimo periodo è l'ampliamento del team: ora ci sono due sviluppatori che lavorano a tempo pieno sul progetto. I contributi sono già significativi, in particolare nella gestione di carichi legati a modelli linguistici di grandi dimensioni (LLM).
In questo ambito, ZLUDA sta lavorando a un test chiamato llm.c, che tenta di eseguire un modello GPT-2 sfruttando le librerie CUDA, comprese quelle più avanzate come cuBLAS, utilizzata per operazioni matematiche ottimizzate.
Crediti foto: Igor's Lab
Il test rappresenta un banco di prova impegnativo: vengono effettuate 8186 chiamate CUDA distribuite su 44 API diverse. Se inizialmente ZLUDA andava in crash alla prima chiamata, oggi riesce ad arrivare alla 552ª prima di fallire. Un miglioramento netto, che si accompagna al supporto completo per 16 delle 44 funzioni necessarie, avvicinando il progetto alla compatibilità con framework complessi come PyTorch.
Parallelamente, la comunità ha avviato i lavori per riportare il supporto a PhysX a 32-bit, componente fondamentale per eseguire correttamente alcuni titoli videoludici più datati basati su CUDA. L'iniziativa è partita da un contributore indipendente, Groowy, che ha raccolto log dettagliati utili a individuare numerosi bug.
Alcuni di questi potrebbero influenzare anche il funzionamento di CUDA a 64-bit, motivo per cui la correzione è entrata a far parte della roadmap ufficiale. Il completamento del supporto, però, richiederà ulteriore contributo da parte della community open source.
Uno degli obiettivi principali di ZLUDA è offrire un'esecuzione il più possibile fedele del codice CUDA, sia in termini di comportamento che di precisione numerica. Le versioni precedenti, prima del reset del codice, tendevano a sacrificare l'accuratezza per garantire la compatibilità. Ora, invece, il progetto ha introdotto test sistematici basati su PTX, il linguaggio intermedio utilizzato da NVIDIA, per garantire che ogni istruzione venga eseguita in modo coerente rispetto all'hardware originale. Questo approccio ha anche permesso di individuare e correggere alcuni bug del compilatore.
In parallelo, il sistema di logging di ZLUDA è stato potenziato per intercettare un numero maggiore di chiamate e comportamenti interni, incluse interazioni tra librerie complesse come cuBLASLt e cuDNN, o l'uso non documentato dell'API Driver.
L'altro fronte su cui il team è intervenuto riguarda la compatibilità con i compilatori runtime usati nei framework alternativi a CUDA, come ROCm/HIP di AMD. Questi ecosistemi fanno uso della libreria comgr per compilare dinamicamente il codice destinato alle GPU. Tuttavia, un recente cambiamento nell'interfaccia binaria di ROCm 6.4 ha causato una serie di incompatibilità in ZLUDA, con funzioni errate richiamate a causa della riorganizzazione interna dei codici operativi. Questi problemi sono stati risolti.
Il futuro? Da scrivere
Al momento non è chiaro quale sarà il futuro di ZLUDA, ma da progetto sull'orlo del baratro qualcosa si muove nella giusta direzione. Ovviamente NVIDIA monitorerà la situazione e, come ha già fatto, se ZLUDA dovesse diventare un pericolo cercherà di mettere nuovi bastoni tra le ruote. D'altronde ZLUDA rappresenta una potenziale minaccia per NVIDIA perché punta a eseguire codice CUDA su GPU non NVIDIA, riducendo il lock-in che lega sviluppatori al suo ecosistema proprietario. Questo potrebbe erodere il vantaggio competitivo di NVIDIA, fondato non solo sull'hardware ma soprattutto sullo stack software chiuso.
6 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoE sarebbe anche ora.
Altri big replicarono che Keller disse una cosa giusta.
Zluda non è la soluzione è solo un pagliativo.
Dovrebbero concentrarsi sulla alternativa open che stavano sviluppando il consorzio delle varie big e Little.
Non ho capito cosa c'entra la paglia...
l'italiano, questo sconosciuto.
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".