Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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 Flag topology 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.

Image

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