Einführung in Cloud TPU

Tensor Processing Units oder TPUs sind Hardwarebeschleuniger, die von Google für ML-Arbeitslasten entwickelt wurden. Weitere Informationen zu TPU-Hardware finden Sie unter Systemarchitektur. Cloud TPU ist ein Webdienst, der TPUs als skalierbare Rechenressourcen in Google Cloud zur Verfügung stellt.

TPUs trainieren Ihre Modelle effizienter mit Hardware, die für die Ausführung großer Matrixvorgänge entwickelt wurde, die oft in Algorithmen für maschinelles Lernen verwendet werden. TPUs haben einen integrierten Chip für hohe Bandbreiten (HBM), mit dem Sie größere Modelle und Batchgrößen verwenden können. TPUs können in Gruppen verbunden werden, die als Pods bezeichnet werden. Diese skalieren Ihre Arbeitslasten mit geringfügigen oder gar keinen Codeänderungen.

Wir empfehlen, Ihr ML-Projekt mit einer einzelnen TPU zu starten und für die Produktion horizontal auf einen TPU-Pod zu skalieren. Für den Einstieg können Sie eine Reihe von Open-Source-Referenzmodellen nutzen, die die Forschungs- und Entwicklungsteams von Google für die Verwendung mit TPUs optimieren. Weitere Informationen finden Sie unter Referenzmodelle.

Funktionsweise

Damit Sie verstehen, wie TPUs funktionieren, sollten Sie wissen, wie andere Beschleuniger die Rechenaufgaben beim Trainieren von ML-Modellen bewältigen.

Funktionsweise einer CPU

Eine CPU ist ein Universalprozessor, der auf der Von-Neumann-Architektur basiert. Das bedeutet, dass eine CPU mit Software und Speicher arbeitet, wie hier gezeigt:

Abbildung zur Funktionsweise einer CPU

Der größte Vorteil von CPUs ist ihre Flexibilität. Sie können jede Art von Software auf einer CPU für viele verschiedene Arten von Anwendungen laden. Sie können beispielsweise mit einer CPU Text auf einem PC verarbeiten, Raketenmotoren steuern, Banktransaktionen ausführen oder Bilder mit einem neuronalen Netzwerk klassifizieren.

Eine CPU lädt Werte aus dem Arbeitsspeicher, führt eine Berechnung der Werte durch und speichert das Ergebnis jeder Berechnung wieder im Arbeitsspeicher. Der Arbeitsspeicherzugriff ist im Vergleich zur Berechnungsgeschwindigkeit langsam und kann den Gesamtdurchsatz von CPUs begrenzen. Dies wird oft als Von-Neumann-Engpass bezeichnet.

Funktionsweise einer GPU

GPUs bieten Tausende arithmetisch-logische Einheiten (Arithmetic Logic Units, ALUs) in einem einzigen Prozessor, um einen höheren Durchsatz zu erzielen. Eine moderne GPU enthält in der Regel zwischen 2.500 und 5.000 ALUs. Aufgrund der großen Anzahl von Prozessoren können Tausende von Multiplikationen und Additionen gleichzeitig ausgeführt werden.

Abbildung zur Funktionsweise einer GPU

Eine GPU-Architektur eignet sich gut für Anwendungen mit massiver Parallelität, z. B. Matrixvorgänge in einem neuronalen Netz. Im Vergleich zu einer CPU liefert eine GPU für eine typische Deep-Learning-Trainingsarbeitslast einen um Größenordnungen höheren Durchsatz.

Die GPU ist jedoch weiterhin ein Universalprozessor, der viele verschiedene Anwendungen und Software unterstützen muss. GPUs haben daher dasselbe Problem wie CPUs. Für jede Berechnung in den Tausenden von ALUs muss eine GPU auf Register oder gemeinsam genutzten Arbeitsspeicher zugreifen, um Operanden zu lesen und Zwischenergebnisse von Berechnungen zu speichern.

Funktionsweise einer TPU

Google hat Cloud TPUs als Matrixprozessoren konzipiert, die auf Arbeitslasten für neuronale Netze spezialisiert sind. TPUs können Textverarbeitungsprogramme ausführen, Raketenmotoren steuern und Banktransaktionen ausführen. Sie können jedoch große Matrixvorgänge verarbeiten, die in neuronalen Netzwerken schnell ausgeführt werden.

Die Hauptaufgabe für TPUs ist die Matrixverarbeitung, bei der es sich um eine Kombination von Multiplikations- und Akkumulationsvorgängen handelt. TPUs enthalten Tausende von Multiplikationsakkumulatoren, die direkt miteinander verbunden sind, um eine große physische Matrix zu bilden. Dies wird als systolische Arrayarchitektur bezeichnet. Cloud TPU v3 enthält zwei systolische Arrays von 128 128 ALUs auf einem einzelnen Prozessor.

Der TPU-Host streamt Daten in eine Einspeisewarteschlange. Die TPU lädt Daten aus der Einspeisewarteschlange und speichert sie im HBM-Arbeitsspeicher. Wenn die Berechnung abgeschlossen ist, lädt die TPU die Ergebnisse in die Ausspeisewarteschlange. Der TPU-Host liest dann die Ergebnisse aus der Ausspeisewarteschlange und speichert sie im Arbeitsspeicher des Hosts.

