Systemarchitektur

Tensor Processing Units (TPUs) sind anwendungsspezifische integrierte Schaltkreise (ASICs), die von Google entwickelt wurden, um ML-Arbeitslasten zu beschleunigen. Cloud TPU ist ein Google Cloud-Dienst, der TPUs als skalierbare Ressource zur Verfügung stellt.

TPUs sind für die schnelle Ausführung von Matrixoperationen ausgelegt und eignen sich daher ideal für Arbeitslasten für maschinelles Lernen. Sie können ML-Arbeitslasten auf TPUs mit Frameworks wie TensorFlow, Pytorch, und JAX.

Cloud TPU-Begriffe

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

Batch-Inferenz

Bei der Batch- oder Offline-Inferenz werden Inferenzen außerhalb von Produktionspipelines durchgeführt, in der Regel für eine große Menge an Eingaben. Batch-Inferenz wird für Offline-Verwendung verwendet Aufgaben wie Daten-Labeling und auch für die Bewertung des trainierten Modells. 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 Matrixmultiplikationseinheiten (MXUs), einer Vektoreinheit und einer Skalareinheit.

Eine MXU besteht aus 128-x-128-Multiplikationsakkumulatoren in einem systolischen Array. MXUs stellen den Großteil der Rechenleistung in einem TensorCore bereit. Jede MXU kann von 16.000 Multiplikations- bzw. Akkumulationsoperationen pro Zyklus. Alle Multiplikationen nehmen bfloat16-Eingabewerte an, aber alle Akkumulationen werden im FP32-Zahlenformat ausgeführt.

Die Vektoreinheit wird für allgemeine Berechnungen wie Aktivierungen und Softmax verwendet. Die Skalareinheit wird für die Ablaufsteuerung, die Berechnung der Speicheradresse und andere Wartungsvorgänge genutzt.

TPU-Cube

Eine 4x4x4-Topologie. Dies gilt nur für 3D-Topologien (beginnend mit den v4-TPU-Version).

Inferenz

Inferenz ist der Prozess, bei dem mithilfe eines trainierten Modells Vorhersagen Daten. Sie wird vom Auslieferungsprozess verwendet.

Mehrere Segmente im Vergleich zu einem einzelnen Segment

Multislice ist eine Gruppe von Slices, die die TPU-Konnektivität über ICI-Verbindungen (Inter-Chip Interconnect) und Nutzung des Rechenzentrums Netzwerk (DCN) für Daten über ein Segment hinaus übertragen. Die Daten innerhalb der einzelnen Zeitabschnitte werden weiterhin von ICI übertragen. Dieses Hybridmodell verwenden können Sie mit „Multislice“ Parallelität der Slices und ermöglicht die Verwendung einer größeren Anzahl von TPUs Kerne für einen einzelnen Job haben, als ein einzelnes Slice aufnehmen kann.

Mit TPUs können Jobs entweder auf einem einzelnen oder auf mehreren Slices ausgeführt werden. Weitere Informationen finden Sie unter Multislice-Einführung.

Cloud TPU-Resilienz bei ICI

Die ICI-Resilienz trägt dazu bei, die Ausfallsicherheit optischer Verbindungen und optischer Schalter (Optical Circuit Switches, OCS) zu verbessern, die TPUs zwischen Kubussen verbinden. (ICI-Verbindungen innerhalb eines Cubes verwenden Kupferverbindungen, die nicht betroffen sind.) Dank der ICI-Ausfallsicherheit können ICI-Verbindungen um OCS- und optische ICI-Fehler herumgeleitet werden. Dadurch wird die Planungsverfügbarkeit von TPU verbessert. mit dem Kompromiss von temporärer Verschlechterung der ICI-Leistung.

Ähnlich wie bei Cloud TPU v4 ist die ICI-Resilienz standardmäßig für v5p-Segmente aktiviert, die mindestens ein Würfel sind:

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

Ressource in der Warteschlange

Eine Darstellung von TPU-Ressourcen, die zum Einreihen und Verwalten einer Anfrage für eine TPU-Umgebung mit einem oder mehreren Slices verwendet wird. Siehe Nutzerhandbuch für Ressourcen in der Warteschlange .

Bereitstellung

Beim Bereitstellen wird ein trainiertes Modell für maschinelles Lernen in einer Produktionsumgebung bereitgestellt, in der es für Vorhersagen oder Entscheidungen verwendet werden kann. Latenz und Verfügbarkeit auf Dienstebene sind für die Bereitstellung wichtig.

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-Interconnects (ICI) verbunden sind. Segmente sind in Bezug auf Chips oder TensorCores, je nach TPU-Version.

Chipform und Chiptopologie beziehen sich ebenfalls auf Scheibenformen.

SparseCore

v5p enthält vier SparseCores pro Chip, die Dataflow Prozessoren, die Modelle auf der Grundlage von Einbettungen in Empfehlungen beschleunigen Modelle.

TPU-Pod

Ein TPU-Pod besteht aus mehreren TPUs, die über ein spezielles Netzwerk gruppiert sind. Die Anzahl der TPU-Chips in einem TPU-Pod hängt von der TPU-Version ab.

TPU-VM oder TPU-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.

Tensorkerne

TPU-Chips haben einen oder zwei TensorCores, um die Matrixmultiplikation auszuführen. Weitere Informationen zu TensorCores finden Sie in diesem ACM

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 Segmentgrößen und Konfigurationen. Für Weitere Informationen zur Systemarchitektur und den unterstützten Konfigurationen finden Sie unter folgenden Seiten:

TPU-Architekturen

Es gibt zwei TPU-Architekturen, die beschreiben, wie eine VM physisch mit dem TPU-Gerät verbunden ist: TPU-Knoten und TPU-VM. TPU-Knoten war der ursprüngliche TPU-Knoten TPU-Architektur für v2- und v3-TPU-Versionen Mit Version 4 wurde die TPU-VM zur Standardarchitektur, aber beide Architekturen wurden unterstützt. Der TPU-Knoten Die Architektur wurde verworfen und nur TPU-VMs werden unterstützt. Wenn Sie TPU-Knoten verwenden, siehe Vom TPU-Knoten wechseln in die TPU-VM-Architektur, um vom TPU-Knoten zu konvertieren bis hin zur TPU-VM-Architektur.

TPU-VM-Architektur

Mit der TPU-VM-Architektur können Sie über SSH direkt eine Verbindung zur VM herstellen, die physisch mit dem TPU-Gerät verbunden ist. Sie haben Root-Zugriff auf die VM und können so beliebigen Code ausführen. Sie haben die Möglichkeit, auf Compiler- und Laufzeit-Debug-Logs sowie auf Fehlermeldungen zuzugreifen.

Image

TPU-Knotenarchitektur

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

Image

Vom TPU-Knoten zur TPU-VM-Architektur wechseln

Wenn Sie TPUs mit der TPU-Knotenarchitektur haben, führen Sie die folgenden Schritte aus, um TPU-VMs identifizieren, löschen und neu bereitstellen.

  1. Rufen Sie die Seite „TPUs“ auf:

    Zu TPUs

    1. Suchen Sie unter der Überschrift Architektur nach Ihrer TPU und ihrer Architektur. Wenn die Architektur „TPU VM“ lautet, müssen Sie nichts weiter unternehmen. Wenn ist die Architektur ein „TPU-Knoten“, müssen Sie die TPU löschen und neu bereitstellen.
  2. Löschen Sie die TPU und stellen Sie sie neu bereit.

    Eine Anleitung zum Löschen und Neubereitstellen von TPUs finden Sie unter TPUs verwalten.

Nächste Schritte