- Googles erste TPU (Tensor Processing Unit) v1 zielte auf die Entwicklung eines ASIC (Application Specific Integrated Circuit) ab, der einen 10-fachen Kosten-/Leistungsvorteil bietet, wobei die Chancen für neue Dienste mit Deep Learning sowie der Umfang und die Kosten der dafür benötigten Hardware berücksichtigt wurden.
- Die TPU wurde zur Beschleunigung von Tensor-Operationen entwickelt; Tensoren bezeichnen dabei Operationen, die mehrdimensionale Array-Beziehungen zwischen Vektoren, Skalaren und anderen Tensoren abbilden.
- Matrixmultiplikation ist die Kernoperation neuronaler Netze und wird verwendet, um durch Multiplikation des Eingabevektors mit der Gewichtungsmatrix und anschließende Anwendung einer Aktivierungsfunktion die Hidden Layer und die Ausgabeschicht zu berechnen.
Googles erste Tensor Processing Unit: Ursprünge
- Das TPU-v1-Projekt begann Ende 2013 und wurde in 15 Monaten entwickelt, was es zu einem interessanten Thema für alle macht, die sich für Beschleuniger für neuronale Netze interessieren.
- Der Hintergrund und die Ziele der Entwicklung von TPU v1 wurden im vorherigen Beitrag behandelt; in diesem Beitrag wird die Struktur und Leistung von TPU v1 genauer betrachtet.
Architektur und Leistung
- Das Design von TPU v1 basiert auf der in der Arbeit von H.T. Kung und Charles E. Leiserson aus dem Jahr 1978, "Systolic Arrays (for VLSI)", vorgestellten Architektur.
- Ein Systolic Array besteht aus einem Prozessornetzwerk, das in periodischen Zyklen Daten berechnet und durch das System weiterleitet, um eine effiziente Matrixmultiplikation durchzuführen.
- Das Systolic Array von TPU v1 besteht aus 256x256 Multiplikations-/Akkumulationseinheiten und erzeugt automatisch die benötigten Ergebnisse, ohne Zwischenergebnisse im Hauptspeicher ablegen und wieder abrufen zu müssen.
Multiply/Accumulate Units (MACs)
- TPU v1 führt 8-Bit-x-8-Bit-Integer-Multiplikationen aus und nutzt Quantisierung, die weniger Die-Fläche benötigt als Fließkommaberechnungen.
Befehlssatz
- TPU v1 verwendet einen komplexen Befehlssatz (CISC) mit etwa 20 Instruktionen, die über die PCIe-Schnittstelle vom Host-Computer übertragen werden.
- Zu den wichtigsten Befehlen gehören Lesen aus dem Host-Speicher, Lesen von Gewichten, Matrixmultiplikation/-Komposition, Aktivierung und Schreiben in den Host-Speicher.
Software
- Die Hardware von TPU v1 unterstützt Software-Stacks wie Tensorflow, sodass auf CPU und GPU entwickelte Anwendungen schnell auf die TPU portiert werden können.
Fertigung und Die
- TPU v1 wurde im 28-nm-Prozess von TSMC gefertigt; die Die-Fläche beträgt weniger als die Hälfte der Intel-Haswell-CPU- und Nvidia-K80-GPU-Chips, die Google in seinen Rechenzentren einsetzte.
Leistung
- TPU v1 wurde entwickelt, um Inferenz effizienter zu machen, und bietet im Vergleich zu Nvidia K80 GPU und Haswell CPU etwa 15- bis 30-mal höhere Inferenzgeschwindigkeit und Energieeffizienz.
Erkenntnisse
- Die maßgeschneiderte Architektur von TPU v1 ermöglicht eine deutlich bessere Leistung und einen deutlich besseren Energieverbrauch als moderne CPUs und GPUs.
- TPU v1 wurde mit dem Ziel entwickelt, Inferenz schnell und energieeffizient zu machen, und war nicht für Training ausgelegt.
Meinung von GN⁺
- Die Entwicklung von TPU v1 markiert einen wichtigen Wendepunkt, an dem Google zur Optimierung von Inferenz-Workloads in großen Rechenzentren auf Spezialhardware umstieg.
- Die Systolic-Array-Architektur optimiert den Datenfluss und minimiert Speicherzugriffe, was zu besserer Energieeffizienz und höherer Leistung beiträgt.
- Der Erfolg von TPU v1 führte später zur Entwicklung verschiedener TPU-Versionen und spielte eine wichtige Rolle für den Fortschritt von AI-Inferenz-Hardware.
- Andere Produkte mit ähnlicher Funktionalität wie die TPU sind GPUs von Nvidia mit Tensor Cores, Intels Nervana NNP und Amazons Inferentia.
- Bei der Einführung der TPU-Technologie sollten die Kompatibilität mit der bestehenden Infrastruktur, der Software-Stack und der Optimierungsgrad für bestimmte Anwendungen berücksichtigt werden. Zu den Vorteilen der Wahl einer TPU gehören höhere Geschwindigkeit bei Inferenz-Workloads und bessere Energieeffizienz, allerdings kann eine Optimierung für bestimmte Modelle oder Datentypen erforderlich sein.
1 Kommentare
Hacker-News-Kommentare