Successivo

News

TPU: il processore Google per le reti neurali

Michele Braga | 19 Maggio 2016

Cpu Google Gpu

Google ha progettato e realizzato un processore proprietario denominato TPU e dedicato alle architetture delle reti neurali per l’apprendimento approfondito […]

Google ha progettato e realizzato un processore proprietario denominato TPU e dedicato alle architetture delle reti neurali per l’apprendimento approfondito (Deep Learning Neural Networks), una delle tecnologie più promettenti nel settore dell’intelligenza artificiale e alla base del rapido sviluppo di nuovi servizi forniti attraverso Internet, ma non solo. A dare la notizia è stato Sundar Pichai – CEO della società  di Mountain View – durante l’evento di apertura del Google I/O, ma potete leggere i dettagli, ancora veramente pochi, anche nel blog ufficiale di Google Cloud Platform.

Sundar Pichai è l'amministratore delegato di Google dal 2 ottobre 2015.

Sondar Pichai, l’amministratore delegato di Google dal 2 ottobre 2015.

È solo di poche settimane fa la sfida che ha visto AlphaGo – un sistema di calcolo ad apprendimento automatico sviluppato dalla divisione DeepMind di Google – battere il campione mondiale Lee Sedol con un secco 4 a 1 in una sfida a Go.
Un computer in grado “solo” di macinare calcoli (costruendo l’albero delle mosse di tutte le possibili posizioni) non avrebbe prodotto risultati utili, serviva un sistema in grado di giocare come un umano. Per realizzare AlphaGo, la divisione DeepMind – acquisita da Google nel 2014 – ha creato un sistema di reti neurali e l’ha “cresciuto” con nuovi algoritmi di “apprendimento profondo” o deep learning. All’inizio AlphaGo ha valutato un database di 30 milioni di mosse umane, dopodiché le sue reti neurali, l’una contro l’altra, hanno incominciato a giocare migliaia e migliaia di partite, con un processo detto di apprendimento per rinforzo andando per tentativi ed errori. AlphaGo ha giocato, ha provato, ha sbagliato, ha “capito”: la sua “intelligenza” è stata di sviluppare, autonomamente, una sua strategia e una sua tecnica. Un processo di ottimizzazione che è continuato, sfidando gli altri sistemi artificiali di Go (e vincendo 499 partite su 500). Per realizzare AlphaGo è stata utilizzata proprio la tecnologia che oggi sappiamo essere stata denominata da Google come Tensor Processing Unit o più semplicemente TPU. Non solo, perché a quanto pare Google utilizza da tempo le proprie TPU anche per applicazioni come RankBrain e Street View. Ma di preciso che cosa è una TPU?

TPU: Tensor Processing Unit

Google ha deciso di chiamare questo nuovo processore Tensor Processing Unit (TPU) in quanto è stato pensato per supportare TensorFlow, ovvero il motore software sviluppato da Google alla base di tutti i servizi dell’azienda che sfruttano un approccio deep learning.
L’unità  TPU – un nome che ricorda da vicino quello delle CPU e delle GPU – è di fatto un ASIC (Application Specific Integrated Circuit), ovvero un processore dotato di un’architettura progettata per svolgere compiti ben definiti e in questo caso specifici per il funzionamento dei sistemi ad apprendimento automatico. Questa tipologia di sistemi – costituiti da una combinazione di hardware e software – è in grado di imparare a svolgere compiti specifici attraverso l’analisi di una vasta quantità  di dati. Google utilizza già  da tempo la tecnologia delle reti ad apprendimento automatico per offrire servizi come quelli relativi al riconoscimento di oggetti e volti all’interno di immagini fotografiche, al riconoscimento vocale e per la traduzione di testi da una lingua a un’altra. Google ha avviato in segreto la sperimentazione delle TPU circa un anno fa all’interno dei propri datacenter, rilevando la possibilità  di ottenere prestazioni per watt migliori di un ordine di grandezza rispetto alle altre soluzioni di calcolo utilizzate per creare computer e servizi dotati di capacità  di apprendimento.

L'immagine del modulo sul quale è presente la Tensor Processing Unit (TPU) sviluppata da Google.

L’immagine del modulo sul quale è presente la Tensor Processing Unit (TPU) sviluppata da Google.

La specificità  della progettazione degli ASIC, focalizzata sulla risoluzione di un unico problema, consente di raggiungere delle prestazioni in termini di velocità  di processamento e consumo elettrico difficilmente ottenibili con l’uso di soluzioni più generiche (general purpose). Lo sviluppo di questo genere di integrati è però molto costoso e per questo motivo il loro impiego è limitato a campi in cui possano essere usati in maniera massiccia (alti volumi di mercato) come l’elettronica di consumo, mentre per usi su scala più limitata vengono preferite, ad esempio, tecnologie riprogrammabili come le FPGA.

