Nel vasto panorama dell’industria, dai provider di servizi cloud ai laboratori di intelligenza artificiale e alle promettenti startup, c’è un ardente desiderio di accedere alle potenti unità di elaborazione grafica (GPU) all’avanguardia. Tuttavia, il mercato si trova attualmente ad affrontare una critica carenza di queste GPU di fascia alta, che sono prevalentemente controllate da un singolo gigante, NVIDIA. Questa crescente domanda da parte delle aziende ha generato una reale scarsità, con l’inevitabile aumento dei prezzi.
Questa situazione rappresenta una sfida cruciale per l’intera industria, e molti temono che questa carenza possa addirittura ostacolare l’innovazione nell’ambito dell’intelligenza artificiale. Quello di cui il settore ha disperatamente bisogno è la concorrenza. Mentre NVIDIA, grazie alla sua lunga esperienza, rimane il leader indiscusso, altri fornitori di GPU, come Intel e AMD, stanno compiendo progressi significativi nel tentativo di colmare il divario con NVIDIA. Tuttavia, la scelta tra questi vari fornitori di GPU è tutt’altro che semplice.
Per molte aziende, la sfida sta nel fatto che il software e le applicazioni sono ottimizzati specificamente per le GPU di un fornitore. Passare da un fornitore di GPU a un altro può quindi comportare la necessità di apportare modifiche significative al codice e condurre a test approfonditi. Inoltre, i driver GPU e le interfacce di programmazione delle applicazioni (API) sono strettamente legati a un fornitore specifico. Le applicazioni che si basano su queste API, come CUDA o OpenCL, potrebbero non essere compatibili con le GPU di altri produttori senza sostanziali modifiche. Questo potrebbe comportare un periodo di transizione complesso e costoso.
Inoltre, i fornitori di GPU offrono spesso kit di sviluppo software (SDK), librerie e strumenti personalizzati per le proprie GPU. Gli sviluppatori fanno affidamento su questi componenti software specifici del fornitore per attività come la programmazione GPU (ad esempio, CUDA per le GPU NVIDIA). Di conseguenza, passare a una GPU di un fornitore diverso richiederebbe la riscrittura o l’adattamento del software per funzionare con il nuovo stack software.
Pertanto, una struttura software aperta che semplifichi la scelta dei fornitori di GPU sarebbe senza dubbio un vantaggio significativo per la comunità dell’intelligenza artificiale, secondo le parole di Mohammed Imran KR, Chief Technology Officer di E2E Networks. Oltre a semplificare la scelta tra i fornitori di GPU, una struttura software aperta eliminerebbe i vincoli legati al fornitore a lungo termine, consentendo a ricercatori e sviluppatori di intelligenza artificiale di selezionare le GPU in base alle loro esigenze specifiche.
Imran aggiunge: “Porterebbe anche a un ambiente più competitivo, incoraggiando i produttori di GPU a innovare e offrire soluzioni hardware migliori per i carichi di lavoro di intelligenza artificiale. Inoltre, contribuirebbe a ottimizzare i costi, poiché le organizzazioni potrebbero selezionare le GPU in base alle prestazioni e ai costi, massimizzando così le risorse disponibili”.
Inoltre, un ambiente aperto promuoverebbe la collaborazione all’interno della comunità dell’intelligenza artificiale. Strumenti e interfacce standardizzate renderebbero più semplice per gli sviluppatori e i ricercatori lavorare con diverse piattaforme GPU, accelerando il progresso della tecnologia AI. “Inoltre, questo approccio si allinea con le tendenze del settore che favoriscono soluzioni open source e l’interoperabilità, consentendo alle aziende di costruire stack tecnologici adattabili”, ha dichiarato Shivam Arora, Responsabile Marketing di Compunnel.
Tuttavia, è importante tenere presente che lo sviluppo e il mantenimento di una struttura così aperta richiederebbero un coordinamento tra i fornitori di GPU, gli sviluppatori di software e la comunità dell’intelligenza artificiale. “Anche se si otterrà maggiore flessibilità, potrebbero sorgere problemi legati all’ottimizzazione delle prestazioni”, avverte Sanjay Lodha, Presidente e CEO di Netweb Technologies.
Un’opzione esistente che si avvicina all’idea di un’architettura software aperta è OpenCL, lanciata nel 2009 da Apple e dal Khronos Group con l’obiettivo di fornire uno standard per l’elaborazione eterogenea. Tuttavia, OpenCL presenta alcune sfide significative. Sebbene consenta la scrittura di programmi eseguibili su diverse architetture GPU di diversi fornitori, non offre lo stesso livello di ottimizzazione delle soluzioni specifiche del fornitore, come CUDA di NVIDIA.
Inoltre, attualmente, la maggior parte delle ricerche, dei modelli e dei framework nell’ambito dell’apprendimento automatico si basa su CUDA come piattaforma di programmazione GPU predefinita. Ottenere una vera portabilità tra fornitori tramite OpenCL può risultare difficile, poiché diversi produttori di GPU implementano OpenCL con diversi livelli di conformità e prestazioni.
Tuttavia, vi sono altre opzioni emergenti. Ad esempio, ROCm di AMD offre un’alternativa a CUDA e, interessante, il codice CUDA può essere convertito in codice ROCm utilizzando gli strumenti HIP (Heterogeneous-Computing Interface for Portability) forniti da AMD. Un’altra opzione è oneAPI, che permette alle applicazioni di essere eseguite su GPU Intel, NVIDIA e AMD, aprendo nuove opportunità.
Mentre le aziende potrebbero esaminare fornitori alternativi come Intel, AMD o persino Huawei, è innegabile che allontanarsi da CUDA rappresenterebbe una sfida significativa per il settore. “Riscrivere o adattare il codice esistente potrebbe comportare interruzioni e richiedere una considerevole riqualificazione degli sviluppatori. Tuttavia, l’interesse crescente del settore per le alternative open source indica una crescente volontà di abbracciare il cambiamento”, osserva Arora.
Lodha, invece, si mostra più scettico. Ritiene che sia estremamente difficile per la comunità dell’intelligenza artificiale abbandonare CUDA in favore di un framework di programmazione GPU più aperto, poiché molti modelli di apprendimento automatico sono stati addestrati utilizzando il codice CUDA. “Ciò significa che ricercatori e sviluppatori dovrebbero riscrivere il proprio codice per utilizzare un diverso framework di programmazione GPU.”
Tuttavia, Lodha crede che i vantaggi di un passaggio a un framework di programmazione GPU più open source possano superare i costi e che un ambiente aperto renderebbe più semplice per ricercatori e sviluppatori confrontare le prestazioni delle diverse GPU e selezionare quella più adatta alle proprie esigenze. Inoltre, stimolerebbe la concorrenza tra i fornitori, portando a prezzi più competitivi e a prodotti di migliore qualità.
“Penso che il modo migliore per effettuare la transizione da CUDA a un’alternativa più open source sia farlo gradualmente”, suggerisce Lodha. “Ricercatori e sviluppatori potrebbero iniziare a scrivere nuovo codice in un framework open source, come OpenCL o ROCm. Potrebbero anche iniziare a trasferire il codice CUDA esistente su un framework open source. Anche se ci sono già strumenti per questo processo, è comunque necessario un impegno significativo nella programmazione”.
Imran concorda, affermando che garantire la compatibilità con altri componenti dello stack software e ottenere una vera portabilità tra fornitori è una sfida al momento, ma crede che nel lungo termine ci saranno alternative valide e che ci siano molte ragioni convincenti per adottarle. “Queste alternative contribuiranno a ridurre la dipendenza da un singolo fornitore, a promuovere l’interoperabilità e a creare un ecosistema di GPU più variegato”.