In una luminosa mattina californiana del novembre 2010, Jensen Huang, fondatore, presidente e CEO di NVidia, presentava la roadmap della “nuova NVidia”: la “prima NVidia” fu la compagnia “PC graphics”; la seconda, “Programmable GPU”; la nuova direzione della società è “NVidia: The Processor Company”. Non più solo computer grafica, quindi, ma una vera compagnia di microprocessori e GPU.
La nuova direzione è perfettamente comprensibile se si considera il “lato oscuro” della Legge di Moore: dire che “ogni due anni si raddoppia il numero di transistor per chip” equivale a dire che “ogni due anni la stessa funzione può essere implementata in metà dell’area”. Questo è quello che è successo a chi produceva chip audio: la maggior parte di noi, dieci o più anni fa, aveva una scheda audio discreta nel PC. Ma quello che allora richiedeva una scheda discreta, oggi viene implementato in un millimetro quadrato di silicio in un angolo di una CPU o GPU o chipset sulla motherboard. La corsa dell’alta tecnologia non perdona: se non si cresce si finisce all’angolo, accessorio di qualcun altro, con valore aggiunto nullo.
Dato abbastanza tempo anche una GPU potrebbe diventare un accessorio con poco valore aggiunto, implementata in pochi millimetri quadrati, nell’angolo di quella CPU che è e sarà il cuore del computer. Questa è la strategia di Intel per combattere i produttori di GPU: implementarle all’interno della CPU per farle scomparire come mercato indipendente. La strategia di NVidia, opposta, è quella di produrre GPU il più programmabili possibile, capaci di strappare compiti alla CPU e porsi come alternativa appetibile per la computazione ad alte prestazioni. In poche parole: “The Processor Company”.
Ma il mercato dei processori e del software è, contro-intuitivamente, molto conservativo: il numero di applicazioni e linee di codice e prodotti sviluppati per x86 è sterminato e nessuno ha il minimo incentivo a cambiare architettura e aggiornare l’intero parco software a meno di non ottenere vantaggi enormi… o a meno che non si aprano nuovi scenari in cui le precedenti regole e convenzioni non valgono più.
Questo è quello che sta succedendo in questi anni in due campi molto importanti:
- mobile: il “mobile computing” è il nuovo PC: crescita esplosiva, molti produttori di processori e sistemi operativi in competizione, un futuro tutto da scrivere; c’è spazio per degli outsider come NVidia, e c’è spazio per produttori non x86
- calcolo ad alte prestazioni (HPC): la terascale è ormai acqua passata, la petascale è stata raggiunta; la exascale è la prossima frontiera e non sembra che la si possa raggiungere semplicemente mettendo insieme alcune centinaia di migliaia di processori standard in rack; i problemi di consumo di energia e la banda richiesta per collegare le unità di computazione tra loro non sono più aggirabili: ci vuole qualcosa di nuovo, servono nuove architetture hardware e software per raggiungere l’obiettivo
Entrambe queste sfide rappresentano elementi di rottura col passato. Ecco che all’improvviso esiste lo spazio di manovra per un nuovo giocatore.
GPU: Il Core Business
Nonostante i recenti annunci (e la mia stessa introduzione) NVidia rimane una società GPU-centrica. Questo è ovvio, dato che la quasi totalità del suo know-how e dei suoi brevetti è legata al mondo della computer grafica. Prima di guardare ai nuovi mercati è quindi necessario vedere come procede il Core Business.
Fermi sarà ricordato più per i suoi problemi che per i suoi meriti. Nove mesi di ritardo sulla concorrenza e consumi imbarazzanti (almeno nella prima versione) è quello che la maggior parte di noi ricorderà. Ma Fermi è quasi alle spalle: c’è ancora qualche chip che deve uscire (il 550, il 590 e qualcosa per il mondo mobile) ma ormai è il 2011, e NVdia e AMD stanno ormai gareggiando per chi uscirà prima con le nuove architetture a 28nm. Kepler è a buon punto e dovrebbe arrivare da qualche parte nella seconda metà dell’anno, probabilmente insieme a Northern Islands. Dell’architettura successiva, Maxwell, è iniziato lo sviluppo e sono cominciati gli studi preliminari di quello che verrà dopo Maxwell. E nonostante il consumo “esagerato” le GPU Fermi possono essere dei processori molto efficienti per alcuni tipi di applicazioni: una GPU ha una potenza di picco di alcune centinaia di GFLOPS in floating-point contro le decine di una CPU; può consumare 3 volte tanto e comunque essere 3 volte più efficiente in termini di FLOPS/Watt (cioè operazioni al secondo per Watt). Non è un caso se il supercomputer oggi in cima alla Top500 è un ibrido di CPU e GPU.
Il problema che NVidia ha avuto con Fermi è lo stesso problema che Intel ebbe col Pentium4: in genere le compagnie continuano a spingere le prestazioni fino a che i chip non fondono e solo a quel punto si rendono conto che qualcosa non va e cambiano rotta. Intel lo fece abbandonando l’architettura Netburst e passando a Core, barattando la corsa ai GHz con al corsa ai core e ad una nuova attenzione all’efficienza energetica.
NVidia si è trovata collo stesso problema, con un po’ di anni di ritardo. Fermi è stato progettato per spingere al massimo le prestazioni a discapito del consumo di energia, ma questo compromesso non è più valido. Nei chip moderni il vincolo fondamentale non è più il numero di transistor che si riesce a mettere su un chip ma la potenza che si può dissipare. La legge di Moore ci dice che, anno dopo anno, possiamo mettere più transistor per unità di area, ma non ci dice come tradurli in potenza di calcolo utile. Oggi abbiamo raggiunto i limiti di calore dissipabile: le prestazioni sono vincolate unicamente dalla potenza termica. In altre parole, le prestazioni per Watt equivalgono alle prestazioni assolute, perchè non possiamo più aumentare il consumo di energia.
Kepler è la prima correzione di rotta che fa tesoro delle lezioni imparate con Fermi, allo stesso modo in cui Core fu la correzione di Intel a Netburst. Ma cambiare paradigma di progettazione (da performance-driven a power-driven) è molto complesso: richiede aggiornamenti delle tecniche di progettazione, delle metodologie di sviluppo e nell’educazione dei progettisti. Kepler è il primo passo e Maxwell farà ancora meglio, man mano che le nuove tecniche vengono affinate e le lezioni assimilate.
Ad ogni modo Kepler non sarà solo un “Fermi con alcune migliorie ai consumi” ma avrà parecchie innovazioni architetturali. Per quel che riguarda il GPGPU verranno supportate le nuove Computing Capabilities di CUDA che permetteranno di aumentare l’efficienza di utilizzo dei CUDA Core e diminuire il traffico avanti e indietro sul PCI-Express. I dettagli non sono ancora stati rilasciati al pubblico, ma è questione di pochi mesi ormai.
CPU: La nuova via
Gossip. Rumor. Indiscrezioni e smentite. Questo quello che per anni ha caratterizzato il “Progetto CPU” di NVidia, fino alla bomba sganciata da Jensen in persona al CES lo scorso gennaio: sì, NVidia sta progettando la propria CPU. No, non è x86: è ARM e si chiama Denver.
A posteriori la scelta appare quasi ovvia: non è possibile combattere contro Intel nel suo giardino di casa (x86), AMD ci ha provato per decenni e non è mai andata oltre il 20% di market share, e le risorse che NVidia può mettere in campo sono molto più esigue. Molto meglio andare con una architettura più moderna, con licenze più flessibili e che combatte in un mercato dove non esistono ancora leader monopolistici: insomma, un’architettura che lascia spazio di manovra ad una compagnia piccola ma aggressiva.
NVidia ha ottenuto una licenza architetturale (come quella che ha Qualcomm) che le permette non solo di usare i core standard sviluppati da ARM (come il Cortex A9 che equipaggia Tegra2 e Tegra3) ma anche di sviluppare i propri processori usando la ISA ARM. ARM ha annunciato da un po’ di tempo la sua intenzione di competere all’interno dello spazio server con soluzioni a basso consumo energetico; considerando la presenza di NVidia all’interno dello spazio supercomputer, una sinergia ARM + CUDA non è così assurda: un processore ARM ad alte prestazioni per il codice sequenziale accoppiato ad una GPU su cui eseguire del massiccio codice floating-point parallelo, in un approccio stile “Fusion” di AMD. Queste le armi che NVidia sta affinando per portare battaglia nel cortile di Intel.
Tegra2, Kal-El e altri supereroi
Ma la vera notizia di quest’anno per NVidia è, naturalmente, il successo di Tegra. Dopo anni infruttuosi, dove la piattaforma non ha ottenuto alcun successo commerciale, Tegra2 è stato l’evento del CES 2011, battendo (almeno in termini di numero di articoli pubblicati sui vari siti) il nuovo Sandy Bridge di Intel.
Nel giro 6 settimane sono stati presentati molti design win (prodotti Motorola, LG e Samsung), alcune soluzioni innovative e interessanti (Atrix), il primo sample funzionante di Tegra3 (appena 12 giorni dopo averlo ricevuto dalle fonderie taiwanesi) e il pezzo grosso: essere la Reference Design Platform per Honeycomb, la prima release di Android specificatamente progettata per i tablet. La borsa ha apprezzato, col titolo che è salito del 70% nel solo mese di gennaio.
Il motivo di questa rapidità nel presentare nuovi prodotti è probabilmente quello abbozzato da Anand: approfittare dell’essere abituati alla tradizionale velocità del mondo PC rispetto al mondo mobile per proporre una roadmap estremamente aggressiva e costringere i concorrenti a forzare le tappe (aumentando la probabilità di fare errori) o ad uscire dal mercato. Qualcomm e TI hanno risposto coi loro grossi calibri: Krait (core ARM “fatto in casa” dal team di Snapdragon) e OMAP5 (basato sul Cortex A15), i cui primi sample dovrebbero arrivare però quando ormai i primi prodotti Tegra3 saranno già usciti (o almeno questo è quello che NVidia ha lasciato intendere al World Mobile Congress: scopriremo la verità nei prossimi mesi). Le seconde versioni di Krait (con 4 core) e OMAP5 si scontreranno probabilmente con Wayne, di cui ancora non sono noti i dettagli.
Dal 2012 dovremmo vedere poi GPGPU anche sui prodotti mobile: NVidia integrerà CUDA in Tegra da qualche parte nel 2012-13 (a partire da Wayne o Logan) e TI ha annunciato che OMAP5 supporterà OpenCL. L’accelerazione hardware di molte funzioni permetterà di ottenere prestazioni ancora superiori con consumi più bassi ed è la prossima frontiera da raggiungere.
Sinergie
Il piano di battaglia di NVidia si è quindi ben delineato negli ultimi 2 mesi. Sfruttando l’esperienza decennale nella progettazione di GPU e l’esperienza fatta con ARM dai team Tegra e Denver (il cui sito principale è a Beaverton, Oregon: il fatto che sia di fianco al principale sito Intel in Nordamerica è naturalmente un caso :) la compagnia è in grado di generare sinergie across the board.
NVidia continuerà a spingere sul GPGPU “made in CUDA” aggiungendo nuove Computing Capabilities ad ogni nuova architettura; lo scopo è quello di fornire un’architettura più flessibile, potente, efficiente, facile da programmare e impiegabile in un maggior numero di ambiti, oltre a stare avanti alle soluzioni concorrenti (OpenCL); il fatto che il Los Alamos National Laboratory collocherà il proprio High Performance Computing (HPC) Symposium nel GTC è un chiaro indice dell’interesse che il GPGPU sta riscuotendo in ambito professionale/supercomputer (molto maggiore di quello in campo consumer, per ora molto limitato).
Questa tecnologia verrà integrata, nel prossimo paio d’anni, con i core ARM del progetto Denver per produrre processori ibridi per applicazioni HPC: in questo modo NVidia cercherà di eliminare i processori Intel dalle proprie soluzioni Tesla e offrire una soluzione completamente fatta in casa (con margini molto più elevati). Queste soluzioni dovrebbero poi migrare nel settore desktop, ma come e quando è attualmente ignoto. NVidia e ARM non sono in grado di costruire processori con prestazioni paragonabili a quelli di Intel, ma ci sono alcune applicazioni estremamente parallelizzabili dove questo non conta: quello sarà il primo obiettivo.
ARM e CUDA saranno il binomio che NVidia sfodererà anche nel campo mobile, man mano che Android sarà in grado di supportare più core e GPGPU.
Sono queste le due tecnologie su cui NVidia punta per attaccare l’intero mercato, dai supercomputer agli smartphone. Più sinergie vuol dire più penetrazione del mercato, maggiore efficienza del design (grazie al riuso delle stesse tecnologie in più prodotti) e, alla fine, profitti più elevati.
Conclusioni
Sono tempi eccitanti!
Nel giro di due anni l’intero quadro è cambiato come non succedeva da molto tempo. Intel non domina il mercato in più rapida espansione (anzi, è in ritardo); iOS e Android stanno ridisegnando il modo di usare i computer; Microsoft supporterà ARM. Per la prima volta dopo molti anni si aprono orizzonti nuovi e la partita comincia a farsi interessante di nuovo.
Non tutti i protagonisti di oggi sopravviveranno a questa rivoluzione: i prossimi (pochi) anni determineranno i nuovi equilibri nel campo della computazione.