Zum Hauptinhalt Zur Navigation

Tenstorrent Blackhole: Der vollständig programmierbare KI-Beschleuniger

Hot Chips
In Tenstorrents KI -Chips hat alles einen RISC-V -Kern - selbst die Speicher-Controller. Wir stellen die Architektur vor.
/ Johannes Hiltscher
2 Kommentare News folgen (öffnet im neuen Fenster)
Wormhole ist die zweite Generation von Tenstorrents KI-Beschleuniger und noch auf einen extra Prozessor angewiesen. (Bild: Tenstorrent)
Wormhole ist die zweite Generation von Tenstorrents KI-Beschleuniger und noch auf einen extra Prozessor angewiesen. Bild: Tenstorrent

Bei der aktuell stattfindenden Konferenz Hot Chips(öffnet im neuen Fenster) hat Tenstorrent im Detail über Blackhole, die dritte Generation seines KI-Beschleunigers, gesprochen. Der geht gänzlich andere Wege als die Konkurrenz: Er setzt anstelle einer spezialisierten Mikroarchitektur durchgängig auf RISC-V-Kerne. Blackhole nutzt davon erstmals zwei Varianten: Herzstück sind die 752 Baby-Kerne, neu hinzu kommen 16 große Geschwister, die Linux ausführen können und den Beschleuniger so unabhängig von einem Host-System machen. Seine Vorgänger funktionierten nur als PCIe-Karten.

Das Besondere an den Baby-Kernen: Sie werden nicht nur für die KI-Berechnungen genutzt, sondern stecken auch in den Kacheln der DRAM-Controller, den Ethernet-Controllern, über die einzelne Blackhole-Chips vernetzt werden, und in den Routern für das Network-on-Chip (NoC). Damit ist, abgesehen vom PCIe-5.0-Controller, das gesamte System-on-Chip (SoC) programmierbar - mit einem einheitlichen Befehlssatz. Die einzelnen Funktionseinheiten sind als Kacheln realisiert, die in einem 12-x-16-Gitter angeordnet sind, die linuxfähigen Kerne sowie ein Kern für die Systemverwaltung liegen in einer zusätzlichen Spalte.

Bei der Programmierbarkeit geht Tenstorrent damit weiter als andere Entwickler von KI-Beschleunigern. Programmierbare Netzwerkschnittstellen sind mittlerweile nicht mehr ungewöhnlich - andere Hersteller nennen das Data Processing Unit -, programmierbare Speicher-Controller hingegen schon. Sie sollen etwa Daten asynchron laden, vor- oder nachbearbeiten, damit die Kerne in den 140 Tensix++ genannten Rechenkacheln möglichst nur Vektor- und Matrixoperationen ausführen.

Stark bei Vektoren und Matrizen

Zwar beherrschen die Baby-Kerne 32-Bit-Integer- und Gleitkommaberechnungen mit 16 und 32 (Int32, FP16 und FP32) Bit, die eigentliche Stärke der Tensix-Kacheln sind allerdings die Vektor- und Matrixeinheiten. Während die 128-Bit-Vektoreinheit auf FP32, Int16 und Int32 beschränkt ist, rechnet die Matrixeinheit mit einer großen Bandbreite an Datentypen, von FP2 bis Tensorfloat mit 32 Bit (TF32). Blackhole eignet sich damit für Training und Inferencing.

Ergebnisse werden dabei immer mit 32 Bit Genauigkeit akkumuliert, um Überläufe, also das Überschreiten des zulässigen Wertebereichs, zu vermeiden. Während die aktuelle Generation der Tensix-Kacheln zwar 2- und 4-Bit-Datentypen unterstützt, rechnet sie damit nicht schneller - maximal schaffen Blackholes 140 Matrixeinheiten 745 T(F)lops. Die Matrixeinheit arbeitet dabei auf 32 x 32 Elemente großen Blöcken, die Vektoreinheit mit 64 Elementen.

Um die, trotz Overhead etwa für Schleifen, permanent auszulasten, arbeiten in jeder Tensix-Kachel drei RISC-V-Kerne dasselbe Programm, den Compute-Kernel, ab. Den könnten Programmierer selbst entwickeln - damit sie schneller zum Erfolg kommen, bietet Tenstorrent aber eine Reihe von Abstraktionsschichten an. Die abstrahieren immer weiter von der eigentlichen Hardware. Mittels verschiedener Compiler können Modelle, die mit Jax, Pytorch, Tensorflow oder ONNX entwickelt wurden, auf Blackhole ausgeführt werden.

Baby-Kerne können nichts allein - außer rechnen

Die Bezeichnung Baby-Kerne ist durchaus wörtlich zu nehmen: Ihre Fähigkeiten sind extrem begrenzt, eigenständig können sie nur rechnen. Und dabei können sie auch nur auf ihren eigenen, 8 KByte großen Scratchpad-Speicher zugreifen. Über zusätzliche Hardware kann der in zwei Ringpuffer mit Flusskontrolle - jeweils einer für Ein- und Ausgabe - verwandelt werden, welche die Datenverarbeitung automatisch mit anderen Kernen synchronisieren. Auch die Architektur der Kerne ist simpel gehalten: Es handelt sich um ein In-Order-Design mit fünfstufiger Pipeline. Durch diese Einfachheit sind die Baby-Kerne sehr kompakt: Jasmina Vasiljevic und Davor Capalija von Tenstorrent sagten auf Nachfrage, sie belegten lediglich rund 1 Prozent der Chip-Fläche.