I processori di classe TPU sono realizzati su misura per l’elaborazione in applicazioni di apprendimento automatico e l’architettura utilizzata – stando a quanto dichiarato fino a questo momento – ha una tolleranza maggiore delle altre (delle CPU e delle GPU, ndr) sugli errori computazionali; questo elemento si traduce in una minore complessità  dei circuiti e di conseguenza in un minor numero di transistor necessari a svolgere una determinata operazione. Grazie a ciò, il confronto con le altre architetture in commercio vede le TPU offrire un migliore rapporto tra il numero di operazioni eseguibili in funzione della superficie di silicio impiegato (detto in altri termini, i nodi di calcolo sono più semplici di quelli impiegati ad esempio nelle GPU ed è quindi possibile stiparne di più alla interno di un processore di pari dimensioni i termini di silicio e di tecnologia produttiva, ndr).
Non è, infatti, una novità  che soluzioni Asic proprietarie ed estremamente specializzate siano capaci di offrire prestazioni migliori per watt consumato e per numero di transistor richiesti rispetto ad architetture programmabili più generiche, più precise nelle elaborazioni numeriche e anche più flessibili e adattabili a diversi campi d’impiego. Sempre durante l’evento di presentazione è stato fornito un altro dato interessante: un modulo che monta una TPU occupa uno spazio tale da permettere a Google di inserire il nodo di calcolo nello spazio di uno slot dedicato a un disco rigido all’interno degli armadi rack presenti nei data center di Google.

Nell'immagini divulgata da Google si vede uno dei degli armadi pack in cui sono state collocate i nodi di calcolo basati sulla nuova Tensor Processing Unit (TPU).

Nell’immagini divulgata da Google si vede uno degli armadi pack in cui sono state collocati i nodi di calcolo basati sulla nuova Tensor Processing Unit (TPU).

Se siete curiosi di vedere l’interno di uno dei data center di Google vi consigliamo di guardare questo video realizzato con il sistema a 360 gradi e che vi condurrà  nelle stanze nascoste di Google.

TensorFlow

Rilasciato lo scorso inverno come piattaforma open source, TensorFlow è una libreria software dedicata all’apprendimento automatico in diversi tipi di compiti percettivi e di comprensione del linguaggio. È una seconda generazione di API (Application Programming Interface) che è attualmente usata sia in ambito di ricerca che di produzione da 50 team molti prodotti commerciali Google, come il riconoscimento vocale, Gmail, Google Foto, e Ricerca. Questi team hanno usato in precedenza DistBelief, la prima generazione di API. TensorFlow fu sviluppato dal team Google Brain e rilasciato sotto la licenza open source Apache 2.0 il 9 novembre 2015.

TensorFlow

Un esempio di grafico di flussi di informazioni (Data Flow) che serve a descrivere le elaborazioni matematiche di un processo logico per l’apprendimento automatico.

Sundar Pichai a delineato alcuni esempi dei futuri campi di applicazione dei sistemi ad apprendimento automatico o machine learning: la robotica, un campo in cui bigG è presente da tempo con Boston Dynamics, la sanità  come campo di applicazione per monitorare la salute ed offrire un numero di servizi in tempo reale ai pazienti, l’educazione o, ancora, lo studio dei cambiamenti del clima. I robot impareranno (letteralmente) come portare a termine i compiti assegnati nel modo più efficiente, apprendendo dai propri errori, mentre per quanto riguarda la cura della salute sarà  possibile implementare sistemi in grado di apprendere da un’enorme mole di informazioni e di individuare in modo tempestivo situazioni di salute critiche e di migliorare i sistemi di screening e di diagnostica per l’individuazione di patologie.

I possibili risvolti sul mercato

L’annuncio del processore TPU di Google lascia spazio per qualche riflessione. Non è ancora chiaro se i sistemi di apprendimento automatico in uso e in sviluppo utilizzino solo questi nuovi processori, ma senza dubbio la società  di Mountain View non prevede di utilizzare per questo sui scopi unità  di calcolo come le Gpu di Nvidia o  le Cpu di Intel, o quantomeno ne utilizzerà  in numero ridotto. Tutto ciò potrebbe tradursi in un futuro cambiamento nel mercato dei processori, visto che proprio Intel è il principale fornitore di unità  di calcolo alla base della maggior parte dei server utilizzati da Google nei propri data center. In modo simile, anche Nvidia potrebbe risentire di questa nuova rotta intrapresa da Google: le GPU si sono evolute moltissimo e oggi sono una delle risorse più importanti per l’accelerazione di elaborazioni scientifiche e per quelle dedicate alla visualizzazione. L’architettura costituita con migliaia di nodi di calcolo all’interno di una sola GPU ha permesso di accelerare lo sviluppo delle tecnologie legate alle reti neurali, ma le GPU potrebbero trovarsi in una posizione scomoda se gli ASIC proprietari e altamente specializzati risultassero effettivamente più convenienti e più efficienti per la costruzioni grandi sistemi Deep Learning.