Zur Ausführung der Matrixvorgänge lädt die TPU die Parameter aus dem HBM-Arbeitsspeicher in die MXU.

Abbildung dazu, wie eine TPU Parameter aus dem Speicher lädt

Dann lädt die TPU die Daten aus dem HBM-Speicher. Bei der Ausführung jeder Multiplikation wird das Ergebnis an den nächsten Multiplikator übergeben. Die Ausgabe ist die Summe aller Multiplikationsergebnisse zwischen den Daten und Parametern. Während des Prozesses der Matrixmultiplikation ist kein Speicherzugriff erforderlich.

Abbildung dazu, wie eine TPU Daten aus dem Speicher lädt

Dadurch können TPUs bei Berechnungen in neuronalen Netzwerken einen hohen Rechendurchsatz erzielen.

Verwendung von TPUs

Cloud TPUs sind für bestimmte Arbeitslasten optimiert. In einigen Situationen möchten Sie möglicherweise GPUs oder CPUs auf Compute Engine-Instanzen verwenden, um Ihre Arbeitslasten für maschinelles Lernen auszuführen. Im Allgemeinen können Sie basierend auf den folgenden Richtlinien entscheiden, welche Hardware für Ihre Arbeitslast am besten geeignet ist:

CPUs

  • Schnelles Prototyping, das maximale Flexibilität erfordert
  • Einfache Modelle, die nicht lange trainiert werden müssen
  • Kleine Modelle mit kleinen, effektiven Batchgrößen
  • Modelle, die viele benutzerdefinierte TensorFlow-/PyTorch-/JAX-Vorgänge enthalten, die in C++ geschrieben sind
  • Modelle, die durch die verfügbare E/A oder die Netzwerkbandbreite des Hostsystems begrenzt sind

GPUs

  • Modelle mit einer erheblichen Anzahl von benutzerdefinierten TensorFlow-/PyTorch-/JAX-Vorgängen, die mindestens teilweise auf CPUs ausgeführt werden müssen
  • Modelle mit TensorFlow-/PyTorch-Vorgängen, die nicht auf Cloud TPU verfügbar sind
  • Mittlere bis große Modelle mit größeren effektiven Batchgrößen

TPUs

  • Modelle, die von Matrixberechnungen dominiert werden
  • Modelle ohne benutzerdefinierte TensorFlow-/PyTorch-/JAX-Vorgänge innerhalb der Haupttrainingsschleife
  • Modelle, die Wochen oder Monate lang trainiert werden
  • Große Modelle mit großen, effektiven Batchgrößen

Cloud TPUs sind für folgende Arbeitslasten nicht geeignet:

  • Lineare Algebraprogramme, die häufige Verzweigungen erfordern oder viele elementweise Algebravorgänge enthalten
  • Arbeitslasten, die nur wenig auf Arbeitsspeicher zugreifen
  • Arbeitslasten, die eine hochpräzise Arithmetik erfordern
  • Neuronale Netzwerkarbeitslasten, die benutzerdefinierte Vorgänge in der Haupttrainingsschleife enthalten

VPC Service Controls-Einbindung

Mit Cloud TPU VPC Service Controls können Sie Sicherheitsbereiche für Ihre Cloud TPU-Ressourcen definieren und die Bewegung von Daten über die Perimetergrenze steuern. Weitere Informationen zu VPC Service Controls finden Sie in der Übersicht zu VPC Service Controls. Welche Einschränkungen sich bei Verwendung von Cloud TPU mit VPC Service Controls ergeben, erfahren Sie unter Unterstützte Produkte und Einschränkungen.

Einstieg in Cloud TPU

Google Cloud-Konto einrichten Bevor Sie Cloud TPU-Ressourcen verwenden können, müssen Sie ein Google Cloud-Konto und ein Projekt erstellen.
Cloud TPU APIs aktivieren Zum Trainieren eines Modells müssen Sie die Compute Engine und die Cloud TPU APIs aktivieren.
Cloud TPU Zugriff auf Cloud Storage-Buckets gewähren Cloud TPU benötigt Zugriff auf die Cloud Storage-Buckets, in denen Sie Ihre Datasets speichern.
Modell trainieren Lesen Sie zum Einstieg eine der Cloud TPU-Kurzanleitungen oder -Tutorials.
Modell analysieren Verwenden Sie TensorBoard oder andere Tools, um Ihr Modell zu visualisieren und wichtige Messwerte zu verfolgen.

Nächste Schritte

Möchten Sie mehr über Cloud TPU erfahren? Nachfolgend eine Auswahl interessanter Ressourcen.

Kurzanleitung für Compute Engine Mit einer unserer Kurzanleitungen ausprobieren, ein Modell mit Cloud TPU zu trainieren
TPU Colabs Experimentieren Sie mit kostenlosen Colabs mit Cloud TPU.
Cloud TPU-Anleitungen Cloud TPU mit Referenz-ML-Modellen testen
Cloud TPU-Systemarchitektur Umfassende Informationen zu TPUs
Preise Informationen dazu, wie Sie mit Cloud TPU kostengünstig ML-Arbeitslasten verarbeiten können
Vertrieb kontaktieren Möchten Sie eine bestimmte Implementierung oder Anwendung besprechen? Wenden Sie sich an Ihren Cloud TPU-Vertriebsmitarbeiter.