TPU v6e

Questo documento descrive l'architettura e le configurazioni supportate di Cloud TPU v6e (Trillium).

Trillium è l'acceleratore di AI di ultima generazione di Cloud TPU. Su tutte le piattaforme tecniche, come l'API e i log, e in tutto questo documento, Trillium verrà indicato come v6e.

Con un'impronta di 256 chip per pod, la versione 6e condivide molte somiglianze con la versione 5e. Questo sistema è ottimizzato per essere il prodotto di maggior valore per l'addestramento, la messa a punto e la pubblicazione di trasformatori, conversione di testo in immagini e reti neurali convoluzionali (CNN).

Architettura di sistema

Ogni chip v6e contiene un Tensor Core. Ogni Tensor Core ha 4 unità di moltiplicazione a matrice (MXU), un'unità vettoriale e un'unità scalare. La tabella seguente mostra le specifiche principali e i relativi valori per TPU v6e rispetto a TPU v5e.

Specifica v5e v6e
Prestazioni/costo totale di proprietà (TCO) (previsto) 0,65x 1
Potenza di calcolo di picco per chip (bf16) 197 TFLOP 918 TFLOP
Potenza di calcolo di picco per chip (Int8) 393 TOP 1836 TOPs
Capacità HBM per chip 16 GB 32 GB
Larghezza di banda HBM per chip 819 Gbps 1640 GB/s
Larghezza di banda dell'interconnessione tra chip (ICI) 1600 Gbps 3584 Gbps
Porte ICI per chip 4 4
DRAM per host 512 GiB 1536 GiB
Chip per host 8 8
Dimensioni pod di TPU 256 chip 256 chip
Topologia di interconnessione Toro 2D Toro 2D
Potenza di calcolo di picco BF16 per pod 50,63 PFLOP 234,9 PFLOP
Larghezza di banda all-reduce per pod 51,2 TB/s 102,4 TB/s
Larghezza di banda bisezionale per pod 1,6 TB/s 3,2 TB/s
Configurazione NIC per host NIC 2 x 100 Gbps NIC 4 x 200 Gbps
Larghezza di banda della rete del data center per pod 6,4 Tbps 25,6 Tbps
Funzionalità speciali - SparseCore

Configurazioni supportate

TPU v6e supporta l'addestramento fino a 256 chip v6e e l'inferenza su un singolo host per fino a 8 chip.

La tabella seguente mostra le forme di slice 2D supportate per la versione 6e:

Topologia Chip TPU Hosting VM Tipo di acceleratore (API TPU) Tipo di macchina (API GKE) Ambito Supporta l'inferenza?
1x1 1 1/8 1 v6e-1 ct6e-standard-1t Organizzatore secondario
2x2 4 1/2 1 v6e-4 ct6e-standard-4t Organizzatore secondario
2x4 8 1 1 v6e-8 ct6e-standard-8t Singolo host
2x4 8 1 2 - ct6e-standard-4t Singolo host No
4x4 16 2 4 v6e-16 ct6e-standard-4t Multi-host No
4x8 32 4 8 v6e-32 ct6e-standard-4t Multi-host No
8x8 64 8 16 v6e-64 ct6e-standard-4t Multi-host No
8x16 128 16 32 v6e-128 ct6e-standard-4t Multi-host No
16x16 256 32 64 v6e-256 ct6e-standard-4t Multi-host No

Le slice con 8 chip (v6e-8) collegate a una singola VM sono ottimizzate per l'inferenza, consentendo di utilizzare tutti e 8 i chip in un singolo carico di lavoro di pubblicazione.

Per informazioni sul numero di VM per ogni topologia, consulta Tipi di VM.

Tipi di VM

Ogni VM TPU v6e può contenere 1, 4 o 8 chip. I sezioni con 4 chip o meno hanno lo stesso nodo NUMA (accesso alla memoria non uniforme). Per ulteriori informazioni sui nodi NUMA, consulta Accesso alla memoria non uniforme su Wikipedia.

Diagramma di un host v6e

Le sezioni v6e vengono create utilizzando VM half-host, ciascuna con 4 chip TPU. Esistono due eccezioni a questa regola:

  • v6e-1: una VM con un solo chip, destinata principalmente ai test
  • v6e-8: una VM full-host ottimizzata per un caso d'uso di inferenza con tutti e 8 i chip collegati a una singola VM.

La tabella seguente mostra un confronto dei tipi di VM TPU v6e:

Tipo di VM Numero di vCPU per VM RAM (GB) per VM Numero di nodi NUMA per VM
VM a 1 chip 44 176 1
VM a 4 chip 180 720 1
VM da 8 chip 180 1440 2

Specifica la configurazione v6e

Quando alloca una sezione TPU v6e utilizzando l'API TPU, specifica le dimensioni e la forma utilizzando i parametri AcceleratorType o AcceleratorConfig.

Se utilizzi GKE, utilizza il flag --machine-type per specificare un tipo di macchina che supporti la TPU che vuoi utilizzare. Per saperne di più, consulta Eseguire il deployment dei carichi di lavoro TPU in GKE Standard nella documentazione di GKE.

Utilizza AcceleratorType

Quando alloca le risorse TPU, utilizza AcceleratorType per specificare il numero di TensorCore in una sezione. Il valore specificato per AcceleratorType è una stringa con il formato: v$VERSION-$TENSORCORE_COUNT. Ad esempio, v6e-8 specifica una sezione TPU v6e con 8 TensorCore.

L'esempio seguente mostra come creare uno slice TPU v6e con 32 TensorCore utilizzando AcceleratorType:

gcloud

    $ gcloud compute tpus tpu-vm create tpu-name \
        --zone=zone \
        --accelerator-type=v6e-32 \
        --version=v2-alpha-tpuv6e

Console

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Fai clic su Crea TPU.

  3. Nel campo Nome, inserisci un nome per la TPU.

  4. Nella casella Zona, seleziona la zona in cui vuoi creare la TPU.

  5. Nella casella Tipo di TPU, seleziona v6e-32.

  6. Nella casella Versione software TPU, seleziona v2-alpha-tpuv6e. Quando crei una VM Cloud TPU, la versione software TPU specifica la versione del runtime TPU da installare. Per ulteriori informazioni, consulta le immagini VM TPU.

  7. Fai clic sul pulsante di attivazione/disattivazione Attiva l'inserimento in coda.

  8. Nel campo Nome della risorsa in coda, inserisci un nome per la richiesta di risorsa in coda.

  9. Fai clic su Crea.

Utilizza AcceleratorConfig

Puoi anche utilizzare AcceleratorConfig per specificare il numero di TensorCore che vuoi utilizzare. Tuttavia, poiché non esistono varianti di topologia 2D personalizzate per la TPU v6e, non c'è differenza tra l'utilizzo di AcceleratorConfig e AcceleratorType.

Per configurare una TPU v6e utilizzando AcceleratorConfig, utilizza i flag --version e --topology. Imposta --version sulla versione di TPU che vuoi utilizzare e --topology sulla disposizione fisica dei chip TPU nella sezione. Il valore specificato per AcceleratorConfig è una stringa con il formato AxB, dove A e B sono i conteggi dei chip in ciascuna direzione.

L'esempio seguente mostra come creare uno slice TPU v6e con 32 TensorCore utilizzando AcceleratorType disposti in una topologia 4x8:

    $ gcloud compute tpus tpu-vm create tpu-name \
        --zone=zone \
        --type=v6e \
        --topology=4x8 \
        --version=v2-alpha-tpuv6e