Information Technology
Dalla console 3D al supercomputer: lezioni di progettazione dei sistemi
Quando si parla del Nintendo 64 (N64), solitamente ci si concentra sui giochi che per la prima volta hanno reso gli ambienti 3D intuitivi e realistici. Ciò che è meno noto è che questa svolta non è stata il risultato esclusivo dell’innovazione nel campo dell’intrattenimento[1], ma ha attinto a decenni di lavoro ingegneristico nel campo dell’high performance computing, in particolare in settori quali la simulazione di volo, la visualizzazione scientifica e il rendering in tempo reale.
Questa premessa è importante perché la storia delle moderne GPU e dei supercomputer AI viene spesso raccontata in modo unidirezionale: i giochi hanno dato origine ai processori grafici, che in seguito sono diventati essenziali per l'intelligenza artificiale. Sebbene sia vero, si tratta di una visione incompleta. Molto prima che le GPU diventassero fondamentali per l'intelligenza artificiale, il calcolo scientifico e quello enterprise avevano già stabilito molti dei principi che hanno reso possibile la grafica avanzata: elaborazione parallela, trasferimento veloce dei dati, memoria condivisa e sistemi strettamente integrati.
Silicon Graphics Inc., o SGI, ha contribuito a portare questi principi nel visual computing, e le sue tecnologie e la sua cultura ingegneristica sono poi diventate parte di HPE, dove sono state portate avanti ed espanse per alimentare alcuni dei supercomputer più veloci di oggi.
La struttura alla base della console
Per capire perché quella console è stata così importante, è utile esaminarne la struttura.
Fondamentalmente, il sistema combinava due elementi principali. In primo luogo, un processore centrale, o CPU, progettato per gestire le attività generali in modo rapido ed efficiente. In secondo luogo, una componente grafica e multimediale dedicata, sviluppata grazie all’esperienza di SGI e basata su idee utilizzate nelle workstation di fascia alta per il cinema, il design e le applicazioni scientifiche.
In termini semplici, la console divideva il lavoro. La CPU gestiva la logica generale del gioco, mentre l'hardware grafico si concentrava sulla creazione delle immagini sullo schermo. Questa divisione era importante, ma la vera svolta non era rappresentata da un singolo componente, bensì dal modo in cui i componenti interagivano attraverso una veloce architettura a memoria condivisa.
Molte delle tecniche alla base della N64, come l'applicazione delle texture e l'elaborazione parallela delle immagini, erano già utilizzate nei sistemi professionali. La sfida era adattare queste idee a un dispositivo compatto e accessibile, preservando al contempo prestazioni sufficienti a rendere fluido il 3D in tempo reale.
Questo consegnò alla console una delle lezioni più importanti per l'informatica moderna: le prestazioni non riguardano solo la velocità di calcolo di un processore, ma anche la capacità del sistema di fornire dati a ogni componente al momento giusto. Se il trasferimento dei dati diventa un collo di bottiglia, anche il processore più veloce del mondo passerà comunque troppo tempo in attesa.
Dal parallelismo grafico al computing accelerato
Una seconda lezione è stata tratta dalla grafica stessa: alcuni problemi sono troppo complessi per essere risolti in modo efficiente un passo alla volta.
Prendiamo ad esempio la grafica 3D. Prima che qualsiasi cosa appaia sullo schermo, il sistema deve trasformare ogni oggetto nello spazio: posizionarlo, ruotarlo, proiettarlo sullo schermo e calcolare come reagisce alla luce. Nella console, questo lavoro era gestito da un processore vettoriale dedicato derivato dalle workstation SGI.
La vera sfida arriva dopo: trasformare la geometria in pixel. Ogni frame richiede il calcolo del colore di milioni di pixel, l'applicazione di texture, la risoluzione della profondità e la fusione delle superfici decine di volte al secondo. Questo lavoro non può essere svolto in modo sequenziale, motivo per cui i sistemi grafici sono stati progettati per elaborare molti pixel in parallelo.
La svolta è stata il parallelismo, ovvero l'esecuzione simultanea di molti calcoli simili. Questo punto richiede una precisazione, perché l'elaborazione parallela non è nata con la grafica. I supercomputer basati su CPU utilizzavano da tempo il parallelismo collegando molti processori generici in modo che potessero lavorare insieme su grandi problemi scientifici. Ciò che la grafica ha aggiunto è stato un diverso tipo di parallelismo, ottimizzato per applicare operazioni simili su grandi volumi di dati visivi. Gli ingegneri si sono resi conto che questo modello orientato alla produttività poteva essere utile ben oltre il campo della grafica: non ha sostituito il supercalcolo basato su CPU, ma lo ha integrato, con GPU che fungono da acceleratori per carichi di lavoro altamente paralleli mentre le CPU continuano a gestire l'orchestrazione, il controllo e il coordinamento più ampio del sistema.
Questa intuizione ha portato a ciò che oggi chiamiamo GPGPU, ovvero l’elaborazione generica su GPU, un elemento fondamentale dell’AI. L’addestramento di una rete neurale, ad esempio, si riduce per lo più alla ripetizione di semplici calcoli, come la moltiplicazione e l’addizione di numeri, su set di dati molto grandi. Ciò si adatta bene a un hardware progettato per elaborare molte operazioni simili in parallelo.
Questo porta alla terza e più importante lezione: un chip veloce non rende automaticamente veloce un computer. Seymour Cray, il padre del supercalcolo moderno e il visionario dietro quella che oggi è la tecnologia Cray di HPE, ha dichiarato in una famosa osservazione: “Chiunque può costruire una CPU veloce. Il trucco sta nel costruire un sistema veloce”. Nell’era dell’exascale, la stessa logica si applica alle GPU. La potenza di elaborazione grezza è importante, ma è l’architettura attorno al processore a determinare se tale potenza possa essere utilizzata in modo efficace.
Perché il sistema è più importante del chip
Nintendo 64 ha dimostrato come un'integrazione accurata potesse rendere la grafica avanzata praticabile su un dispositivo compatto destinato al grande pubblico. Non si trattava semplicemente di prendere la tecnologia delle workstation e ridimensionarla, ma di bilanciare prestazioni, costi, memoria, trasferimento dei dati e reattività in tempo reale in un dispositivo progettato per essere utilizzato in ambiente domestico.
I supercomputer moderni risolvono una versione molto più ampia dello stesso problema. Invece di coordinare la CPU, il sottosistema grafico e la memoria di una console, devono collegare un numero enorme di CPU, GPU, sistemi di memoria, livelli di archiviazione e componenti software in modo che si comportino come un'unica macchina coerente. Senza questa progettazione a livello di sistema, le prestazioni si riducono rapidamente, indipendentemente dalla potenza dei singoli processori.
È qui che l’eredità Cray di HPE diventa decisiva. Frontier, il primo supercomputer exascale al mondo, capace di oltre un quintilione di operazioni al secondo, è stato costruito sull’architettura HPE Cray EX. Le sue prestazioni non si spiegano solo con le GPU. Derivano dalla combinazione di CPU, GPU, interconnessione ad alta velocità, progettazione della memoria, storage e software che funzionano come un unico sistema. Rispetto ai primi sistemi Cray, la sfida di base rimane la stessa: ridurre al minimo i tempi di attesa, massimizzare il calcolo utile e mantenere i dati in movimento. Ciò che è cambiato sono la scala, la densità e la complessità dell'architettura. L'exascale richiede il coordinamento di un lavoro parallelo molto più esteso su un numero molto maggiore di componenti, controllando al contempo la latenza, la potenza e il movimento dei dati a un livello che i sistemi precedenti non hanno mai dovuto affrontare.
Un percorso ingegneristico senza fine
Le console domestiche non hanno inventato i principi del supercalcolo, ma ne hanno tradotto alcuni in una forma accessibile al grande pubblico: compatta, economica, altamente integrata e incentrata sulle prestazioni in tempo reale. È proprio questa trasposizione a rendere la console un importante punto di riferimento.
Oggi, quegli stessi principi vengono applicati nella direzione opposta e su una scala radicalmente più ampia. L'intelligenza artificiale e la ricerca scientifica dipendono da sistemi in grado di suddividere il lavoro in modo intelligente, elaborare molte attività in parallelo e trasferire i dati abbastanza velocemente da non lasciare inattive le risorse di calcolo. Il legame tra la console di gioco e l'exascale non sta nel fatto che l'una abbia creato direttamente l'altra, ma nel fatto che entrambe riflettono la stessa disciplina ingegneristica: progettare ogni parte di un sistema in modo che le prestazioni non rimangano intrappolate all'interno di un singolo componente.
Dal design della memoria condivisa delle console all'architettura dell'intero sistema di Frontier, la domanda è rimasta la stessa: come si costruisce un sistema in grado di eliminare ogni tempo di attesa? La risposta di HPE si è evoluta attraverso workstation, supercomputer Cray e i sistemi di AI odierni, ma l'idea di fondo è la stessa. Il futuro dell'informatica non sarà definito solo da chip più veloci, e nemmeno dai chip quantistici, ma dalla capacità di trasformare molte componenti potenti in un unico sistema coerente.