NVIDIA al Computex: la rivoluzione delle IA è sempre più vicina

NVIDIA è stata protagonista al Computex 2017: ecco le migliori novità in fatto di IA e tutti gli annunci fatti dall'azienda californiana.

speciale NVIDIA al Computex: la rivoluzione delle IA è sempre più vicina
Articolo a cura di

Il Keynote di NVIDIA al Computex di Taipei è stato un evento letteralmente mozzafiato, per alcuni versi al limite del fantascientifico. O forse è la tecnologia stessa ad avere tutte le carte in regola per avvicinarsi alla fantascienza. Il focus è stato posto sulla più grande risorsa che attualmente possiede tutta l'umanità: i dati. Qualsiasi entità pensabile è riconducibile ad un dato, dalle miliardi di stelle presenti nell'universo, ai risultati medici ottenuti dai pazienti di un ospedale fino alla mappatura delle strade che percorriamo ogni giorno. Tutti questi dati possono sembrare apparentemente inutilizzabili, fintanto che qualcuno non scopre una relazione che li lega: l'osservazione delle galassie lontane può aiutarci a dimostrare teorie scientifiche ancora non confermate come la materia oscura, lo studio del sangue di un paziente può farci capire se ha una malattia nota e la conoscenza del territorio può esserci utile per il controllo remoto di un veicolo. Insomma, i dati sono come i colori di un quadro che deve ancora essere dipinto, sta all'artista, in questo caso le tecnologie mostrate da NVIDIA, assemblare il tutto nel modo corretto.

Deep Learning Nvidia

NVIDIA vuole dare un chiaro e semplice messaggio: grazie agli algoritmi del Machine Learning (apprendimento automatico), ovvero del Deep Learning nel caso specifico, si possono realizzare intelligenze artificiali talmente avanzate che l'unico limite sarà la sola possibilità di immaginarle. Tutto questo grazie ai dati, elemento essenziale del Machine Learning: parliamo di una categoria di algoritmi definiti di apprendimento automatico perché in grado di "imparare" senza essere esplicitamente programmati per farlo. Così come un essere umano è in grado di distinguere un cane da un gatto dopo aver osservato diverse razze di cani, anche un algoritmo di image recognition può riconoscere un cane avendo come base una serie di foto di diversi cani. Se non ne siete ancora convinti, provate ad aprire Google Photos e, nella ricerca, digitate "cane". Ecco che compariranno tutte le foto della vostra libreria in cui è presente un cane. A meno di qualche piccolo errore, è difficile rimanere indifferenti di fronte alla potenza di alcuni algoritmi.

AI applicata a Netflix

Avete mai pensato alla possibilità che le AI siano presenti nella nostra quotidianità, invisibili ai nostri occhi? Ogni volta che guardate un film o una puntata di una serie su Netflix assegnandogli un voto, c'è un algoritmo silente che analizza tutti i dati che gli state fornendo per suggerirvi i contenuti più conformi ai vostri gusti. Così guardando "Wolf of Wall Street" vi verranno consigliati i film con Leonardo di Caprio o diretti da Martin Scorsese, mettendo "Like" su un film horror compariranno altri film dello stesso genere nella vostra homepage, e via dicendo. Il tutto in modo automatico tramite un algoritmo che si "evolve" imparando da tutti i dati che gli state fornendo. Fin qui dovrebbe esservi chiaro che questi piccoli esempi sono solo la punta dell'iceberg di quello che è il Machine Learning, e NVIDIA vuole puntare molto in alto, inventando applicazioni per la AI o migliorando quelle già esistenti. Non a caso uno degli slogan di NVIDIA è "Powering the AI Revolution".

Progresso

Il progresso tecnologico ha continuato a fare il suo corso negli anni grazie a due fattori determinanti: La legge di Moore, che ha predetto con buona precisione l'aumento del numero di transistor in un circuito con il passare degli anni, e la parallelizzazione dei calcoli, ovvero l'esecuzione di più calcoli in contemporanea piuttosto che in sequenza. Con l'aumento dei transistor di un chip si è ottenuta una potenza computazionale maggiore, mentre tramite la parallelizzazione si è ottimizzato il costo computazionale di una singola applicazione. Mentre negli anni passati si riusciva a migliorare la velocità delle CPU anche del 50%, negli ultimi anni non sono stati registrati risultati altrettanto soddisfacenti: basti pensare ai nuovi Intel Core i9, che migliorano "solo" del 15% le prestazioni rispetto alle precedenti architetture.

