QUAL È LA SALSA SEGRETA DIETRO LE ALTE PRESTAZIONI DI GOOGLE TPU?

Google ha incassato oltre $ 8 miliardi di entrate nell’ultimo trimestre e ora vogliono aumentare i loro servizi in India attingendo al settore pubblico.

Ad aprile, il CEO Thomas Kurian ha descritto i nuovi servizi di Google Cloud destinati a diversi settori che includono media e intrattenimento, sanità, vendita al dettaglio, servizi finanziari, settore pubblico. Secondo NASSCOM, il mercato cloud in India dovrebbe salire a $ 7,1 miliardi entro il 2022 con i balzi evolutivi nell’analisi dei Big Data, AI, ML e IoT.

Man mano che le aziende spezzano i monoliti e iniziano a modernizzare i servizi, hanno bisogno di soluzioni per un servizio coerente e una gestione del traffico su vasta scala. Le organizzazioni vogliono investire tempo e risorse nella creazione di applicazioni e nell’innovazione, non sull’infrastruttura e sulla rete necessarie per implementare e gestire questi servizi. L’apprendimento automatico è la scelta più popolare con le aziende al momento, aziende come Google, che esternalizzano la propria tecnologia, non lasciano nulla di intentato per migliorare le proprie infrastrutture per soddisfare le esigenze del futuro. Il loro TPU cloud è la testimonianza dei loro infiniti sforzi.

Panoramica delle TPU

tramite il blog di Google Cloud
Cloud TPU è progettato per eseguire modelli di machine learning all’avanguardia con servizi di intelligenza artificiale su Google Cloud. La sua rete personalizzata ad alta velocità offre oltre 100 petaflop di prestazioni in un unico pod: una potenza computazionale sufficiente per trasformare un’azienda o creare la prossima svolta nella ricerca.

I chip TPU di seconda e terza generazione sono disponibili per i clienti di Google Cloud come TPU cloud. Forniscono fino a 420 teraflop per dispositivo Cloud TPU e oltre 100 petaflop in un Pod Cloud TPU v3 completo. Le TPU cloud raggiungono queste elevate prestazioni unendo un’architettura hardware consolidata – la “matrice sistolica” – con un innovativo formato a virgola mobile.

I FLOP (operazioni in virgola mobile al secondo) sono unità di misura della prestazione di un’operazione computazionale. Un processore con una gamma più alta di FLOP è considerato più potente.

Allocare FLOP (risorsa) durante operazioni algoritmiche (reti neurali) è la chiave del tempo impiegato per l’addestramento e altre operazioni fondamentali di questo tipo.

Nel caso di TPU di Google, il formato in virgola mobile personalizzato è chiamato “Brain Floating Point Format”, o “bfloat16” in breve. Il nome deriva da “Google Brain”, che è un gruppo di ricerca di intelligenza artificiale presso Google, dove è stata concepita l’idea per questo formato. Bfloat16 viene utilizzato con cura all’interno di array sistolici per accelerare le operazioni di moltiplicazione della matrice su TPU cloud.

Quale vantaggio offre Bfloat16 ai TPU?
Bfloat16 è un formato a virgola mobile a 16 bit personalizzato per l’apprendimento automatico che comprende un bit di segno, otto bit di esponente e sette bit di mantissa. Ciò è diverso dallo standard IEEE a virgola mobile a 16 bit, che non è stato progettato pensando alle applicazioni di deep learning.

Ecco alcuni notevoli miglioramenti ottenuti con Bfloat16:

La memorizzazione di valori in formato bfloat16 consente di risparmiare memoria su chip, facendo sembrare 8 GB di memoria per core più simili a 16 GB e 16 GB più simili a 32 GB.
L’uso più esteso di bfloat16 consente alle TPU cloud di addestrare modelli più profondi, più ampi o con input più grandi. E poiché i modelli più grandi spesso portano a una maggiore precisione, ciò migliora la qualità finale dei prodotti che dipendono da essi.
È possibile ottenere migliori compromessi del compilatore tra elaborazione e risparmio di memoria, con conseguenti miglioramenti delle prestazioni per modelli di grandi dimensioni.
La memorizzazione di operandi e output di tali operazioni nel formato bfloat16 riduce la quantità di dati che devono essere trasferiti, migliorando la velocità.
Come può trarre vantaggio ML

tramite il blog di Google Cloud
L’aumento delle dimensioni della rete neurale in genere comporta una maggiore precisione. Con l’aumentare delle dimensioni dei modelli, aumenta anche la memoria e i requisiti di calcolo per l’addestramento di questi modelli. In passato sono state sviluppate tecniche per addestrare reti neurali profonde utilizzando numeri a virgola mobile a precisione semi-precisa in cui pesi, attivazioni e gradienti sono memorizzati in formato IEEE a mezza precisione.

Anche con bfloat16 esiste una scelta per ciascuno dei valori di pesi (parametri), attivazioni e gradienti da rappresentare.

Il team di Google Cloud afferma che alcuni modelli sono ancora più permissivi e che in questi casi rappresentano sia le attivazioni che i pesi in bfloat16 portano ancora alla massima precisione. Pertanto, gli sviluppatori raccomandano di mantenere pesi e gradienti in FP32 ma convertono le attivazioni in bfloat16 e consigliano ai professionisti della ML di eseguire una linea di base occasionale usando FP32 per pesi, gradienti e attivazioni per garantire che il comportamento del modello sia comparabile.

Si ritiene che il supporto per l’addestramento a precisione mista in tutto lo stack di software TPU consenta una conversione senza soluzione di continuità tra i formati e possa rendere trasparenti queste conversioni al professionista ML.

Di ihal