Della “visione” del leggendario progettista di chip Jim Keller abbiamo parlato più volte in passato: impegnato in prima persona su Tenstorrent, società specializzata nella progettazione e nello sviluppo di soluzioni di elaborazione accelerata per le applicazioni di intelligenza artificiale, Keller ha chiarito le sue idee su IA, RISC-V ed edge computing definendo ormai “vecchia” l’architettura x86 perché gravata di tanti fardelli che sono oggi mantenuti principalmente per questioni di retrocompatibilità. In un altro articolo avevamo approfondito il tema paragonando le ISA x86 e ARM.
Perché Jim Keller definisce le architetture x86 e CUDA come delle paludi
In questi giorni, Keller ha espresso dure critiche nei confronti di due pietre miliari nel panorama dei chip: le architetture x86 e CUDA sono definite delle vere e proprie paludi. Il progettista ha infatti evidenziato un aspetto critico di entrambe le architetture: la “stratificazione” che hanno subìto durante la crescita nel tempo e l’accumulo di funzionalità.
Il tutto, come evidenziato nell’introduzione, rende certamente le piattaforme complete e retrocompatibili ma, d’altra parte, le appesantisce con un impatto prestazionale che risulta ormai più che evidente. Secondo Keller, x86 e CUDA sono state costruite “aggiungendo una cosa alla volta“, senza una visione architetturale omogenea e armoniosa.
NVidia CUDA sarebbe un ecosistema ormai troppo frammentato
Abbiamo visto cos’è NVidia CUDA e quanto sia largamente utilizzata, oggi, per il calcolo parallelo. Concentrandosi proprio sulla soluzione sviluppata dall’azienda di Jen-Hsun Huang, Keller sostiene che CUDA ha acquisito diverse “funzionalità specializzate” nel corso degli anni, portando alla creazione di un ecosistema frammentato. L’aggiunta di strumenti specifici, come Triton, Tensor RT, Neon e Mojo, rappresenterebbe una conferma di quella stratificazione che menzionavamo in precedenza e che contribuisce a ingenerare una configurazione software complessa.
“Praticamente nessuno scrive in CUDA“, osserva Keller. “Se scrivi in CUDA, probabilmente non si è veloci. (…) Per questo esistono Triton, Tensor RT, Neon e Mojo“. Anche NVidia stessa dispone di strumenti che non si basano esclusivamente su CUDA. Ad esempio, Triton Inference Server è uno strumento open source di NVidia che semplifica il dispiegamento di modelli IA su larga scala, supportando framework come TensorFlow, PyTorch e ONNX (usato anche da Google).
TensorRT di NVidia è un ottimizzatore che ottimizza le attività di deep learning sulle GPU dell’azienda. Prende modelli addestrati da vari framework, come TensorFlow e PyTorch, e li ottimizza per l’utilizzo “in produzione”, riducendo la latenza e aumentando il throughput. In questo modo, i modelli divengono adatti ad applicazioni di intelligenza artificiale che lavorano in tempo reale per la classificazione delle immagini, il rilevamento degli oggetti e l’elaborazione del linguaggio naturale.
Keller tira l’acqua verso il suo mulino
Per Keller molte piattaforme di sviluppo software per l’IA open source possono essere utilizzate in modo più efficiente rispetto a CUDA.
L’ambizioso piano di Sam Altman, CEO di OpenAI, che vuole “racimolare” qualcosa come 5.000-7.000 miliardi di dollari (attenzione, non milioni bensì miliardi…) ha fatto letteralmente sobbalzare Keller che è attivamente impegnato, con la sua Tenstorrent, nello sviluppo di processori per IA e calcolo ad alte prestazioni (HPC).
Mentre l’industria sta ancora discutendo dei progetti di ampio respiro firmati OpenAI e gli analisti si interrogano sulla fattibilità degli stessi, Keller lancia una dichiarazione shock sostenendo che lui e la sua azienda sono in grado di realizzare quanto Altman ha in mente di fare con un budget inferiore a 1.000 miliardi di dollari.
Il piano di Altman comporta una radicale espansione della catena di approvvigionamento dei semiconduttori, con il rischio di sovra-capacità negli stabilimenti e dell’eccessivo deprezzamento dei processori sul mercato. Keller concorda con il CEO di Nvidia, Huang, su una cosa: è fondamentale che i chip per le applicazioni di IA diventino più sofisticati puntando quindi più sulle funzionalità e in generale sulla qualità che sui “numeri”.
“Cominciate eliminando l’accumulo di margini,” ha scritto Keller, suggerendo a OpenAI di ridurre le varie sovrapposizioni in termini di profitto che aggiunge ogni partecipante nella catena di approvvigionamento (supply chain). Consiglia di non superare due-tre livelli. A questo punto, poi, è cruciale “rendere i chip molto più veloci in modo che che ci sia una corrispondenza diretta tra hardware e software. È più difficile, ma realizzabile“.
Credit immagine in apertura: iStock.com – Digital43