TPU-Typen und Topologien
TPU-Konfigurationen
Wenn Sie eine TPU erstellen, müssen Sie eine TPU-Konfiguration angeben. Sie können eine TPU-Konfiguration als TensorCores oder TPU-Chips festlegen. Eine TPU-Konfiguration in Bezug auf Chips muss nur in erweiterten Szenarien angegeben werden, in denen Sie ein großes Modell trainieren und seine Leistung optimieren.
TensorCore-basierte Konfiguration
Sie können eine TensorCore-basierte Konfiguration mit TPUs der Version 2 und 4 verwenden. Sie beschreiben TensorCore-basierte Konfigurationen mit einer TPU-Version und die Anzahl der zu verwendenden TensorCores. Beispiel: v4-128
gibt eine Konfiguration mit v4 TPUs und 128 TensorCores an. Sie geben eine TensorCore-basierte Konfiguration mit dem Flag --accelerator-type
des gcloud compute tpus tpu-vm create-Befehls an:
$ gcloud compute tpus tpu-vm create tpu-name --zone=zone --accelerator-type=v3-128 --version=tpu-vm-tf-2.12.0
Chipbasierte TPU-Konfiguration
Sie können eine TPU-Chip-basierte Konfiguration mit TPU-Version v4 und höher verwenden.
Sie beschreiben chipbasierte Konfigurationen mit einer TPU-Version und einer Topologie (einer physischen Anordnung von TPU-Chips). Sie geben eine TPU-Version mit einem String wie "v4
" an. Sie definieren eine Topologie mit einem 3-Tuple, das beschreibt, wie die Chips in drei Dimensionen angeordnet sind. Sie geben eine chipbasierte Konfiguration mit den Flags --version
und --topology
des gcloud-Befehls „tpus tpu-vm erstellen“ an. Der folgende Befehl gibt beispielsweise TPU v4 als TPU-Version und 2x2x4
(16 Chips mit jeweils 2 TensorCores) als Topologie an:
$ gcloud compute tpus tpu-vm create tpu-name --zone=zone --type=v4 --topology=2x2x4 --version=tpu-vm-tf-2.12.0
Weitere Informationen zu den verschiedenen Cloud TPU-Versionen und -Topologien finden Sie unter Systemarchitektur.
Die Darstellung einer v4-Topologie ist AxBxC
, wobei A<=B<=C und A, B, C entweder alle <= 4 oder das gesamte Vielfache von 4 sind. Die Werte A, B und C sind die Anzahl der Chips in jeder der drei Dimensionen. Topologien, bei denen 2A=B=C oder 2A=2B=C auch Topologievarianten für die vollständige 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.
Topologievarianten
Die mit einer bestimmten Chipanzahl verknüpfte Standardtopologie ist die, die einem Würfel am ehesten entspricht (siehe Topologieformen). Diese Form ist wahrscheinlich die beste Wahl für datengestütztes ML-Training. Andere Topologien können für Arbeitslasten mit mehreren Parallelitäten (z. B. Modell- und Datenparallelität oder räumliche Partitionierung einer Simulation) nützlich sein. Diese Arbeitslasten erzielen die beste Leistung, wenn die Topologie mit der verwendeten Parallelität übereinstimmt. Wenn Sie beispielsweise die Parallele für die 4-Wege-Modelle auf die Dimension X und die 256-Wege-Parallelität für die Y- und die Z-Dimension anwenden, entspricht das einer 4 x 16 x 16-Topologie.
Modelle mit mehreren Parallelitätsdimensionen funktionieren am besten, wenn ihre Parallelitätsdimensionen den TPU-Topologiedimensionen zugeordnet sind. Dies sind in der Regel parallele LLMs (Data+Model). Bei einem TPU v4-Pod-Slice mit der Topologie 8x16x16 lauten die TPU-Topologiedimensionen beispielsweise 8, 16 und 16. Es ist leistungsstärker, die 8- oder 16-Wege-Modellparallelität zu verwenden, die einer der physischen TPU-Topologiedimensionen zugeordnet ist. Eine 4-Wege-Modellparallelität wäre mit dieser Topologie nicht optimal, da sie mit keiner der TPU-Topologiedimensionen ausgerichtet ist, dafür aber eine 4 x 16 x 32-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 4x4x4- Cube. 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-Slices sind in Schritten von 64 Chips verfügbar, wobei die Formen in allen drei Dimensionen ein Vielfaches von 4 sind. Außerdem müssen die Abmessungen in aufsteigender Reihenfolge angegeben werden. In der folgenden Tabelle sind mehrere Beispiele aufgeführt. Einige dieser Topologien sind „benutzerdefinierte“ Topologien, die nur mit der Topology API gestartet werden können, da sie die gleiche 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 |
… | … | … |
Topology API
Die gcloud
TPU API kann so verwendet werden:
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=us-central2-b \ --subnetwork=tpusubnet \ --type=v4 \ --topology=4x4x16 \ --version=runtime-version
Topologieformen
In der folgenden Abbildung sehen Sie drei mögliche Topologieformen und die zugehörigen Einstellungen für das Flag 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.