martedì, Novembre 19, 2024

L’egemonia di NVidia su CUDA e l’uso di translation layer

**VIETATO ESEGUIRE CUDA SU Hardware DIVERSO DAI DISPOSITIVI NVIDIA**

Acronimo di **Compute Unified Device Architecture**, **CUDA** è una Tecnologia sviluppata da NVidia che consente di utilizzare le sue GPU per scopi di elaborazione di carattere generale, che vanno quindi ben oltre il tradizionale rendering grafico. CUDA apre la porte per l’utilizzo delle GPU NVidia al fine di gestire **operazioni di calcolo ad alte prestazioni**.

La tecnologia è infatti spesso utilizzata in ambiti applicativi come la simulazione scientifica, l’analisi dei dati, l’elaborazione di Immagini, la Grafica 3D e l’Intelligenza Artificiale: si tratta di campi in cui il **calcolo parallelo** può portare a significativi miglioramenti delle prestazioni. Le GPU contengono centinaia o migliaia di core di elaborazione, consentendo di gestire simultaneamente molte operazioni in contemporanea.

**COS’È UN TRANSLATION LAYER E PERCHÉ NVIDIA NON NE PERMETTE L’UTILIZZO CON CUDA**

Un **translation layer** o “strato di traduzione” è un componente Software che si colloca tra due sistemi o componenti diversi, fungendo da intermediario. L’obiettivo è quello di abilitare le comunicazioni tra entità originariamente incompatibili e favorirne l’interoperabilità. NVidia ha ufficialmente modificato le **condizioni di licenza** per l’utilizzo della tecnologia CUDA impedendone l’adozione su piattaforme e hardware diversi dai suoi. Realizzato da Andrzej Janik, ingegnoso sviluppatore che ha “militato” prima nelle fila di Intel per poi passare nel team di AMD, **ZLUDA** è di fatto un’alternativa open source a CUDA che agisce come un **translation layer**.

Il concetto è appunto quello di sfruttare la **potenza di calcolo** delle GPU di altri produttori, come AMD o Intel, per eseguire applicazioni CUDA. Con l’intervento sulle clausole contenute nei termini di licenza della tecnologia CUDA, l’azienda guidata da **Jensen Huang** vieta specificamente l’uso di **translation layer** per eseguire applicazioni CUDA su hardware non-NVidia. Una mossa interpretabile come il tentativo di preservare l’egemonia di NVidia nel settore dell’**accelerazione computazionale**. La società con sede principale a Santa Clara (California) non ce l’ha solo con ZLUDA ma anche, almeno così sembra, con diverse realtà cinesi – tra cui un’impresa direttamente finanziata dal governo di Pechino – che hanno platealmente ammesso di usare codice CUDA su GPU non-NVidia.

**L’UNICA ALTERNATIVA AL TRANSLATION LAYER AMMESSA DA NVIDIA**

Ricompilare i programmi CUDA esistenti rimane invece, ovviamente, del tutto lecito. Per semplificare queste attività, sia AMD che Intel forniscono strumenti per portare le applicazioni sviluppata in CUDA sulle loro piattaforme **ROCm** e **OpenAPI**. Man mano che AMD, Intel, Tenstorrent e altre aziende sviluppano hardware più performante, sempre più sviluppatori di software saranno inclini a progettare per queste piattaforme e la leadership fino a ieri indiscussa e indiscutibile di NVidia potrebbe iniziare a vacillare. Per questo NVidia, prova a porre in campo le sue contromisure e a difendere lo **status quo**. Inutile dire, però, che i tentativi di chiusura, l’erigere una barricata intorno a CUDA, potrebbero essere atteggiamenti malvisti dagli enti che si occupano di concorrenza. **L’immagine in apertura è tratta dal sito ufficiale NVidia**.

Questo articolo analizza la situazione attuale attorno alla tecnologia CUDA sviluppata da NVidia e il divieto imposto dall’azienda sull’utilizzo di **translation layer** per eseguire applicazioni CUDA su hardware non-NVidia. Con il panorama in continua evoluzione nel settore della computazione parallela, sarà interessante seguire gli sviluppi futuri e le risposte degli altri attori del mercato alle strategie di NVidia. **Michele Nasi**.

ARTICOLI COLLEGATI:

ULTIMI ARTICOLI: