Informazioni sulle TPU

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.

    • Funzionalità TPU richieste: FLOPS di picco elevati, supporto a bassa precisione e larghezza di banda di interconnessione elevata.
    • Versioni TPU consigliate:
      • TPU7x. Questa versione offre prestazioni FP8 elevate.
      • TPU v5p. Questa versione supporta configurazioni di cluster su larga scala.
  • Ottimizzazione e distillazione dei modelli: adattamento dei modelli esistenti utilizzando metodi efficienti in termini di parametri o addestramento di varianti più piccole del modello.

    • Funzionalità TPU richieste: calcolo moderato e capacità di memoria sufficiente.
    • Versioni TPU consigliate:
      • TPU v6e. Questa versione è economica per le attività di addestramento standard.
      • TPU7x. Questa versione offre prestazioni elevate per il fine-tuning su larga scala.

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:
      • TPU v6e. Questa versione è ottimizzata per la gestione conveniente su larga scala.
      • TPU7x. Questa versione offre un'elevata larghezza di banda HBM e una SRAM di grandi dimensioni per accelerare la generazione di token.
  • 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:
      • TPU v6e. Questa versione è conveniente per l'elaborazione batch ad alta velocità effettiva.
      • TPU7x. Questa versione offre un'elevata densità di calcolo per elaborare rapidamente batch di grandi dimensioni.

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:
      • TPU7x. Questa versione include quattro SparseCore per chip e offre la maggiore capacità HBM.
      • TPU v6e. Questa versione include due SparseCore per chip per una pubblicazione economicamente vantaggiosa.
      • TPU v5p. Questa versione include quattro SparseCore per chip per l'addestramento su larga scala.

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.

    • Funzionalità TPU richieste: ICI a bassa latenza per trasferimenti rapidi di pesi e attivazioni tra chip e connessioni host a larghezza di banda elevata.
    • Versioni di TPU consigliate:

      Queste versioni della TPU utilizzano un'interconnessione a toro 3D ad alta velocità.

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