Introduzione a Cloud TPU

Le TPU o Tensor Processing Unit sono acceleratori hardware progettati da Google per i carichi di lavoro di machine learning. Per informazioni più dettagliate sull'hardware della TPU, vedi Architettura di sistema. Cloud TPU è un servizio web che rende le TPU disponibili come risorse di calcolo scalabili su Google Cloud.

Le TPU addestrano i tuoi modelli in modo più efficiente utilizzando hardware progettati per eseguire operazioni a matrice di grandi dimensioni spesso presenti negli algoritmi di machine learning. Le TPU con memoria ad alta larghezza di banda su chip consentono di utilizzare modelli più grandi e dimensioni batch. Le TPU possono essere connesse in gruppi denominati pod che scalano i tuoi carichi di lavoro con modifiche al codice minime o inesistenti.

Ti consigliamo di avviare il tuo progetto di machine learning con una singola TPU e di fare lo scale out a un pod di TPU per la produzione. Per iniziare, puoi usufruire di un insieme di modelli di riferimento open source che i team di ricerca e ingegneria di Google ottimizzano per l'uso con le TPU. Per scoprire di più, consulta Modelli di riferimento.

Come funziona?

Per comprendere il funzionamento delle TPU, è utile comprendere in che modo altri acceleratori affrontano le sfide di calcolo dei modelli di ML.

Come funziona una CPU

Una CPU è un processore per uso generico basato sull'architettura von Neumann. Significa che una CPU funziona con software e memoria come questo:

Illustrazione del funzionamento di una CPU

Il maggiore vantaggio delle CPU è la loro flessibilità. Su una CPU puoi caricare qualsiasi tipo di software per molti tipi diversi di applicazioni. Ad esempio, puoi utilizzare una CPU per l'elaborazione di testi su un PC, controllare i motori a razzo, eseguire transazioni bancarie o classificare le immagini con una rete neurale.

Una CPU carica i valori dalla memoria, esegue un calcolo dei valori e archivia il risultato in memoria per ogni calcolo. L'accesso alla memoria è lento rispetto alla velocità di calcolo e può limitare la velocità effettiva totale delle CPU. spesso definito collo di bottiglia von Neumann.

Come funziona una GPU

Per ottenere una velocità effettiva superiore, le GPU contengono migliaia di unità aritmetiche (ALU) in un unico processore. Una GPU moderna contiene in genere tra 2500 e 5000 ALU. L'elevato numero di processori significa che puoi eseguire migliaia di moltiplicazioni e aggiunte contemporaneamente.

Illustrazione del funzionamento di una GPU

Questa architettura GPU funziona bene su applicazioni con enormi parallelismo, come operazioni matriciali in una rete neurale. Infatti, in un tipico carico di lavoro di addestramento per il deep learning, una GPU può fornire un ordine di grandezza maggiore rispetto a una CPU.

Tuttavia, la GPU è ancora un processore per uso generico che deve supportare molte applicazioni e software. Pertanto, le GPU hanno lo stesso problema delle CPU. Per ogni calcolo in migliaia di ALU, una GPU deve accedere ai registri o alla memoria condivisa per leggere gli operandi e archiviare i risultati del calcolo intermedio.

Come funziona una TPU

Google ha progettato le Cloud TPU come processore di matrice specializzato per i carichi di lavoro di rete neurale. Le TPU non possono eseguire elaboratori di testi, controllare motori di razzi o eseguire transazioni bancarie, ma possono gestire enormi operazioni di matrice utilizzate nelle reti neurali a velocità elevate.

L'attività principale per le TPU è l'elaborazione di matrici, che è una combinazione di operazioni di moltiplicazione e accumulo. Le TPU contengono migliaia di accumulatori multipli che sono direttamente collegati tra loro per formare una grande matrice fisica. Questa è chiamata architettura array sistolica. Cloud TPU v3 contiene due array sistolici di ALU 128 x 128 su un singolo processore.

L'host TPU trasmette i dati in una coda di feed. La TPU carica i dati dalla coda di feed e li archivia nella memoria HBM. Al termine del calcolo, la TPU carica i risultati nella coda di uscita. L'host TPU legge quindi i risultati della coda di uscita e li memorizza nella memoria dell'host.

Per eseguire le operazioni della matrice, la TPU carica i parametri dalla memoria HBM nella MXU.

Illustrazione del modo in cui una TPU carica parametri dalla memoria

