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 darauf ausgelegt, Matrixoperationen schnell durchzuführen. Sie sind daher ideal für von ML-Arbeitslasten. Sie können ML-Arbeitslasten auf TPUs mit Frameworks wie TensorFlow, Pytorch, und JAX.

Nutzungsbedingungen von Cloud TPU

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 verwandten Konzepte erläutert.

Batchinferenz

Batch- oder Offline-Inferenz bezieht sich auf Inferenzen außerhalb der Produktion. Pipelines in der Regel mit einer großen Anzahl von 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 die Version des TPU-Chips. Jeder TensorCore besteht aus einem oder mehreren Matrix-Multiply-Units (MXUs), eine Vektoreinheit und eine Skalareinheit.

Eine MXU besteht aus 128-x-128-Multiplikationsakkumulatoren in einem systolischen Array. MXUs liefern den Großteil der Rechenleistung in einem TensorCore. Jede MXU kann von 16.000 Multiplikations- bzw. Akkumulationsoperationen pro Zyklus. Alle Multiplizierungen dauern bfloat16-Eingaben, aber alle Akkumulationen werden in FP32-Zahlenformat

Die Vektoreinheit wird für allgemeine Berechnungen wie Aktivierungen und Softmax verwendet. Die Skalareinheit wird zur Steuerung des Ablaufs, zur Berechnung von Speicheradressen und Wartungsvorgänge.

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 werden bei der Auslieferung verwendet.

Mehrere Segmente im Vergleich zu einem einzelnen Segment

Multislice ist eine Gruppe von Segmenten, 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 in den einzelnen Segmenten die von ICI übertragen werden. Dieses Hybridmodell verwenden können Sie mit „Multislice“ Parallelität der Segmente und ermöglicht die Verwendung einer größeren Anzahl von TPUs Kerne für einen einzelnen Job haben, als ein einzelnes Slice aufnehmen kann.

TPUs können verwendet werden, um einen Job entweder auf einem einzelnen oder in mehreren Segmenten auszuführen. Weitere Informationen finden Sie in der Einführung in Multislice. .

Ausfallsicherheit von Cloud TPU ICI

Ausfallsicherheit von ICI verbessert die Fehlertoleranz optischer Verbindungen Optical Circuit Switches (OCS), die TPUs zwischen würfeln verbinden. (ICI-Verbindungen innerhalb eines Cubes verwenden Kupferverbindungen, die nicht betroffen sind.) Dank der ICI-Resilienz können ICI-Verbindungen um OCS und optische ICI herum weitergeleitet werden Störungen. 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 ICI-Robustheit standardmäßig aktiviert für V5p-Slices, die mindestens einen Cube sind:

  • v5p-128 beim Angeben des Aclerator-Typs
  • 4x4x4 beim Angeben der Beschleunigerkonfiguration

In die Warteschlange gestellte Ressource

Eine Darstellung von TPU-Ressourcen, mit der eine Anfrage für ein Produkt in die Warteschlange gestellt und verwaltet wird. TPU-Umgebung mit einem oder mehreren Segmenten Siehe Nutzerhandbuch für Ressourcen in der Warteschlange .

Bereitstellung

Bereitstellung ist die Bereitstellung eines trainierten Modells für maschinelles Lernen in einem Produktionsumgebung, in der sie für Vorhersagen oder Entscheidungen genutzt 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. Eine Arbeitslast mit mehreren Hosts das Training auf mehrere TPU-VMs verteilt.

Slices

Ein Pod-Slice ist eine Sammlung von Chips, die sich alle im selben TPU-Pod befinden. die über Hochgeschwindigkeits-Inter-Chip-Interconnect-Verbindungen (ICI) miteinander 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 mithilfe von Einbettungen in Empfehlungen beschleunigen Modelle.

TPU-Pod

Ein TPU-Pod ist eine zusammenhängende Gruppe von TPUs, die über ein spezialisiertes 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.

TensorCores

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 die mit dem TPU-Gerät verbunden sind: TPU-Knoten und TPU-VM. TPU-Knoten war der ursprüngliche TPU-Knoten TPU-Architektur für v2- und v3-TPU-Versionen Mit v4 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 eine direkte Verbindung zur physisch verbundenen VM herstellen per SSH mit dem TPU-Gerät verbinden. Sie haben Root-Zugriff auf die VM, sodass Sie Folgendes ausführen können: mit beliebigem Code. 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 mit der TPU kommuniziert über gRPC. Bei Verwendung dieser Architektur können Sie nicht direkt auf die TPU zugreifen Host, wodurch das Debuggen von Trainings- und TPU-Fehlern erschwert wird.

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 TPU-Seite auf:

    Zu TPUs

    1. Suchen Sie Ihre TPU und ihre Architektur unter der Überschrift Architektur. Wenn die Architektur „TPU-VM“ ist, müssen Sie nichts 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.

    Weitere Informationen finden Sie unter TPUs verwalten für Anleitung zum Löschen und die erneute Bereitstellung von TPUs.

Nächste Schritte