Introduzione a Cloud TPU
Le TPU o Tensor Processing Unit sono acceleratori hardware progettati da Google per carichi di lavoro di machine learning. Per informazioni più dettagliate sull'hardware TPU, consulta la pagina relativa all'architettura di sistema. Cloud TPU è un servizio web che rende le TPU disponibili come risorse di computing scalabili su Google Cloud.
Le TPU addestrano i tuoi modelli in modo più efficiente utilizzando hardware progettato per eseguire matrici di grandi dimensioni spesso trovate negli algoritmi di machine learning. Le TPU hanno una memoria HBM (chip a larghezza di banda elevata) che consente di utilizzare modelli e dimensioni batch di dimensioni maggiori. Le TPU possono essere connesse in gruppi chiamati pod che scalano i tuoi carichi di lavoro con modifiche minime o nulle al codice.
Ti consigliamo di avviare il tuo progetto di machine learning con una singola TPU e di scalarlo su un pod TPU per la produzione. Per iniziare, puoi sfruttare una serie di modelli di riferimento open source che i team di ricerca e progettazione di Google ottimizzano per l'utilizzo con le TPU. Per ulteriori informazioni, consulta Modelli di riferimento.
Come funziona?
Per capire come funzionano le TPU, ti aiuta a capire in che modo gli 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. Ciò significa che una CPU funziona con software e memoria in questo modo:
Il maggiore vantaggio delle CPU è la loro flessibilità. Puoi caricare qualsiasi tipo di software su una CPU per vari tipi di applicazioni. Ad esempio, puoi utilizzare una CPU per l'elaborazione di testi su PC, il controllo di motori a razzo, l'esecuzione di transazioni bancarie o la classificazione di immagini con una rete neurale.
Una CPU carica i valori dalla memoria, esegue un calcolo sui 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 noto come collo di bottiglia von Neumann.
Come funziona una GPU
Per aumentare la velocità effettiva, le GPU contengono migliaia di unità logiche aritmetiche (ALU) in un singolo processore. Una GPU moderna di solito contiene tra 2500 e 5000 ALU. L'elevato numero di processori significa che puoi eseguire migliaia di moltiplicazioni e aggiunte contemporaneamente.
Questa architettura GPU funziona bene su applicazioni con un parallelismo enorme, come le operazioni di matrice in una rete neurale. Infatti, con un carico di lavoro di addestramento tipico 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 diversi. Pertanto, le GPU hanno lo stesso problema delle CPU. Per ogni calcolo nelle migliaia di ALU, una GPU deve accedere ai registri o alla memoria condivisa per leggere gli operandi e archiviare i risultati di calcolo intermedio.
Come funziona una TPU
Google ha progettato le Cloud TPU come processore a matrice specializzato per i carichi di lavoro di rete neurale. Le TPU non possono eseguire elaboratori di testi, controllare motori a razzo o eseguire transazioni bancarie, ma sono in grado di gestire superflue operazioni a matrice utilizzate nelle reti neurali.
L'attività principale per le TPU è l'elaborazione delle matrici, che è una combinazione di operazioni di moltiplicazione e accumulo. Le TPU contengono migliaia di accumulatori moltiplicati tra loro direttamente collegati tra loro per formare una grande matrice fisica. Questa è chiamata architettura di array sistolico. Cloud TPU v3, contiene due array sistolici di 128 x 128 ALU su un singolo processore.
L'host TPU trasmette i dati in una coda in-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 i risultati dalla coda di outfeed e li archivia nella memoria dell'host.
Per eseguire le operazioni della matrice, la TPU carica i parametri dalla memoria HBM nell'unità di moltiplicazione della matrice (MXU).
Quindi, la TPU carica i dati dalla memoria HBM. Ogni volta che viene eseguita ogni moltiplicazione, il risultato viene passato al successivo moltiplicatore-accumulatore. L'output è la somma di tutti i risultati della moltiplicazione tra i dati e i parametri. Non è necessario l'accesso alla memoria durante il processo di moltiplicazione delle matrici.
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 alcune situazioni, potresti voler utilizzare GPU o CPU sulle istanze di Compute Engine per eseguire i carichi di lavoro di machine learning. In generale, puoi decidere quale hardware è il più adatto al tuo carico di lavoro in base alle seguenti linee guida:
CPU
- Prototipazione rapida che richiede la massima flessibilità
- Modelli semplici che non richiedono molto tempo per l'addestramento
- Modelli di piccole dimensioni con batch di dimensioni ridotte 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 di rete del sistema host
GPU
- Modelli con un numero significativo di operazioni TensorFlow/PyTorch/JAX personalizzate che devono essere eseguite almeno in parte sulle CPU
- Modelli con operazioni TensorFlow/PyTorch non disponibili su Cloud TPU
- Modelli da medi a grandi con batch batch di dimensioni maggiori
TPU
- Modelli dominati dai calcoli a matrice
- Modelli senza operazioni TensorFlow/PyTorch/JAX personalizzate all'interno del ciclo di addestramento principale
- Modelli che vengono addestrati per settimane o mesi
- Modelli di grandi dimensioni con batch di grandi dimensioni efficaci
Le Cloud TPU non sono adatte ai seguenti carichi di lavoro:
- Programmi di algebra lineari che richiedono diramazioni frequenti o contengono molte operazioni di algebra a livello di elemento
- Carichi di lavoro che accedono alla memoria in modo sparso
- 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 di controllare lo spostamento dei dati all'interno del confine del perimetro. Per saperne di più sui Controlli di servizio VPC, consulta Panoramica dei Controlli di servizio VPC. Per saperne di più sulle limitazioni relative all'utilizzo di Cloud TPU con i Controlli di servizio VPC, consulta la pagina relativa ai prodotti e alle limitazioni supportati.
Introduzione a Cloud TPU
Configura un account Google Cloud | Prima di poter 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 tuoi set di dati. |
Addestra il modello | Per iniziare, leggi le guide rapide o i tutorial di Cloud TPU. |
Analizza il modello | Utilizza TensorBoard o altri strumenti per visualizzare il modello e monitorare le metriche principali. |
Quali sono i 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 | Sperimenta con Cloud TPU utilizzando Colab gratuiti. |
Tutorial su Cloud TPU | Testa Cloud TPU utilizzando i modelli di ML di riferimento. |
Architettura di sistema di Cloud TPU | Trova informazioni più dettagliate sulle TPU. |
Prezzi | Scopri in che modo 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 rappresentante di vendita di Cloud TPU. |