L'avanzamento tecnologico sta diminuendo in maniera vertiginosa a causa dell'impossibilità di rimpicciolire ancor di più i transistor, visto il limite fisico che è stato raggiunto: mentre negli anni passati era sufficiente ridurre le dimensioni del singolo transistor per implementarne un numero maggiore nello stesso chip, arrivati alle dimensioni di qualche nanometro non è più possibile creare device più piccoli. Quando si parla di nanometri ci si imbatte sostanzialmente nei singoli atomi, dunque nelle leggi della fisica quantistica, che non permettono di concepire un transistor così come è stato pensato fino ad oggi (per approfondire il discorso, vi consigliamo la lettura di qualche articolo sui computer quantistici). Per questo motivo NVIDIA ha introdotto la GPU computing, ovvero una sorta di "compagno" (la GPU) da affiancare alla CPU per velocizzare tutti i processi lenti che intasano il processore con calcoli che possono essere parallelizzati e dunque accelerati.

CPU e GPU

La differenza tra CPU e GPU consiste nel fatto che la prima è specializzata per l'elaborazione sequenziale di calcoli, mentre la seconda è dotata di un'architettura parallela costituita da migliaia di core più piccoli ma più efficienti, progettati per la gestione simultanea di più operazioni. Per capire meglio la differenza tra CPU e GPU guardate questo video:

La CPU è come il braccio meccanico che riesce a sparare un pallottola di vernice alla volta: può farlo più velocemente, ma ne sparerà sempre una alla volta. Questo collo di bottiglia viene superato dalla macchina che invece spara più proiettili contemporaneamente, rendendo più efficiente e rapido il procedimento. Jen-Hsun Huang, CEO di NVIDIA, ricorda che la sua azienda ha introdotto CUDA 10 anni fa (Compute Unified Device Architecture), per avere un'architettura hardware espressamente creata per il calcolo parallelo. Nello specifico le GPU Tesla sono concepite per spingere al massimo il calcolo parallelo per velocizzare i processi troppo onerosi per la CPU. Il tutto avendo in mente un solo target: tutta la comunità scientifica che ha bisogno di analizzare ed elaborare sempre più dati, andando a scontrarsi contro l'inevitabile collo di bottiglia delle CPU.

L'acqua che si infrange sul lago

Immaginate di trovarvi davanti ad un piccolo lago generato da una piccola cascata. L'acqua che si infrange sul lago genera delle onde che a loro volta vanno a riflettersi sui bordi disturbando il pattern di onde precedente. Se tirate un sasso sulla superficie di questo lago, questo genera altre onde che interferiscono con le onde della cascata, e si riflettono sui bordi generando altri disturbi. Ora, riassumente tutte le onde tramite equazioni matematiche (derivate parziali nello spazio e nel tempo, per i più appassionati) e date questi calcoli in pasto ad un computer. I calcoli sono tanto più complessi quanto più preciso si vuole replicare il pattern delle onde del lago, e dalla precisione scelta bisognerà aspettare sempre più tempo prima che la simulazione possa fornirci un risultato. Gli addetti alle simulazioni scientifiche sanno bene che a volte bisogna aspettare ore... o addirittura giorni! Non c'è quindi da meravigliarsi se nei videogiochi moderni si cerca di evitare l'implementazione di un motore fisico complesso, che rallenterebbe inesorabilmente il gioco stesso a causa dei calcoli eccessivi da eseguire. Gli sviluppatori GPGPU (general-purpose computing on graphics processing units), ovvero i programmatori che sfruttano la GPU per il calcolo parallelo, stanno aumentando sempre di più, proprio per l'improvvisa esplosione di questi algoritmi intelligenti che hanno bisogno di essere parallelizzati.

Deep Learning, Project Holodeck e Tesla V100

La possibilità di analizzare i dati rende un algoritmo di Machine Learning in grado di stimare un risultato non noto grazie alla sintesi di quello che ha già imparato. Secondo il CEO NVIDIA Jen-Hsun Huang non è difficile pensare ad un futuro in cui i software potranno scrivere altri software in base alle nozioni che hanno imparato in precedenza. Il Deep Learning, una specifica area del Machine Learning, racchiude una serie di algoritmi che usano diversi strati, ognuno dei quali analizza i dati dello strato precedente per inviare il proprio risultato allo strato successivo, in una sorta di schema gerarchico. Si può pensare a come il cervello umano elabora i dati visivi che gli occhi stessi gli forniscono. Ma come è stato possibile arrivare solo oggi al Deep Learning? In primis, grazie allo sviluppo di algoritmi specifici per il Deep Learning stesso. In secondo luogo per la disponibilità di una enorme quantità di dati e infine grazie al GPU computing per accelerare i calcoli parallelizzandoli. Tramite un algoritmo di Deep Learning è possibile analizzare i pixel di un'immagine che vanno a formare delle curve che a loro volta compongono un viso, degli occhi, un naso e una bocca: in sostanza può capire che i singoli pixel messi insieme rappresentano un'informazione più grande come il viso di una persona. L'AI non solo può riconoscere una persona, ma generalizzare il concetto di viso per riconoscere altre persone. Non stiamo parlando di un algoritmo programmato da programmatori per eseguire uno scopo, ma di codice che è stato creato per imparare dai dati che gli vengono forniti. In un certo senso si può dire che l'algoritmo è programmato dai dati stessi.

