ZLUDA è un software open source che consente di eseguire su GPU AMD le applicazioni CUDA, sviluppate utilizzando la tecnologia di parallel computing NVIDIA. Questa innovazione ha rappresentato un cambiamento significativo poiché CUDA è ampiamente utilizzata nei settori della produttività e dell’intelligenza artificiale. Disporre di un’alternativa aperta a NVIDIA CUDA è cruciale proprio perché l’utilizzo della tecnologia è stata storicamente limitata alle GPU progettate e prodotte dalla società di Jensen Huang.
AMD ha finanziato il progetto ZLUDA, mantenuto da Andrzej Janik, in modo discreto. L’obiettivo era quello di promuovere lo sviluppo di un’implementazione di CUDA compatibile con le proprie GPU, basata su ROCm.
ROCm (Radeon Open Compute) è una piattaforma software aperta di AMD progettata per supportare l’elaborazione eterogenea su diverse architetture di accelerazione, inclusi i processori grafici AMD e altre unità di elaborazione. ROCm mette a disposizione il supporto per diverse API di programmazione, tra cui HIP, OpenCL e ROCm Language Extensions (RocL).
AMD cambia idea e dispone la chiusura del progetto ZLUDA
Come riportato dallo stesso Janik sul repository ufficiale di ZLUDA, la novità è che i vertici di AMD hanno prescritto di ritirare il codice del progetto, di fatto ponendo la parola fine allo sviluppo dell’importante iniziativa.
ZLUDA era originariamente un’implementazione open source di CUDA per le schede grafiche Intel, costruita sullo stack software Level Zero (da cui il nome scelto per il progetto). Durante il lavoro su ZLUDA, Janik è riuscito a far funzionare perfettamente varie applicazioni CUDA sulle GPU AMD. Così, l’impegno profuso da Janik ha raccolto il favore di AMD che ha preso ZLUDA sotto la sua ala.
Nel frattempo, NVIDIA ha ritenuto di dover “marcare il territorio” e ha fatto presente che tutte le soluzioni capaci di eseguire codice CUDA su hardware diverso da quello NVIDIA non possono essere ritenuti accettabili.
Diversamente da ciò che si potrebbe pensare, il ritiro del codice di ZLUDA non è dovuto alle minacce legali di NVIDIA (che non sono mai arrivate, almeno non in modo diretto) ma a una scelta di AMD.
Cosa succederà adesso
L’accordo tra Janik e AMD prevedeva che il codice di ZLUDA potesse essere reso open source. Ciò è avvenuto a febbraio 2024, con un rilascio che pose una storica pietra miliare per l’esecuzione di codice CUDA su piattaforme non-NVIDIA.
AMD ha deciso di ritirare il supporto per il progetto ZLUDA, interrompendo il finanziamento e rescindendo il contratto con il responsabile del progetto, Janik. Le ragioni specifiche di questa decisione non sono state rese pubbliche.
A questo punto il problema non è tanto l’accesso al codice di ZLUDA: nel tempo sono stati creati dei fork ovvero dei progetti derivati su GitHub che contengono una copia del lavoro svolto. Il punto focale risiede nella licenza: quel codice non è verosimilmente riutilizzabile così com’è.
Tanto che Janik spiega di avere l’intenzione di ricostruire ZLUDA partendo dalla base di codice “pre-AMD”. E avrebbe anche un finanziatore pronto a fungere da mecenate per il nuovo progetto. Lo sviluppatore chiarisce tuttavia che ZLUDA 2.0 si muoverà in un ambito differente e certe caratteristiche, finora presenti, non torneranno. Janik ha evidenziato che aveva anche costruito un’implementazione di NVIDIA GameWorks funzionante su GPU AMD: purtroppo quel codice non sarà mai reso open source.
Sarà molto interessante, a questo punto, capire quale saranno le future evoluzioni di ZLUDA dopo la battuta di arresto imposta da AMD.
Credit immagine in apertura: NVIDIA