La TPU di Google straccia CPU e GPU nel machine learning

La Tensor Processing Unit è decisamente migliore di CPU e GPU per accelerare le operazioni di machine learning all'interno dei server Google.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

La Tensor Processing Unit (TPU) fa mangiare la polvere a processori e chip grafici quando si tratta di accelerare la fase inferenza delle reti neurali artificiali. A dirlo è Google, che in un post pubblicato nelle scorse ore ha illustrato i miglioramenti prestazionali che il chip restituisce sia in termini di potenza bruta che prestazioni per watt.

google tpu board

La scheda di Google con la TPU al centro, clicca per ingrandire

La TPU, annunciata lo scorso anno, è un progetto che viene da lontano. Quattro anni fa, Google si è trovata davanti a un problema: se tutti i suoi utenti avessero usato i servizi di riconoscimento vocale per 3 minuti al giorno, si sarebbe trovata costretta a raddoppiare il numero dei datacenter per gestire tutte le richieste.

Piuttosto che comprare nuovo terreno e server, Google decise di iniziare a sviluppare hardware dedicato a quei compiti, che fosse decisamente migliore di qualunque soluzione adattabile in quel momento. "Per ridurre le possibilità di un ritardo nell'installazione, la TPU è stata progettata per essere un coprocessore sul bus PCI Express, cosa le consente di essere collegata ai server esistenti allo stesso modo delle GPU".

"Inoltre, per semplificare la progettazione dell'hardware e il debugging, è il server host che invia istruzioni alla TPU per l'esecuzione e non è quest'ultima che va a pescarle. Perciò la TPU è più vicina nello spirito a un coprocessore FPU (floating-point unit) che a una GPU. L'obiettivo era eseguire interi modelli d'inferenza sulla TPU per ridurre le interazioni con la CPU ed essere sufficientemente flessibili da rispondere alle necessità delle reti neurali del 2015 e oltre".

google tpu performance

Prestazioni per watt della TPU di Google, confrontata con CPU e GPU, clicca per ingrandire

Google ha testato i chip con sei differenti applicazioni, un campione che rappresenta il 95% di tutte le applicazioni simili a bordo dei suoi datacenter. Tra queste anche DeepMind AlphaGo, il sistema che ha sconfitto Lee Sedol a Go, in una partita su cinque match lo scorso anno. I test sono stati svolti anche con una CPU Haswell Xeon E5-2699 v3 e una GPU Nvidia Tesla K80, due soluzioni che debuttarono nello stesso periodo della TPU.

Il risultato è che la TPU si è dimostrata di media dalle 15 alle 30 volte più veloce delle altre due soluzioni e, cosa più importante, ha restituito prestazioni per watt dalle 30 alle 80 volte migliori. Si tratta di miglioramenti che non solo hanno permesso a Google di risparmiare enormi quantità di denaro, ma anche di espandere l'uso del machine learning nei propri servizi, dal riconoscimento d'immagini alla traduzione in tempo reale, solo per fare alcuni esempi.

google tpu image

Dallo studio è emerso però che ci sarebbero margini per ulteriori miglioramenti. Dotando la TPU di memoria GDDR5 le prestazioni potrebbero triplicare e il rapporto prestazioni/watt migliorerebbe di 70 volte rispetto alla GPU e 200 volte rispetto alla CPU. Ulteriori progressi si potrebbero inoltre ottenere dall'ottimizzazione software (TensorFlow).

Insomma, la conclusione è che Google ci ha sicuramente visto lungo e ha fatto la scelta giusta imbarcandosi in questo progetto. D'altronde, a distanza di poco tempo, tutti i big del settore hanno intrapreso una strada simile e hanno iniziato a guardare a soluzioni alternative rispetto alle tradizionali CPU e GPU: aziende come Microsoft si stanno rivolgendo per esempio agli FPGA, soluzioni altamente programmabili. Non è un caso che Intel abbia deciso di acquistare Altera, leader del settore, investendo oltre 16 miliardi di dollari.