NVIDIA è pronta all'avvento delle IA con la tecnologia Volta e la GPU Tesla V100

NVIDIA sta investendo sul futuro delle IA con la nuova scheda video Tesla V100 basata sulla nuova architettura Volta.

speciale NVIDIA è pronta all'avvento delle IA con la tecnologia Volta e la GPU Tesla V100
Articolo a cura di

Risulta difficile stabilire quale sia l'annuncio di NVIDIA più sorprendente del GTC e del Computex di questo 2017, di certo però non si può dire che l'arrivo della nuova GPU Tesla V100 basata su architettura Volta sia passato in sordina. Infatti al GTC c'è stato un record di 7000 spettatori tra scienziati, ingegneri e giornalisti in attesa che venisse svelata questa nuova tecnologia capace di garantire prestazioni 5 volte superiori all'architettura precedente Pascal. Parliamo di una GPU diversa da quelle concepite per i videogames, in quanto pensata per il Deep Learning e le reti neurali con l'obiettivo di affrontare la rivoluzione della IA che stiamo vivendo. Al Computer 2017 il CEO Jen-Hsun Huang ha focalizzato l'attenzione del pubblico proprio sull'avvento degli algoritmi avanzati di Deep Learning e il concepimento di IA fantascientifiche: per supportarle NVIDIA ha realizzato GPU, supercomputer e servizi Cloud che hanno il compito di fornire la potenza computazionale necessaria a dar vita a questa rivoluzione informatica. Ed è qui che entra in gioco la nuovissima architettura Volta.

La sfida GPGPU per le applicazioni odierne

L'ambito GPGPU (general-purpose computing on graphics processing units) per cui è concepita la Tesla V100 riguarda l'uso della scheda grafica per calcoli complessi svolti in parallelo, piuttosto che in maniera sequenziale come per le classiche CPU dei computer. Lo sviluppo del GPGPU si è reso necessario per ovviare al collo di bottiglia dei processori moderni che non riescono a gestire algoritmi estremamente complessi: sfruttando la parallelizzazione dei calcoli è possibile velocizzarli in applicazioni specifiche come il già citato Deep Learning, o semplicemente simulazioni di tipo scientifico. Ecco perché l'interesse verso questo tipo di soluzione che NVIDIA ha adottato con Volta ha per ora un target specifico che non è quello dei videogiocatori (per i quali sono state sviluppate le GPU GeForce). Parliamo di aziende, come Google o Facebook, che hanno bisogno di GPU rapide nell'image recognition, real time language translation e speech recognition, tutte operazioni che richiedono anche 100 exaflops di potenza per alcuni algoritmi, mentre attualmente i migliori supercomputer possono fornire molto meno di 1 exaflops. I flops (floating point operations per second) misurano le performance di un computer contando il numero di operazioni con virgola mobile che possono eseguire in un secondo, e sono dunque un'unità di misura utile in ambito scientifico e ingegneristico. Con 1 exaflops si intendono 10^18 flops, giusto per far capire quante sono le operazioni che un supercomputer può svolgere in un secondo e quanto sono esosi gli algoritmi complessi del Deep Learning che ne richiedono fino a 100 in un secondo. Per questo NVIDIA ha investito più di 3 miliardi di dollari facendo lavorare circa 5000 ingegneri per 3 anni al fine di realizzare Tesla V100, che da sola riesce a battere 100 CPU in un algoritmo di Deep Learning grazie ai suoi 120 teraflops.

Specifiche tecniche GV100 e Tesla V100

