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 | Sì |
2x2 | 4 | 1/2 | 1 | v6e-4 |
ct6e-standard-4t |
Organizzatore secondario | Sì |
2x4 | 8 | 1 | 1 | v6e-8 |
ct6e-standard-8t |
Singolo host | Sì |
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.
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 testv6e-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
Nella console Google Cloud, vai alla pagina TPU:
Fai clic su Crea TPU.
Nel campo Nome, inserisci un nome per la TPU.
Nella casella Zona, seleziona la zona in cui vuoi creare la TPU.
Nella casella Tipo di TPU, seleziona
v6e-32
.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.Fai clic sul pulsante di attivazione/disattivazione Attiva l'inserimento in coda.
Nel campo Nome della risorsa in coda, inserisci un nome per la richiesta di risorsa in coda.
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