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, mit dem TPUs als skalierbare Rechenressourcen in Google Cloud verfügbar sind.
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 On-Chip-Speicher mit hoher Bandbreite (HBM), sodass Sie größere Modelle und Batchgrößen verwenden können. TPUs können in Gruppen namens Pods verbunden werden, die Ihre Arbeitslasten mit minimalen oder gar keinen Codeänderungen skalieren.
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:
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 eine CPU zur Textverarbeitung auf einem PC verwenden, Raketentriebwerke steuern, Banktransaktionen tätigen 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 Speicherzugriff ist im Vergleich zur Berechnungsgeschwindigkeit langsam und kann den Gesamtdurchsatz der 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. Dank der großen Anzahl von Prozessoren können Sie Tausende von Multiplikationen und Additionen gleichzeitig ausführen.
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. Daher haben GPUs das gleiche 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 keine Textverarbeitungsprogramme ausführen, Raketentriebwerke steuern oder Banktransaktionen tätigen. Sie können jedoch große Matrixvorgänge, die in neuronalen Netzwerken verwendet werden, schnell ausführen.
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 x 128 ALUs auf einem einzigen 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.
Zum Ausführen der Matrixvorgänge lädt die TPU die Parameter aus dem HBM-Speicher in die Matrix Multiplication Unit (MXU).
Dann lädt die TPU die Daten aus dem HBM-Speicher. Bei jeder Multiplikation wird das Ergebnis an den nächsten Multiplikator akkumuliert. Die Ausgabe ist die Summe aller Multiplikationsergebnisse zwischen den Daten und Parametern. Während des Prozesses der Matrixmultiplikation ist kein Speicherzugriff erforderlich.
Infolgedessen 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 mit vielen benutzerdefinierten TensorFlow-, PyTorch- und JAX-Vorgängen, 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-Integration
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 -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 | Mit TensorBoard oder anderen Tools können Sie Ihr Modell visualisieren und wichtige Messwerte erfassen. |
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 | Mit kostenlosen Colabs mit Cloud TPU experimentieren |
Cloud TPU-Anleitungen | Cloud TPU mit Referenz-ML-Modellen testen |
Cloud TPU-Systemarchitektur | Detailliertere 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. |