TPU v6e
In diesem Dokument werden die Architektur und die unterstützten Konfigurationen von Cloud TPU v6e (Trillium) beschrieben.
Trillium ist der KI-Beschleuniger der neuesten Generation von Cloud TPU. Auf allen technischen Oberflächen wie der API und in Protokollen sowie in diesem Dokument wird Trillium als v6e bezeichnet.
Mit einer Chipfläche von 256 Chips pro Pod hat v6e viele Ähnlichkeiten mit v5e. Dieses System ist für das Training, die Feinabstimmung und die Bereitstellung von Transformern, Text-zu-Bild-Modellen und CNNs (Convolutional Neural Networks) optimiert.
Systemarchitektur
Jeder v6e-Chip enthält einen TensorCore. Jeder TensorCore hat vier Matrixmultiplikationseinheiten (MXUs), eine Vektoreinheit und eine Skalareinheit. In der folgenden Tabelle sind die wichtigsten Spezifikationen und ihre Werte für TPU v6e im Vergleich zu TPU v5e aufgeführt.
Spezifikation | v5e | v6e |
---|---|---|
Leistung/Gesamtbetriebskosten (TCO) (erwartet) | 0,65‑fach | 1 |
Maximale Rechenleistung pro Chip (bf16) | 197 TFLOPS | 918 TFLOPS |
Spitzenrechenleistung pro Chip (Int8) | 393 TOPs | 1836 TOPs |
HBM-Kapazität pro Chip | 16 GB | 32 GB |
HBM-Bandbreite pro Chip | 819 Gbit/s | 1.640 Gbit/s |
Inter-Chip-Interconnect-Bandbreite (ICI) | 1.600 Gbit/s | 3584 Gbit/s |
ICI-Ports pro Chip | 4 | 4 |
DRAM pro Host | 512 GiB | 1.536 GiB |
Chips pro Host | 8 | 8 |
TPU-Pod-Größe | 256 Chips | 256 Chips |
Interconnect-Topologie | 2D-Torus | 2D-Torus |
BF16-Grafikleistung pro Pod | 50,63 PFLOPs | 234,9 PFLOPs |
All-Reduce-Bandbreite pro Pod | 51,2 TB/s | 102,4 TB/s |
Geteilte Bandbreite pro Pod | 1,6 TB/s | 3,2 TB/s |
NIC-Konfiguration pro Host | 2 x 100 Gbit/s NIC | 4 x 200 Gbit/s NIC |
Rechenzentrumsnetzwerkbandbreite pro Pod | 6,4 Tbit/s | 25,6 Tbit/s |
Besondere Features | - | SparseCore |
Unterstützte Konfigurationen
TPU v6e unterstützt das Training mit bis zu 256 v6e-Chips und die Inferenz mit einem einzelnen Host für bis zu 8 Chips.
In der folgenden Tabelle sind die 2D-Scheibenformen aufgeführt, die für v6e unterstützt werden:
Topologie | TPU-Chips | Hosts | VMs | Beschleunigertyp (TPU API) | Maschinentyp (GKE API) | Umfang | Unterstützt die Inferenz? |
---|---|---|---|---|---|---|---|
1x1 | 1 | 1/8 | 1 | v6e-1 |
ct6e-standard-1t |
Untergeordneter Host | Ja |
2x2 | 4 | 1/2 | 1 | v6e-4 |
ct6e-standard-4t |
Untergeordneter Host | Ja |
2x4 | 8 | 1 | 1 | v6e-8 |
ct6e-standard-8t |
Einzelner Host | Ja |
2x4 | 8 | 1 | 2 | - | ct6e-standard-4t |
Einzelner Host | Nein |
4x4 | 16 | 2 | 4 | v6e-16 |
ct6e-standard-4t |
Mehrere Hosts | Nein |
4x8 | 32 | 4 | 8 | v6e-32 |
ct6e-standard-4t |
Mehrere Hosts | Nein |
8x8 | 64 | 8 | 16 | v6e-64 |
ct6e-standard-4t |
Mehrere Hosts | Nein |
8x16 | 128 | 16 | 32 | v6e-128 |
ct6e-standard-4t |
Mehrere Hosts | Nein |
16x16 | 256 | 32 | 64 | v6e-256 |
ct6e-standard-4t |
Mehrere Hosts | Nein |
Slices mit 8 Chips (v6e-8
), die mit einer einzelnen VM verbunden sind, sind für die Inferenz optimiert. So können alle 8 Chips in einer einzelnen Arbeitslast verwendet werden.
Informationen zur Anzahl der VMs für jede Topologie finden Sie unter VM-Typen.
VM-Typen
Jede TPU v6e-VM kann einen, vier oder acht Chips enthalten. Slices mit 4 Chips und weniger haben denselben NUMA-Knoten (Non-Uniform Memory Access). Weitere Informationen zu NUMA-Knoten finden Sie in der Wikipedia unter Non-Uniform Memory Access.
v6e-Slices werden mit Half-Host-VMs mit jeweils 4 TPU-Chips erstellt. Von dieser Regel gibt es zwei Ausnahmen:
v6e-1
: Eine VM mit nur einem einzigen Chip, die hauptsächlich zu Testzwecken dientv6e-8
: Eine Full-Host-VM, die für einen Inferenz-Use-Case optimiert wurde und bei der alle 8 Chips an eine einzelne VM angeschlossen sind.
Die folgende Tabelle zeigt einen Vergleich der VM-Typen für TPU v6e:
VM-Typ | Anzahl der vCPUs pro VM | RAM (GB) pro VM | Anzahl der NUMA-Knoten pro VM |
---|---|---|---|
VM mit einem Chip | 44 | 176 | 1 |
4-Chip-VM | 180 | 720 | 1 |
VM mit 8 Chips | 180 | 1440 | 2 |
V6e-Konfiguration angeben
Wenn Sie mit der TPU API ein TPU v6e-Stück zuweisen, geben Sie dessen Größe und Form entweder mit den Parametern AcceleratorType
oder AcceleratorConfig
an.
Wenn Sie GKE verwenden, verwenden Sie das Flag --machine-type
, um einen Maschinentyp anzugeben, der die gewünschte TPU unterstützt. Weitere Informationen finden Sie in der GKE-Dokumentation unter TPU-Arbeitslasten in GKE Standard bereitstellen.
AcceleratorType
verwenden
Wenn Sie TPU-Ressourcen zuweisen, geben Sie mit AcceleratorType
die Anzahl der TensorCores in einem Slice an. Der für AcceleratorType
angegebene Wert ist ein String im Format v$VERSION-$TENSORCORE_COUNT
.
v6e-8
gibt beispielsweise ein TPU-Segment vom Typ v6e mit 8 TensorCores an.
Das folgende Beispiel zeigt, wie Sie mit AcceleratorType
ein TPU v6e-Stück mit 32 TensorCores erstellen:
gcloud
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=zone \ --accelerator-type=v6e-32 \ --version=v2-alpha-tpuv6e
Console
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie auf TPU erstellen.
Geben Sie im Feld Name einen Namen für die TPU ein.
Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.
Wählen Sie im Feld TPU-Typ die Option
v6e-32
aus.Wählen Sie im Feld TPU-Softwareversion die Option
v2-alpha-tpuv6e
aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.Klicken Sie auf den Schalter Warteschlange aktivieren.
Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.
Klicken Sie auf Erstellen.
AcceleratorConfig
verwenden
Sie können auch AcceleratorConfig
verwenden, um die Anzahl der zu verwendenden TensorCores anzugeben. Da es jedoch keine benutzerdefinierten 2D-Topologievarianten für TPU v6e gibt, gibt es keinen Unterschied zwischen der Verwendung von AcceleratorConfig
und AcceleratorType
.
Verwenden Sie zum Konfigurieren einer TPU v6e mit AcceleratorConfig
die Flags --version
und --topology
. Legen Sie --version
auf die gewünschte TPU-Version und --topology
auf die physische Anordnung der TPU-Chips im Slice fest. Der für AcceleratorConfig
angegebene Wert ist ein String im Format AxB
, wobei A
und B
die Chipanzahl in jede Richtung ist.
Im folgenden Beispiel wird gezeigt, wie Sie einen TPU v6e-Speicher mit 32 TensorCores mit AcceleratorType
in einer 4x8-Topologie erstellen:
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=zone \ --type=v6e \ --topology=4x8 \ --version=v2-alpha-tpuv6e