Mit Daten gefüllt wird der Scratchpad-Speicher über zwei NoCs, Ergebnisse werden darüber weitergeleitet. Wo die Daten herkommen oder hingehen, ist dabei egal: Zwei Router binden die Rechenkacheln in das NoC ein, über das sie Ergebnisse von einer anderen Kachel erhalten oder auf den GDDR6-Speicher zugreifen können - was allerdings ebenfalls programmiert werden muss. Jedem Router steht ein weiterer Baby-Kern zur Seite, der den Datenfluss steuert.

Speicherverwaltung gibt es bei Blackhole nicht - zumindest nicht als Hardware-Einheit. Aber auch der Speicherzugriff ist programmierbar. Jede DRAM-Kachel enthält zwei Baby-Kerne, einer davon regelt den Speicherzugriff, der andere gehört zum NoC-Router. Die Kacheln sind in zwei Spalten über den Chip verteilt, um die Wege und damit die Latenzen nicht allzu lang werden zu lassen. Jeweils drei DRAM-Kacheln hängen dabei an einem der acht Speicher-Controller, von denen wiederum jeder 4 GByte GDDR6-RAM anspricht.

Eine einzelne Rechenkachel oder auch ein ganzer Blackhole-Chip wäre allerdings ziemlich verloren. Erst die Vernetzung macht daraus leistungsfähige KI-Hardware.

Tausende Chips, ein logisches Gerät

Innerhalb des Chips werden Daten über die bereits erwähnten NoCs bewegt. Es handelt sich dabei um 2D-Tori, die allerdings unidirektional sind. Ein NoC kann Daten in Süd- und Ostrichtung routen, das andere in Nord- und Westrichtung. Das hilft, lange Routen zu vermeiden, da jeweils der kürzeste Weg gewählt werden kann. Über jede Verbindung überträgt das NoC 83 GByte/s. Theoretisch ist jede Rechenkachel so mit 332 GByte/s angebunden, so dass Daten gestreamt werden können, ohne die Recheneinheiten auszubremsen: Matrix- und Vektoreinheit können auf den Scratchpad-Speicher mit 333 GByte/s zugreifen.

Wie Intel bei Gaudi 3 vernetzt auch Tenstorrent die einzelnen Blackhole-Chips über Ethernet. Jeweils zwei 400-Gbit-Ethernet-Schnittstellen sind zu einer Einheit zusammengefasst. Hier denkt Tenstorrent logischerweise den Torus innerhalb des einzelnen Chips weiter: Auch die Ethernet-Schnittstellen sind als Nord, Süd, West, Ost sowie Z bezeichnet. Ihnen sind jeweils zwei Kacheln zugeordnet, die über zwei Router ins NoC eingebunden sind. Jedem Router steht ein Baby-Kern zur Seite, beide teilen sich einen kleinen Scratchpad-Speicher.

Die natürliche Netzwerktopologie für ein großes Blackhole-System wäre damit ein 3D-Torus, allerdings betonte Davor Capalija, dass beliebige Topologien möglich seien. Um den Aufbau großer Systeme zu vereinfachen, bietet Tenstorrent ein Galaxy genanntes Modul an: Es handelt sich um einen Rack-Einschub, in dem 32 Blackhole-Chips in 4-x-8-Gitter-Topologie verbunden sind. Insgesamt 56 der 800-GBit-Ethernet-Schnittstellen verbinden sie mit anderen Systemen.

Tenstorrent sieht Galaxy dabei als universales System für den Aufbau eines KI-Supercomputers: Das System könne entweder für Berechnungen, als programmierbarer Speicher mit 1 TByte Kapazität und einer Bandbreite von 16 TByte/s oder als programmierbarer Switch mit einer Bandbreite von 11,2 TByte/s genutzt werden. Das klingt nicht besonders ökonomisch, ist aber auf jeden Fall die einfachste Lösung.

Wie zur Hölle programmiert man das?

Bei einem System, das zwar vollständig programmierbar ist, aber wenig Hardware-Unterstützung anbietet, stellt sich zwangsläufig die Frage: Ist das überhaupt nutzbar? Diese Frage haben wir etwa beim Start-up Flow Computing aufgeworfen.

Tenstorrent begegnet dem mit den bereits erwähnten, mehrschichtigen Programmierschnittstellen. Die bieten nach und nach komplexere Primitive an: Von ganz grundlegenden Routinen bis hin zu speziellen KI-Routinen, die selbst ein System aus Hunderten Blackhole-Chips so weit abstrahieren sollen, dass es als ein einheitliches System erscheint. Fehlende Funktionen lassen sich ergänzen, Entwickler müssen dabei nicht zwangsläufig auf der niedrigsten Ebene ansetzen.

Da Tenstorrent zudem mit KI nur einen konkreten Anwendungsfall abdeckt, sollte das gelingen. Die fast vollständige Programmierbarkeit ist definitiv ein interessantes Alleinstellungsmerkmal.

Abseits der Kacheln sparte Tenstorrent beim Vortrag mit Details. Zur Architektur der linuxfähigen Kerne erklärte Jasmina Vasiljevic lediglich, dass es sich um 64-Bit-Kerne handelt, die in vier Clustern organisiert sind. Es handelt sich ebenfalls um eine In-Order-Architektur, die zwei Befehle pro Takt zur Ausführung bringen kann.

Auch hier hat Tenstorrent offensichtlich nicht Höchstleistung zum Ziel gehabt - die Kerne sollen lediglich die Baby-Kerne verwalten. Zur Fertigung war nur zu erfahren, dass die Blackhole-Chips in einem 6-nm-Prozess gefertigt werden - der Vorgänger Wormhole wurde noch mit in einem 12-nm-Prozess gefertigt. Wer sie fertigt, blieb ebenso offen wie ihre Größe.


Relevante Themen