Potenzialità infinite

Le applicazioni sono innumerevoli: riconoscimento di parole o testi interi, veicoli guidati da AI, comprensione di una situazione in un video generico, e via dicendo. Nel caso di Google Translate è possibile migliorare le traduzioni analizzando i dati presenti nell'immenso database, che viene ampliato in continuazione per fornire risultati sempre più precisi. NVIDIA vuole partecipare attivamente all'era del Machine Learning e lo sta dimostrando con l'architettura CUDA delle proprie GPU, sfruttata oggi da ogni singolo provider di servizi Cloud. Attualmente esistono circa 1300 startup che lavorano insieme ad NVIDIA nell'ambito del Deep Learning. Parliamo degli ambiti più disparati, dalla medicina all'agricoltura, dallo sviluppo di programmi all'analisi di dati raccolti dal web.


NVIDIA e Koenigsegg insieme nel Project Holodeck

Una delle rivelazioni più sorprendenti del Keynote NVIDIA è il Project Holodeck, ovvero un ambiente di realtà virtuale che replica il mondo reale tramite la vista, il suono e il tatto. In questo ambiente gli sviluppatori possono importare modelli in alta risoluzione e alta fedeltà, come una macchina da corsa e condividerli con colleghi o amici per prendere decisioni sul design in modo più semplice e veloce. Holodeck è basato su una versione avanzata del motore Unreal Engine 4 di Epic e include NVIDIA GameWorks, VRWorks e DesignWorks, garantendo un ambiente fotorealistico e una simulazione della fisica di alto livello. Nella demo mostrata al Keynote è stata simulata la macchina da corsa Koenigsegg Regera in un ambiente condiviso da altre 4 persone, ognuna rappresentata da un mezzobusto in grado di parlare e replicare i movimenti di ognuno di essi come i movimenti delle braccia e della testa. L'aspetto puramente estetico della macchina è estremamente realistico, sia all'esterno che all'interno. I 4 colleghi sono stati in grado di aprire le porte ed entrare nel veicolo: in particolare il guidatore ha allungato le braccia per afferrare il volante e subito le mani si sono strette attorno ad esso, proprio a dimostrazione dell'estrema precisione del motore fisico.

La macchina mostrata non è una semplice riproduzione a livello estetico ma è stata costruita usando gli stessi componenti che si utilizzerebbero nella realtà: infatti è possibile ispezionare tutti i componenti del motore semplicemente puntando verso di esso e selezionando una funzione specifica per visualizzare l'interno del modello del veicolo. Grazie ad un'altra funzione è possibile "esplodere" l'intero modello computerizzato in modo da separare tutti i singoli pezzi del veicolo nello spazio, con un'animazione mozzafiato. L'ambiente creato da NVIDIA sembra avere le carte in regola per progettazione di modelli complessi e la simulazione degli stessi in tempo reale e condivisi con altre persone. Holodeck dovrebbe essere disponibile a settembre, secondo quanto detto alla conferenza.

Tesla V100 e Max-Q

Uno degli annunci più sorprendenti di NVIDIA è quello della GPU più avanzata mai creata, la Tesla V100, basata su un'architettura FinFET a 12 nanometri, ovvero 21 miliardi di transistor poco più grandi di 12 nanometri. Il progetto dell'architettura Volta, annunciato nel lontano 2013, è uno dei più costosi mai realizzati nella storia dei computer secondo il CEO Jen-Hsun Huang. Il nuovo tipo di processore implementato nella V100 è il Tensor Core, sviluppato espressamente per compiere operazioni specifiche per il Deep Learning. Scherzando (ma non troppo), Jen-Hsun Huang ha dichiarato che il prezzo della nuova scheda video è di 3 miliardi di dollari.

Anche la rivelazione dei computer Max-Q ha lasciato di stucco la platea: laptop sottili, silenziosi e adatti al gaming, disponibili già a partire da fine giugno. I device hanno spessore di circa 18 millimetri, come un MacBook Air, e sono stati concepiti per essere sfruttati anche da gamer esigenti, grazie all'architettura NVIDIA Pascal della serie GeForce 10.