Systemarchitektur

Tensor Processing Units (TPUs) sind anwendungsspezifische integrierte Schaltungen (Application-Specific Integrated Circuits, ASICs), die von Google entwickelt wurden, um Arbeitslasten beim maschinellen Lernen zu beschleunigen. Cloud TPU ist ein Google Cloud-Dienst, der TPUs als skalierbare Ressource zur Verfügung stellt.

TPUs sind darauf ausgelegt, Matrixvorgänge schnell auszuführen. Daher sind sie ideal für ML-Arbeitslasten. Sie können ML-Arbeitslasten auf TPUs mit Frameworks wie TensorFlow, Pytorch und JAX ausführen.

Cloud TPU-Nutzungsbedingungen

Wenn Sie Cloud TPUs noch nicht kennen, finden Sie weitere Informationen auf der Startseite der TPU-Dokumentation. In den folgenden Abschnitten werden die in diesem Dokument verwendeten Begriffe und verwandten Konzepte erläutert.

Batchinferenz

Batch- oder Offline-Inferenz bezieht sich auf die Ausführung von Inferenzen außerhalb von Produktionspipelines, in der Regel für einen Großteil von Eingaben. Batchinferenzen werden für Offlineaufgaben wie das Labeling von Daten und auch für die Bewertung des trainierten Modells verwendet. Latenz-SLOs haben keine Priorität für Batchinferenzen.

TPU-Chip

Ein TPU-Chip enthält einen oder mehrere TensorCores. Die Anzahl der TensorCores hängt von der Version des TPU-Chips ab. Jeder TensorCore besteht aus einer oder mehreren Matrixmultiply-Einheiten (MXUs), einer Vektoreinheit und einer Skalareinheit.

Eine MXU besteht aus Multiplikatoren der Größe 128 × 128 in einem systolischen Array. MXUs bieten den Großteil der Rechenleistung in einem TensorCore. Jede MXU kann pro Zyklus 16.000 Multiplikations-/Akkumulationsvorgänge ausführen. Alle Multiplikationen akzeptieren bfloat16-Eingaben, aber alle Akkumulationen werden im FP32-Zahlenformat ausgeführt.

Die Vektoreinheit wird für allgemeine Berechnungen wie Aktivierungen und Softmax-Funktionen verwendet. Die Skalareinheit wird für die Ablaufsteuerung, die Berechnung von Speicheradressen und andere Wartungsvorgänge verwendet.

TPU-Würfel

4x4x4-Topologie Dies gilt nur für 3D-Topologien (ab der v4-TPU-Version).

Inferenz

Inferenz ist der Vorgang, bei dem ein trainiertes Modell verwendet wird, um Vorhersagen für neue Daten zu treffen. Sie wird im Bereitstellungsprozess verwendet.

Mehrfach- oder einzelnes Segment im Vergleich

Ein Multislice ist eine Gruppe von Segmenten, die die TPU-Konnektivität über die ICI-Verbindungen (Inter-Chip Interconnect) hinaus erweitert und das Rechenzentrumsnetzwerk (Data Center Network, DCN) für die Übertragung von Daten über ein Segment hinaus nutzt. Die Daten in jedem Segment werden weiterhin von ICI übertragen. Mit dieser Hybridkonnektivität ermöglicht Multislice die Parallelität über Slices hinweg und ermöglicht Ihnen, für einen einzelnen Job eine größere Anzahl von TPU-Kernen zu verwenden, als ein einzelnes Slice aufnehmen kann.

TPUs können verwendet werden, um einen Job entweder für ein einzelnes Slice oder für mehrere Slices auszuführen. Weitere Informationen finden Sie in der Einführung zu Multislices.

ICI-Resilienz von Cloud TPU

Die ICI-Resilienz verbessert die Fehlertoleranz von optischen Verbindungen und optischen Schaltungsschaltern (Optical Circuit Switches, OCS), die TPUs zwischen Würfeln verbinden. ICI-Verbindungen innerhalb eines Kubus verwenden Kupferverbindungen, die nicht betroffen sind. Dank der ICI-Resilienz können ICI-Verbindungen um OCS- und optische ICI-Fehler herum umgeleitet werden. Infolgedessen wird die Planungsverfügbarkeit von TPU-Slices verbessert, ohne dass eine vorübergehende Verschlechterung der ICI-Leistung entsteht.

