TPU-Typen und -Topologien
Übersicht
Wenn Sie eine TPU-Konfiguration erstellen, müssen Sie einen TPU-Typ und eine TPU-Größe oder einen TPU-Typ und eine Topologie (logische Chipanordnung) angeben.
Dafür gibt es zwei Möglichkeiten in einem gcloud create
-Vorgang:
- Erstellen Sie einen einzelnen
accelerator-type
-String, der den Typ (v2, v3 oder v4) und die Anzahl der angeforderten TensorCores angibt. - Geben Sie den TPU-Parameter
type
zusammen mit dem Flagtopology
an.
Beispiele zum Erstellen von TPUs mit diesen accelerator-type
-Strings oder den Flags type
und topology
finden Sie unter TPU-Typen.
Weitere Informationen zu den verschiedenen Cloud TPU-Versionen und -Topologien finden Sie im Dokument zur Systemarchitektur.
TPU-Typen
Mit dem Flag „accelerator-type“ des Befehls gcloud
geben Sie eine TPU-Konfiguration an. Eine TPU-Konfiguration besteht aus einer TPU-Version und der Anzahl von TensorCores. Mit dem folgenden gcloud
-Befehl wird beispielsweise eine v3
-TPU mit 128 TensorCores erstellt:
$ gcloud compute tpus tpu-vm create tpu-name
--zone=zone
--accelerator-type=v3-128
--version=tpu-vm-tf-2.11.0
Sie können die TPU-Konfiguration auch als Anzahl der TPU-Chips und deren logische Anordnung (Topologie) angeben. Weitere Informationen finden Sie unter Chipbasierte TPU-Konfigurationen.
TensorCore-basierte TPU-Konfigurationen
Bei allen TPU-Typen folgt die Version auf die Anzahl der TensorCores (z.B. 8, 32, 128).
Beispiel: --accelerator-type=v2-8
gibt eine TPU-v2
mit 8 TensorCores an und v3-1024
gibt eine v3
-TPU mit 1.024 TensorCores an (ein Segment eines v3
-Pods).
Chip-Topologie-basierte TPU-Konfigurationen
v4-Konfigurationen werden mit einer TPU-Version und einer Topologie angegeben. Die Topologie wird mit einem 3-Tupel angegeben, das beschreibt, wie die Chips angeordnet sind. Die 32-TensorCore-Konfiguration kann beispielsweise in Chips als 2x2x4 (16 Chips mit jeweils 2 TensorCores) dargestellt werden. Das 3-Tupel gibt nur die Topologie an, nicht die Konfiguration. Dafür ist eine TPU-Version erforderlich.
Die Darstellung einer v4-Topologie ist AxBxC, wobei A<=B<=C und A,B,C entweder alle <=4 oder alle ganzzahligen Vielfachen von 4 sind. Die Werte A, B und C sind die Chip-Zählwerte der drei Dimensionen. Topologien, bei denen 2A=B=C oder 2A=2B=C auch Varianten optimiert hat, die für die gesamte Kommunikation optimiert sind, z. B. 4 × 4 × 8, 8 × 8 × 16 und 12 × 12 × 24.
Weitere Informationen zu v4-Topologien finden Sie unter TPU v4-Konfigurationen.
Chip-Topologie-basierte Topologien erstellen (v4)
In v4 sehen Sie Geräte anstelle von TensorCores, ein Gerät pro Chip. Um Chip-Topologie-basierte Topologien anzugeben, wurden in Version 4 dreidimensionale Topologieformate (z. B. 4 x 4 × 4) zusammen mit dem Flag --topology
für den gcloud
-Create-TPU-Vorgang eingeführt. Die Tabellen unter Topologievarianten enthalten Beispiele für andere unterstützte Chip-Topologie-basierte Topologien.
Sie können einen V4-Typ und eine Topologie mit den Flags type
und topology
für den Erstellungsvorgang gcloud
angeben. Mit dem folgenden gcloud
-Befehl wird beispielsweise eine v4
-TPU mit 64 Chips in einer würfelförmigen 4 x 4-x-4-Würfel erstellt.
$ gcloud alpha compute tpus tpu-vm create tpu-name
--zone=zone
--type=v4
--topology=4x4x4
--version=tpu-vm-tf-2.11.0
Der unterstützte Wert für --type
ist v4
.
Topologievarianten
Die mit einem TensorCore- oder Chipzähler verknüpfte Standardtopologie ist einer Cube am ähnlichsten (siehe Topologien). Diese Form macht es wahrscheinlich zur besten Wahl für das datenparallele ML-Training. Andere Topologien können für Arbeitslasten mit mehreren Parallelitätstypen (z. B. Modell- und Datenparallelität oder räumliche Partitionierung einer Simulation) nützlich sein. Diese Arbeitslasten erzielen die beste Leistung, wenn die Segmentform auf die verwendete Parallelität abgestimmt ist. Beispielsweise entspricht eine 4-Wege-Modellparallelität auf der X-Achse und eine 256-Wege-Datenparallelität für die Y- und Z-Dimensionen einer 4 x 16 x 16-Topologie.
Modelle mit mehreren Parallelismus-Dimensionen erzielen die beste Leistung, wenn ihre Parallelismus-Dimensionen Torus-Dimensionen zugeordnet sind. Hierbei handelt es sich in der Regel um Daten- und Modellparallele LSMs (Parallel Language Large Language Models). Für einen TPU v4-Pod-Slice mit einer Topologie von 8 x 16 x 16 betragen die Torus-Dimensionen 8, 16 und 16. Es ist leistungsstärker, die Parallelität des Modells mit 8 oder 16 Modellen zu verwenden (die einer der physischen Torusdimensionen zugeordnet ist). Eine 4-Wege-Modellparallelität wäre mit dieser Topologie nicht optimal, da sie nicht mit Torusdimensionen verbunden ist. Sie wäre jedoch optimal bei einer 4x16x32-Topologie mit derselben Anzahl von Chips.
Kleine v4-Topologien
Cloud TPU unterstützt die folgenden TPU v4-Slices, die kleiner als 64 Chips sind, also ein Würfel mit 4 × 4 × 4 Punkten. Sie können diese kleinen v4-Topologien entweder mit ihrem TensorCore-basierten Namen (z. B. v4-32) oder ihrer Topologie (z. B. 2x2x4) erstellen:
Name (basierend auf der TensorCore-Anzahl) | Anzahl der Chips | Topologie |
v4–8 | 4 | 2x2x1 |
v4–16 | 8 | 2x2x2 |
v4–32 | 16 | 2x2x4 |
v4–64 | 32 | 2x4x4 |
Große v4-Topologien
TPU v4-Segmente sind in Schritten von 64 Chips verfügbar, wobei die Formen ein Vielfaches von 4 auf allen drei Dimensionen sind. Die Abmessungen müssen auch in aufsteigender Reihenfolge angegeben werden. In der folgenden Tabelle sind mehrere Beispiele aufgeführt. Einige dieser Topologien sind „benutzerdefinierte“ Topologien, die nur mit der Topologie von Google Cloud gestartet werden können, da sie dieselbe Anzahl von Chips wie eine gängige benannte Topologie haben.
Name (basierend auf der TensorCore-Anzahl) | Anzahl der Chips | Topologie |
v4–128 | 64 | 4x4x4 |
v4–256 | 128 | 4x4x8 |
v4–512 | 256 | 4x8x8 |
Siehe Topology API | 256 | 4x4x16 |
v4–1024 | 512 | 8x8x8 |
v4–1536 | 768 | 8x8x12 |
v4–2048 | 1.024 | 8x8x16 |
Siehe Topology API | 1.024 | 4x16x16 |
v4–4096 | 2.048 | 8x16x16 |
… | … | … |
Topologie-API
Die gcloud
TPU API kann so verwendet werden, um Cloud TPU Pod-Segmente mit benutzerdefinierter Topologie zu erstellen:
$ gcloud alpha compute tpus tpu-vm create tpu-name \
--zone=us-central2-b \
--subnetwork=tpusubnet \
--type=v4 \
--topology=4x4x16 \
--version=runtime-version
Topologien
In der folgenden Abbildung sehen Sie drei mögliche Topologieformen und die zugehörigen Flag-Einstellungen für topology
.
TPU-Typkompatibilität
Sie können den TPU-Typ in einen anderen TPU-Typ mit der gleichen Anzahl von TensorCores oder Chips ändern (z. B. v3-128
und v4-128
) und Ihr Trainingsskript ohne Codeänderungen ausführen.
Wenn Sie jedoch zu einem TPU-Typ mit einer größeren oder kleineren Anzahl von Chips oder TensorCores wechseln, müssen Sie eine erhebliche Feinabstimmung und Optimierung vornehmen.
Weitere Informationen finden Sie unter Auf TPU-Pods trainieren.
Nächste Schritte
- Mehr über die TPU-Architektur auf der Seite zur Systemarchitektur erfahren
- Weitere Informationen zu den für Cloud TPU geeigneten Modellen finden Sie unter Verwendung von TPUs.