Quindi, la TPU carica i dati dalla memoria HBM. Quando viene eseguita ogni moltiplicazione, il risultato viene passato al moltiplicatore di moltiplicazione successivo. L'output è la somma di tutti i risultati di moltiplicazione tra i dati e i parametri. Non è richiesto alcun accesso alla memoria durante il processo di moltiplicazione della matrice.

Illustrazione del modo in cui una TPU carica i dati dalla memoria

Di conseguenza, le TPU possono raggiungere una velocità effettiva di calcolo elevata sui calcoli della rete neurale.

Quando utilizzare le TPU

Le Cloud TPU sono ottimizzate per carichi di lavoro specifici. In alcuni casi, potresti voler utilizzare GPU o CPU sulle istanze di Compute Engine per eseguire i carichi di lavoro di machine learning. In generale, puoi decidere l'hardware migliore per il tuo carico di lavoro in base alle seguenti linee guida:

CPU

  • Prototipazione rapida che richiede la massima flessibilità
  • Modelli semplici la cui addestramento richiede molto tempo
  • Modelli di piccole dimensioni con dimensioni batch piccole ed efficaci
  • Modelli che contengono molte operazioni TensorFlow/PyTorch/JAX personalizzate scritte in C++
  • Modelli limitati dall'I/O disponibile o dalla larghezza di banda della rete del sistema host

GPU

  • Modelli con un numero significativo di operazioni TensorFlow/PyTorch/JAX personalizzate che devono essere eseguite almeno parzialmente su CPU
  • Modelli con operazioni TensorFlow/PyTorch non disponibili su Cloud TPU
  • Modelli medio-grandi con dimensioni batch efficaci più grandi

TPU

  • Modelli dominati dai calcoli della matrice
  • Modelli senza operazioni TensorFlow/PyTorch/JAX personalizzate all'interno del ciclo di addestramento principale
  • Modelli che addestrano per settimane o mesi
  • Modelli di grandi dimensioni con grandi dimensioni del batch efficaci

Le Cloud TPU non sono adatte ai seguenti carichi di lavoro:

  • Programmi algebri lineari che richiedono frequenti rami o contengono molte operazioni di algebra a livello di elemento
  • Carichi di lavoro che accedono alla memoria in modo sparsi
  • Carichi di lavoro che richiedono aritmetica ad alta precisione
  • Carichi di lavoro della rete neurale che contengono operazioni personalizzate nel ciclo di addestramento principale

Integrazione di Controlli di servizio VPC

I Controlli di servizio VPC di Cloud TPU consentono di definire i perimetri di sicurezza attorno alle risorse Cloud TPU e controllare lo spostamento dei dati al confine tra perimetri. Per ulteriori informazioni sui Controlli di servizio VPC, consulta Panoramica dei Controlli di servizio VPC. Per informazioni sulle limitazioni nell'utilizzo di Cloud TPU con i Controlli di servizio VPC, consulta le limitazioni e i prodotti supportati.

Introduzione a Cloud TPU

Configurare un account Google Cloud Per utilizzare le risorse Cloud TPU, devi creare un account e un progetto Google Cloud.
Attiva le API Cloud TPU Per addestrare un modello, devi attivare le API Compute Engine e Cloud TPU.
Concedi a Cloud TPU l'accesso ai tuoi bucket Cloud Storage Cloud TPU richiede l'accesso ai bucket Cloud Storage in cui archivi i set di dati.
Addestra il modello Per iniziare, leggi una delle guide rapide o delle tutorial di Cloud TPU.
Analizza il modello Utilizza TensorBoard o altri strumenti per visualizzare il modello e monitorare le metriche chiave.

Passaggi successivi

Vuoi saperne di più su Cloud TPU? Le seguenti risorse potrebbero esserti utili.

Guida rapida all'utilizzo di Compute Engine Prova ad addestrare un modello utilizzando Cloud TPU con una delle nostre guide rapide.
Colab TPU Prova Cloud TPU utilizzando Colab gratuiti.
Tutorial di Cloud TPU Testa Cloud TPU utilizzando i modelli ML di riferimento.
Architettura di sistema di Cloud TPU Trova informazioni più dettagliate sulle TPU.
Prezzi Fatti un'idea di come Cloud TPU può elaborare i tuoi carichi di lavoro di machine learning in modo conveniente.
Contatta il team di vendita Hai un'implementazione o un'applicazione specifica di cui vuoi parlare? Contatta il tuo rappresentante di vendita Cloud TPU.