Ähnlich wie bei Cloud TPU v4 ist die ICI-Resilienz standardmäßig für v5p-Slices aktiviert, die einen Cube oder größer sind:

  • v5p-128 bei Angabe des Beschleunigertyps
  • 4x4x4 bei Angabe der Beschleunigerkonfiguration

Ressource in Warteschlange

Eine Darstellung von TPU-Ressourcen, die verwendet wird, um eine Anfrage für eine TPU-Umgebung mit einem oder mehreren Segmenten in die Warteschlange zu stellen und zu verwalten. Weitere Informationen finden Sie im Nutzerhandbuch für Ressourcen in Warteschlange.

Bereitstellung

Bereitstellung ist der Prozess der Bereitstellung eines trainierten Modells für maschinelles Lernen in einer Produktionsumgebung, in der es Vorhersagen oder Entscheidungen treffen kann. Latenz und Verfügbarkeit auf Dienstebene sind wichtig für die Bereitstellung.

Ein Host und mehrere Hosts

Ein TPU-Host ist eine VM, die auf einem physischen Computer ausgeführt wird, der mit TPU-Hardware verbunden ist. TPU-Arbeitslasten können einen oder mehrere Hosts verwenden.

Eine Arbeitslast mit einem einzelnen Host ist auf eine TPU-VM beschränkt. Bei einer Arbeitslast mit mehreren Hosts wird das Training auf mehrere TPU-VMs verteilt.

Slices

Ein Pod-Slice ist eine Sammlung von Chips, die sich alle im selben TPU-Pod befinden und über Hochgeschwindigkeits-Inter-Chip-Interconnect-Verbindungen (ICI) verbunden sind. Slices werden je nach TPU-Version in Bezug auf Chips oder TensorCores beschrieben.

Chipform und Chiptopologie beziehen sich auch auf Segmentformen.

SparseCore

v5p umfasst vier SparseCores pro Chip, bei denen es sich um Dataflow-Prozessoren handelt, die Modelle beschleunigen, die auf Einbettungen in Empfehlungsmodellen beruhen.

TPU-Pod

Ein TPU-Pod ist eine zusammenhängende Gruppe von TPUs, die über ein spezialisiertes Netzwerk gruppiert ist. Die Anzahl der TPU-Chips in einem TPU-Pod hängt von der TPU-Version ab.

TPU-VM oder -Worker

Eine virtuelle Maschine, auf der Linux ausgeführt wird und die Zugriff auf die zugrunde liegenden TPUs hat. Eine TPU-VM wird auch als Worker bezeichnet.

TensorCores

TPU-Chips haben einen oder zwei TensorCores für die Matrixmultiplikation. Weitere Informationen zu TensorCores finden Sie in diesem ACM-Artikel.

Worker

Siehe TPU-VM.

TPU-Versionen

Die genaue Architektur eines TPU-Chips hängt von der verwendeten TPU-Version ab. Jede TPU-Version unterstützt auch unterschiedliche Slice-Größen und Konfigurationen. Weitere Informationen zur Systemarchitektur und den unterstützten Konfigurationen finden Sie auf den folgenden Seiten:

Cloud TPU-VM-Architekturen

Wie Sie mit dem TPU-Host (und dem TPU-Board) interagieren, hängt von der verwendeten TPU-VM-Architektur ab: TPU-Knoten oder TPU-VMs.

TPU-VM-Architektur

Mit der TPU-VM-Architektur können Sie über SSH eine direkte Verbindung zur VM herstellen, die physisch mit dem TPU-Gerät verbunden ist. Sie haben Root-Zugriff auf die VM und können damit beliebigen Code ausführen. Sie können auf Compiler- und Laufzeit-Fehlerbehebungsprotokolle sowie auf Fehlermeldungen zugreifen.

Image

TPU-Knotenarchitektur

Die TPU-Knotenarchitektur besteht aus einer Nutzer-VM, die über gRPC mit dem TPU-Host kommuniziert. Wenn Sie diese Architektur verwenden, können Sie nicht direkt auf den TPU-Host zugreifen, was das Debuggen von Trainings- und TPU-Fehlern erschwert.

Image

Nächste Schritte