È ormai evidente che in questa competizione nell’ambito dell’intelligenza artificiale, il vero vincitore è NVIDIA, che si sta rivelando come il principale beneficiario. L’azienda ha solidamente stabilito la sua leadership di mercato nella categoria dell’hardware, grazie alle sue GPU ampiamente adottate dalle aziende operanti nel mondo dell’intelligenza artificiale. Ma non è tutto qui: NVIDIA è anche in prima linea nella battaglia del software, grazie al suo potente strumento CUDA (Computing Unified Device Architecture).
CUDA, fondamentalmente, funge da connettore magico tra il software e le GPU NVIDIA. È come una stretta di mano che consente agli algoritmi di intelligenza artificiale di sfruttare la potenza di calcolo di queste potenti unità grafiche. Ma il vantaggio di NVIDIA va oltre: CUDA non è soltanto un semplice incantesimo, ma un’API di basso livello chiusa che avvolge il software attorno alle GPU NVIDIA, creando un ecosistema di calcolo parallelo. È così potente che anche i concorrenti più formidabili, come AMD e Intel, fanno fatica a raggiungere il suo livello di raffinatezza.
Mentre altri protagonisti come Intel e AMD cercano di bilanciare tra l’uno e l’altro, NVIDIA è riuscita a padroneggiare entrambi gli aspetti. Le sue GPU sono eleganti, potenti e ambite, e non è una coincidenza che abbia gettato le basi anche per il software che ottimizza al massimo le prestazioni di queste macchine.
Non è semplice per le aziende software entrare e prendere il posto di NVIDIA, poiché spesso mancano delle competenze legate all’hardware. D’altra parte, i produttori di hardware hanno difficoltà ad entrare nel campo del software. Ed è qui che CUDA si dimostra il segreto del successo di NVIDIA nell’ambito dell’intelligenza artificiale.
Nel 2006, NVIDIA ha lanciato CUDA, rivoluzionando l’elaborazione parallela su più GPU. In passato, gli sviluppatori si affidavano a modelli come il Direct3D di Microsoft o l’OpenGL di Linux per le elaborazioni GPU, ma mancavano di capacità di calcolo parallelo. Con l’introduzione di CUDA, le aziende hanno riorientato le loro strategie per abbracciare questa nuova tecnologia. Benché nel 2009 sia stata lanciata anche l’alternativa OpenCL da parte del Khronos Group, ormai tutte le aziende si erano già allineate a CUDA, rendendo il campo poco accessibile ad altre soluzioni.
Sebbene la strategia attuale di NVIDIA sembri solida, ci sono comunque alcuni svantaggi da considerare. Nonostante CUDA rappresenti una barriera in difesa di NVIDIA, la sua enfasi sulla fascia alta e sui costosi servizi per data center potrebbe aprire spazio a concorrenti che offrono soluzioni più accessibili.
Inoltre, il mercato soffre ancora di una cronica carenza di GPU, sebbene alcuni stiano considerando l’idea di passare ad alternative come AMD o Intel. Sembra quasi che gli appassionati di tecnologia preferiscano affrontare sfide piuttosto che limitarsi a una GPU di un’unica azienda.
La supremazia di NVIDIA è in parte legata alla mancanza di restrizioni di RAM nelle sue GPU per i consumatori. Tuttavia, questa situazione potrebbe cambiare, poiché la richiesta sta spingendo lo sviluppo di software che possa sfruttare al massimo le GPU per consumatori, magari attraverso soluzioni open source o proposte dei concorrenti.
Sia Intel che AMD hanno la possibilità di mettere in discussione il dominio di NVIDIA, a patto che non imitino l’approccio di fascia alta di quest’ultima. Invece, dovrebbero concentrarsi su GPU potenti ma accessibili e su soluzioni open source. Per distinguersi, dovrebbero evitare di imporre limitazioni artificiali alle capacità delle GPU, una tattica che NVIDIA utilizza per spingere gli utenti verso le sue costose GPU per data center.
Nonostante le restrizioni attuali, molti sviluppatori preferiscono comunque le GPU consumer di NVIDIA rispetto a Intel o AMD per lo sviluppo di machine learning. Le continue innovazioni in queste GPU più piccole stanno spingendo sempre più persone a considerarle per i loro progetti.
È interessante notare come Triton di OpenAI stia emergendo come una possibile alternativa al sistema chiuso di NVIDIA basato su CUDA. Triton, attraverso l’input di PyTorch 2.0 di Meta tramite PyTorch Inductor, sta cercando nuove strade che evitano l’uso delle librerie CUDA di NVIDIA, favorendo soluzioni open source come CUTLASS.
Sebbene CUDA abbia rappresentato un pilastro nell’accelerazione dell’elaborazione, Triton sta ampliando gli orizzonti. Sta unendo i linguaggi, permettendo a quelli di livello superiore di competere in termini di prestazioni con quelli di livello inferiore. I kernel leggibili di Triton stanno aiutando i ricercatori nel campo dell’apprendimento automatico, semplificando la gestione della memoria e dimostrandosi utili anche per operazioni complesse come il Flash Attention.
Attualmente, Triton è supportato solo dalle GPU NVIDIA, ma l’apertura dell’open source potrebbe aprirne la strada a nuove possibilità, segnando un potenziale cambiamento nel panorama. Numerosi fornitori di hardware potrebbero entrare nell’ecosistema Triton, semplificando la transizione verso nuove soluzioni hardware.
NVIDIA, nonostante la sua forza, ha trascurato un aspetto critico: l’usabilità. Questo ha permesso ad OpenAI e Meta di creare una piattaforma software flessibile che funziona su diversi hardware, ponendo la domanda su perché NVIDIA non abbia semplificato CUDA per i ricercatori nel campo del machine learning. La loro assenza in iniziative come Flash Attention è stata notata da molti osservatori.
Nel complesso, NVIDIA ha senza dubbio raggiunto il vertice in termini di dominio dei prodotti. Tuttavia, non dobbiamo sottovalutare le grandi aziende tecnologiche. I fornitori di servizi cloud si stanno adoperando per sviluppare i propri chip, che potrebbero alla fine sfidare le GPU di NVIDIA per la supremazia nel settore dei transistor.
Tuttavia, al momento, tutto questo è ancora un desiderio lontano dalla realtà.