Le Tensor Processing Unit (TPU) sono circuiti integrati specifici per le applicazioni (ASIC) sviluppati da Google e progettati per accelerare i carichi di lavoro di machine learning (ML) e intelligenza artificiale (AI). Che tu stia addestrando modelli di base complessi per settimane o eseguendo inferenze su larga scala, le TPU offrono risorse di calcolo scalabili e specializzate ottimizzate per framework di AI avanzati.
Questo documento descrive il ruolo delle TPU in Google Cloud, le specifiche tecniche di ogni versione di TPU disponibile, le caratteristiche di rendimento, le considerazioni sui prezzi e la loro mappatura alle serie di macchine Compute Engine.
Che cos'è una TPU?
Una TPU è un ASIC progettato su misura per gestire le esigenze di operazioni con matrici di grandi dimensioni fondamentali per gli algoritmi di ML.
I componenti architettonici chiave di un sistema TPU includono:
TensorCore: l'unità di elaborazione di un chip TPU. Ogni Tensor Core è costituito da una o più unità di moltiplicazione a matrice (MXU) che utilizzano l'architettura di array sistolica per eseguire la moltiplicazione di matrici con elevata efficienza, insieme a unità scalari e vettoriali per il flusso di controllo e il calcolo generale.
SparseCore: processori di dataflow specializzati progettati per accelerare le operazioni sparse. SparseCore funziona insieme a TensorCore per elaborare in modo efficiente tabelle di incorporamento di grandi dimensioni, il che lo rende ideale per accelerare i modelli di suggerimenti e gli incorporamenti su larga scala.
Memoria a larghezza di banda elevata (HBM): memoria fisica di grandi dimensioni collegata al chip TPU che offre una larghezza di banda della memoria elevata. La HBM consente l'addestramento e l'utilizzo di modelli più grandi con dimensioni dei batch maggiori.
Istanza TPU: un'istanza di computing Linux che viene eseguita su un host TPU e ha accesso diretto all'hardware TPU sottostante, offrendo accesso a librerie ad alte prestazioni, connettività SSH e log di debug di runtime.
Slice di TPU e pod di TPU: un pod di TPU è un grande cluster contiguo di chip TPU collegati fisicamente. Una sezione TPU è una partizione logica di un pod (composta da uno o più host connessi tramite interconnessioni ad alta velocità) assegnata per l'esecuzione di un singolo carico di lavoro.
Compilatore XLA: il compilatore XLA (Accelerated Linear Algebra) compila i grafici di machine learning in istruzioni macchina ottimizzate che vengono eseguite sui TensorCore della TPU.
Versioni di TPU e serie di macchine
Compute Engine supporta più generazioni e versioni di TPU. La tabella seguente fornisce le specifiche chiave per ogni versione di TPU supportata:
| Versione TPU | Serie di macchine | Potenza di calcolo di picco per chip (TFLOP) | Memoria e larghezza di banda TPU | Core per chip | Larghezza di banda dell'interconnessione (ICI) per chip | Larghezza di banda della rete (DCN) per chip | Chip per pod |
|---|---|---|---|---|---|---|---|
| TPU7x (Ironwood) | tpu7x-standard |
BF16: 2307 FP8: 4614 |
192 GiB (7380 GBps) |
2 Tensor Core 4 SparseCore |
1200 GBps | 100 Gbps | 9216 |
| TPU v6e (Trillium) | ct6e-standard |
BF16: 918 FP8: 918 |
32 GiB (1638 GBps) |
1 TensorCore 2 SparseCores |
800 GBps | 100 Gbps | 256 |
| TPU v5p | ct5p-hightpu |
BF16: 459 FP8: 459 |
95 GiB (2765 GBps) |
2 Tensor Core 4 SparseCore |
1200 GBps | 50 Gbps | 8960 |
Caratteristiche delle prestazioni della TPU
Le TPU sono ottimizzate per eseguire operazioni di algebra matriciale densa con la massima efficienza. Per scegliere quando una TPU è più adatta ai tuoi workload di ML, considera le seguenti linee guida.
Casi d'uso ideali e requisiti del workload
La scelta del modello TPU giusto dipende dalle caratteristiche di calcolo, dai requisiti di memoria e dalle esigenze di scalabilità del tuo workload. Seleziona una delle schede seguenti per visualizzare i consigli.
Addestramento AI/ML
Pre-addestramento di modelli di grandi dimensioni: addestramento di modelli di grandi dimensioni da zero. Questi carichi di lavoro sono vincolati al calcolo e alla comunicazione.
Ottimizzazione e distillazione dei modelli: adattamento dei modelli esistenti utilizzando metodi efficienti in termini di parametri o addestramento di varianti più piccole del modello.
Inferenza AI/ML
Distribuzione di modelli online: deployment di modelli per l'interazione in tempo reale in cui la bassa latenza è fondamentale. Questi carichi di lavoro sono limitati dalla larghezza di banda della memoria durante la generazione sequenziale di token.
- Funzionalità TPU richieste: larghezza di banda HBM elevata e SRAM on-chip di grandi dimensioni per ridurre al minimo la latenza di recupero dei dati.
- Versioni TPU consigliate:
Esecuzione dell'inferenza batch: elaborazione offline di grandi set di dati in cui l'obiettivo principale è un throughput elevato. Questi carichi di lavoro sono vincolati al calcolo durante la fase di precompilazione del prompt.
- Funzionalità TPU richieste: elevata densità di calcolo per massimizzare la velocità effettiva per dollaro.
- Versioni TPU consigliate:
Sistemi di raccomandazione
- Elaborazione di incorporamenti di grandi dimensioni: addestramento e distribuzione di modelli di raccomandazione
che utilizzano tabelle di incorporamento di grandi dimensioni. Questi carichi di lavoro sono vincolati
alla capacità e alla comunicazione.
- Funzionalità TPU richieste: hardware SparseCore specializzato per elaborare operazioni sparse in parallelo, grande capacità HBM e supporto per l'offload alla memoria host.
- Versioni TPU consigliate:
Apprendimento per rinforzo
Esecuzione di loop di apprendimento per rinforzo: gestione di workload ibridi che richiedono loop stretti di generazione di campioni e aggiornamento dei pesi delle norme.
Considerazioni sul workload
Le TPU potrebbero non essere la scelta ottimale per i seguenti workload:
- Programmi di algebra lineare che richiedono ramificazioni logiche frequenti o contengono molte operazioni algebriche elemento per elemento.
- Carichi di lavoro che dipendono da operatori personalizzati in JAX o PyTorch eseguiti su CPU.
- Workload scientifici che richiedono l'aritmetica in rappresentazione in virgola mobile a precisione doppia (FP64).
Considerazioni sui prezzi
I seguenti fattori determinano i prezzi delle TPU su Google Cloud:
Versione TPU
Località
Modello di consumo
Per i dettagli completi sui prezzi, consulta la pagina Prezzi delle TPU.
Modelli di consumo e acquisto
Puoi eseguire il provisioning delle istanze TPU utilizzando una delle seguenti opzioni di consumo, a seconda dei requisiti di disponibilità e della tolleranza ai costi:
- On demand: prezzi standard con pagamento a consumo per l'esecuzione immediata. Offre la massima flessibilità del ciclo di vita, ma la disponibilità è soggetta a vincoli di risorse fisiche.
- Spot: capacità in eccesso Google Cloud a prezzi molto scontati (fino al 70%). Poiché Google Cloud può arrestare o eliminare le VM spot per recuperare capacità con un preavviso di 30 secondi, queste istanze di computing sono ideali per carichi di lavoro a tolleranza di errore e con checkpoint.
- Avvio flessibile: Consente di richiedere istanze di computing da un pool dedicato per un massimo di sette giorni con una disponibilità maggiore.
- Prenotazioni future: prenotazioni che garantiscono la capacità e che offrono un prezzo scontato rispetto ai prezzi on demand. Prenota la capacità TPU per una data e un'ora future specificate, fino a 90 giorni (modalità calendario) o per un anno o più. Se Google Cloud approva la richiesta, puoi iniziare a utilizzare la capacità per la durata della prenotazione.
Sconti per impegno di utilizzo (CUD)
Quando richiedi una prenotazione futura di 1 anno o più, puoi ottenere uno sconto per impegno di utilizzo sulla capacità TPU prenotata. L'applicazione di un CUD alle tue istanze di computing ti offre una riduzione significativa del prezzo rispetto alle tariffe on demand in cambio di un periodo di utilizzo impegnato.
Per saperne di più, consulta Sconti per impegno di utilizzo (CUD) per Compute Engine.
Passaggi successivi
- Consulta Macchine TPU nella famiglia di macchine ottimizzate per l'acceleratore.
- Scopri come creare un'istanza TPU.