L'architettura Volta, che prende il nome da Alessandro Volta inventore della pila elettrica, non è un semplice aggiornamento della precedente Pascal. C'è stato un cambiamento significativo in termini di thread execution, thread scheduling, core layout, memory controllers, e via dicendo. La scheda video V100 si basa sulla GPU GV100, chip di 815mm2 (quadri) circa, più grande della soluzione Pascal delle dimensioni di 600mm2 circa. La tecnologia scelta è quella dei transistor FinFET a 12nm customizzati per NVIDIA, che ne ha usati ben 21,1 miliardi per la GV100. Quando di parla di 12nm di tecnologia dei transistor ci si riferisce alla grandezza del suo canale, dunque bisogna leggere questo numero come indicatore per la grandezza media del singolo transistor. Più la tecnologia indica un numero piccolo, più è possibile rimpicciolire il chip o integrare un numero maggiore di transistor. Ad esempio l'ultimo Qualcomm Snapdragon 835 del Samsung Galaxy S8 sfrutta la tecnologia a 10nm, attualmente la più avanzata in termini di miniaturizzazione. NVIDIA ha aumentato le dimensioni della GPU del 33% rispetto al passato, sicuramente per evitare problemi con la dissipazione del calore, che diventa critica all'aumentare dei transistor in uno spazio troppo piccolo. In questo modo è possibile effettuare un boost delle performance. GV100 è dotata di 84 SM (streaming multiprocessor), ognuno dei quali consiste (come è visibile nell'immagine) in 64 FP32 CUDA cores, per un totale di 5376 FP32 CUDA cores. A questi si aggiungono 32 FP64 CUDA cores per ogni SM, per un totale di 2688 FP64 CUDA cores, e 8 Tensor cores per ogni SM, un nuovo tipo di core che permette di eseguire operazioni più veloci specifiche per le IA, per un totale di 672 Tensor cores. Il Tensor Core è la grande novità di Volta: può essere pensato come un core poco flessibile ma comunque programmabile pensato in maniera specifica per le operazioni con i tensori nel Deep Learning. In pratica queste unità eseguono operazioni su matrici di numeri 4x4 (ovvero tabelle di numeri aventi 4 righe e 4 colonne), in modo da svolgere tante operazioni con una sola ed aumentare il numero di flops. Per fare un paragone, mentre gli standard CUDA cores in un SM eseguono 256 flops, i tensor cores in un SM eseguono 1024 flops, fornendo il quadruplo della potenza computazionale dell'architettura Pascal (secondo i calcoli appena fatti, mentre NVIDIA dichiara una velocità totale della Tesla V100 5x rispetto alla Tesla P100). Chiaramente parliamo di operazioni che vanno programmate in maniera specifica per i Tensor cores.

Ogni SM contiene 4 texture units e 128KB di cache L1/memoria condivisa configurabile, mentre nell'architettura precedente cache L1 e memoria condivisa erano separate e aventi rispettivamente 24KB e 64KB. Dunque il guadagno per Volta è di 40 KB, mentre il register file rimane invariato a 256KB (4 registri da 16Kx32bit). Gli SM sono organizzati in TPC (texture processing cluster), aventi ognuno 2 SM, per un totale di 42 TPC, mentre 7 TPC costituiscono un GPC (graphics processing cluster), per un totale di 6 GPC come si vede nell'immagine. Il tutto integrando la memoria HBM2 (High Bandwidth Memory di seconda generazione), con un incremento del 50% della larghezza di banda (ovvero della quantità di informazione trasferita) rispetto alla vecchia architettura. La cache L2 tra la memoria e i GPC è aumentata da 512KB a 768KB per memory controller, per un totale di 6MB. Infine è stata sfruttata la tecnologia NVLink 2.0 per la trasmissione d'informazione a banda larga ed alta efficienza, che permette di inviare fino a 300GB/s. Sono stati implementati ben 6 NVLink contro i 4 precedenti. Inoltre, rispetto al passato, i singoli CUDA cores hanno un certo grado di autonomia. Il tutto per un prezzo nell'ordine dei 18000$.

La scheda Tesla V100, realizzata sia con tecnologia NVLink per performance ottimali (a sinistra nell'immagine), sia con tecnologia PCIe per essere più versatile (a destra nell'immagine) è il primo prodotto presentato a sfruttare la GPU GV100 con architettura Volta (infatti la V sta ad indicare il passaggio di processo da Pascal a Volta). Grazie ai Tensor cores per gli algoritmi di Deep learning sarà possibile raggiungere ben 120 teraflops, mentre per la double-precision e la single-precision si ottengono rispettivamente 7,5 teraflops e 15 teraflops (1 teraflops sono 10^12 flops). A seconda della precisione richiesta si ha un guadagno di un fattore 6x/12x rispetto all'architettura Pascal. La Tesla V100 avrà 16GB di HBM2 DRAM con 900 GB/sec sviluppata in collaborazione con Samsung, mentre il consumo è sempre di 300W, denotando un'efficienza maggiore vista la capacità di calcolo dell'architettura Volta.

Prodotti NVIDIA Volta

Insieme alla Tesla V100 sono già stati svelati i prodotti NVIDIA che sfrutteranno la nuova immensa capacità di calcolo. NVIDIA DGX Station è stato annunciato come il primo supercomputer personale per lo sviluppo di IA, in combinazione con un software ottimizzato per sfruttare in modo semplificato l'architettura Volta. Sono garantiti 480 teraflops con precisione FP16 grazie all'uso di 4 GPU Tesla V100, NVIDIA NVLink e raffreddamento ad acqua per un dispositivo silenzioso, il tutto alla cifra di 69000$.

Un altro prodotto annunciato è NVIDIA DGX-1, decisamente più orientato verso il mondo della ricerca per risparmiare ore, giorni o anche mesi di lavoro grazie a ben 8 GPU Tesla V100 per un totale di 960 teraflops con precisione FP16 e NVLink. Da notare che lo stesso sistema è venduto con la soluzione Tesla P100 (architettura Pascal) che invece fornisce "solamente" 170 teraflops. La soluzione Volta dovrebbe costare ben 149000$, e ha come target le grandi aziende e i ricercatori in ambito di IA. Un altro importante annuncio è il nuovo servizio NVIDIA GPU Cloud (NGC), grazie al quale il Deep Learning sarà accessibile da chiunque, anche se ottimizzato espressamente per NVIDIA Titan Xp, GeForce GTX 1080 Ti o i nuovi DGX Systems.

NVIDIA HGX-1 è invece il sistema Hyperscale GPU accelerator sviluppato insieme a Microsoft, ovvero una specie di scheda madre che crea un'interconnessione di 8 GPU Tesla tramite NVLink in una configurazione chiamata hybrid cube, la stessa usata per il DGX-1. Questa architettura innovativa permette ad una CPU di essere dinamicamente connessa a qualsiasi numero di GPU, permettendo ai cloud services providers di offrire ai propri clienti un certo range di CPU e GPU, mentre un NVLink standard permette l'accelerazione della IA e altri processi. Rispetto a server basati su CPU, la soluzione HGX-1 può risultare anche 100 volte più veloce, e può essere implementata in data center racks già esistenti in tutto il mondo. Parliamo di quasi 1 petaflops garantito da NVIDIA, nonché la compatibilità con tutto il loro software per il Deep Learning. Le maggiori aziende di Taiwan hanno già adottato la soluzione HGX-1 e NVIDIA GPU Cloud: Wistron, Quanta Computer, Foxconn ed Inventec.

Il Big Bang della IA moderna

La IA sta già rivoluzionando tutti gli ambiti della nostra vita e ci circonda anche se non ce ne accorgiamo. La pubblicità che compare sulla nostra Home Facebook dipende dai dati che abbiamo fornito al social network e i consigli di Amazon derivano dagli acquisti passati e dalle recensioni inviate. I dati che circolano sul web sono una fonte di guadagno di molte aziende (come Google) e la necessità di analizzarli è un'opportunità che NVIDIA ha colto all'istante, risultando lungimirante con gli investimenti sulla ricerca per la tecnologia Volta. I sistemi proposti per ora sono accessibili solo da grandi aziende o centri di ricerca altamente specializzati, ma negli anni a venire ricercatori, ingegneri e data scientist di tutto il mondo potranno contare su un hardware costruito appositamente per le IA. Quello che NVIDIA chiama il Big Bang della IA moderna è sotto gli occhi di tutti: dal 2012 al 2016 l'investimento verso le startup specializzate in IA è aumentato di un fattore 9, arrivando a 5 miliardi di dollari. La piattaforma Udacity che offre corsi online ha visto aumentare le iscrizioni al corso di IA di 100 volte rispetto al 2015, con 20000 studenti nel 2017. Le conferenze della suddetta materia hanno mediamente raddoppiato i partecipanti negli ultimi 2 anni.

A livello italiano è della scorsa estate un rapporto del MIUR (Ministero dell'istruzione, dell'università e della ricerca) che sottolinea l'importanza dei Big Data, tale da considerarli come il nuovo petrolio: alla base di questa affermazione c'è l'idea secondo la quale la quantità di informazioni racchiuse nei Big Data è tale da permettere di fare previsioni basate sull'osservazione di correlazioni tra e nei dati reali invece che su un'estrapolazione basata su modelli concepiti a priori. La differenza tra un codice informatico non basato sui Big Data ed uno che invece agisce in base ai dati disponibili è quella che divide i vecchi algoritmi dalle nuove IA: mentre i primi svolgono sempre e solo quello che il modello gli impone di fare, i secondi hanno la possibilità di imparare qualcosa di nuovo proprio come farebbe un essere umano.

Un mondo di macchine intelligenti

Secondo NVIDIA solo il 10% dei task di manifattura sono svolti dai robot nelle grandi aziende, in quanto tutto il resto delle attività è fin troppo variabile e richiede un approccio troppo meticoloso per poter essere svolto da una macchina programmata per farlo. Con una macchina che invece è programmata per imparare la faccenda cambia totalmente. Anche i robot che effettuano consegne di articoli o semplicemente di pizze non sono più una realtà lontana sempre grazie alla possibilità di istruirli per compiere un certo tragitto ed evitare eventuali ostacoli. Nell'ambito della medicina sarebbe possibile costruire robot minuscoli predisposti per effettuare quelle operazioni chirurgiche che gli essere umani non sono in grado di svolgere con le loro mani (un po' come succede alla dottoressa Shaw in Prometheus). Per insegnare qualcosa ad un robot sono necessarie le convolutional neural network affinché possa percepire l'ambiente circostante, l'imitation learning affinché imiti determinate azioni che gli vengono insegnate e il reinforcement learning per far sì che possa generalizzare quello che ha imparato (ad esempio se gli viene chiesto di mettere al proprio posto un libro che si trova in un certo punto del pavimento, deve imparare a farlo anche se il libro si trova in una posizione differente da quella mostratagli). Proprio per questo NVIDIA ha creato l'environment Holodeck, che servirà anche ad addestrare le future IA.