
Morgen wird es offizielle Pressemitteilungen über die Fusion des Oldtimers Silicon Valley, MIPS, mit der jungen KI-Firma Wave Computing geben. Informationen über diese Veranstaltung wurden gestern an die Medien weitergegeben, und bald veröffentlichten CNet, Forbes, EE Times und eine Reihe von High-Tech-Websites Artikel über diese Veranstaltung. Heute sagte Derek Meyer, Präsident des fusionierten Unternehmens (Bild unten rechts): „Okay, teile die Informationen mit Freunden“ und ich beschloss, ein paar Worte über die Technologien und Personen zu schreiben, die mit dieser Veranstaltung verbunden sind.
Der Hauptinvestor in MIPS und Wave ist der Milliardär Dado Banatao (Bild unten, Mitte links), der bereits in den 1980er Jahren die Firma Chips & Technoilogies gründete, die Chipsätze für frühe Mitarbeiter herstellte. Es gibt andere Prominente in Wave + MIPS, wie Stephen Johnson (oben rechts abgebildet), der Autor des beliebtesten C-Compilers der frühen 1980er Jahre. MIPS ist in Russland bekannt. In den Händen des Designers Smriti (Bild links) befindet sich ein Board aus Zelenograd, auf dem sich die MIPS-Lizenznehmer Elvis-NeoTek und Baikal Electronics befinden.
Wave hat bereits einen Chip herausgebracht, der aus Tausenden von Prozessoreinheiten besteht, im Wesentlichen vereinfachten Prozessoren. Dieses Design ist für sehr schnelles neuronales Netzwerk-Computing optimiert. Wave verfügt über einen Compiler, der ein Datenflussdiagramm in eine Konfigurationsdatei für diese Struktur umwandelt.
Das kombinierte Unternehmen wird einen Chip erstellen, der aus einer Mischung solcher Recheneinheiten und Multithread-MIPS-Kernen besteht. Jetzt verkauft Wave seine Technologie in Form einer Box für Rechenzentren, um neuronale Netze in der Cloud zu berechnen. Die folgenden Chips werden in eingebetteten Geräten verwendet.
Neuronale Netze werden traditionell als Datenflussdiagramm dargestellt. Dies ist ein Graph, dessen Knoten Konstanten, Variablen und arithmetische Operationen für Skalare, Vektoren und Matrizen enthalten:

Google hat die TensorFlow-Bibliothek erstellt, eine API zum Erstellen solcher Diagramme und zum Ausführen von Berechnungen in einem Raster - sowohl eine regelmäßige Inferenz als auch ein Training mit Backpropfgftion. Diese API wird am häufigsten zusammen mit Python verwendet, dessen Code folgendermaßen aussieht:

Gleichzeitig verwendet die Python im obigen Beispiel die Neudefinition von arithmetischen Operationen, die tatsächlich nicht berechnen, sondern ein Diagramm im Speicher erstellen. In C sieht der Code zum Erstellen eines Diagramms in TensorFlow folgendermaßen aus:

In Google habe ich einen Freund des ukrainischen Programmierers Mikhail Simbirsky, der TensorFlow für Python verwendet. Die neuronalen Netze von Google werden beispielsweise zur Analyse des Nutzerverhaltens verwendet, um sie mit Werbung zu erreichen. Einige Berechnungen zum Trainieren der neuronalen Netze von Google dauern Tage und Wochen, obwohl Google die NVidia-GPU und seine eigenen Google-Beschleuniger verwendet. Dies ist keine leichte Aufgabe, da das Übertragen von Daten zwischen Prozessoren und GPUs zeitaufwändig ist:

Eines der Designprobleme von Prozessoren und GPUs besteht darin, dass die GPU lange Zeit inaktiv ist:

Ein weiteres Problem ist die unzureichende Speicherbandbreite der Schnittstellen. Wave in Kombination mit MIPS wird das eine und andere Problem lösen. Bei neuen Produkten verwendet der Prozessor den Beschleuniger nicht als Coprozessor, sondern sie arbeiten zusammen.
Zu diesem Zweck werden die MIPS-Kerne modifiziert, um schließlich eine Standard-Hardwareplattform für AI zu erstellen. Der Vorteil der Kerne MIPS I6400 / I6500 (Samurai / Daimio) und MIPS I7200 (lizenziert von MediaTek) ist Multithreading. ARM verfügt nicht über Multithreading. So sieht die Multithread-Pipeline auf dem MIPS I6400-Kern aus:

Und jetzt ist die Frage für die versiertesten Kommentatoren: Was ist Ihrer Meinung nach der Vorteil von Multithreading für eine Kombination aus CPU und Hardwarebeschleuniger? Insbesondere der Beschleuniger von Wave, eine Variante des sogenannten CGRA - Coarse Grained Reconfigurable Array - Grobkörnige rekonfigurierbare Arrays.
Wenn Sie mit FPGA (Field Programmable Gate Array) / FPGA (Programmable Logic Integrated Circuits) vertraut sind, ist die Idee von CGRA etwas ähnlich, aber sie funktionieren nicht mit einzelnen Bits, sondern mit ganzen Bussen von 8-64 Bit und in jeder Zelle Es gibt ALU und für mehrere Zellen einen arithmetischen Coprozessor. So sieht die gesamte Hierarchie aus:

Und hier ist eine rekonfigurierbare Zelle. Sie hat einen kleinen Puffer mit Anweisungen, die den einfachen Befehlen von 8-Bit-Batteriemikrocontrollern wie 6502 ähneln, die in den ersten Apple-Computern enthalten waren. Zur gleichen Zeit arbeiteten Prozessoren im alten Apple mit einer Frequenz von einigen Megahertz, und Zellen in CGRA arbeiten mit einer Frequenz von mehreren Gigahertz. Außerdem gab es in Apple nur einen Prozessor, aber es gibt 16.000 solcher Zellen:

Der Kristall bei Wave ist eindeutig riesig, daher müssen Sie lokal synchrone Schaltungen mit einem Taktsignal für jede Gruppe von Zellen verwenden. Das größte Problem ist jedoch nicht die Hardware, sondern die Software. Das Diagramm zur Berechnung des Gitters muss auf diese Gruppe von Geräten mit genauem Wissen verteilt werden, in welchem Zyklus es berechnet wird. Dies wird als statische Planung bezeichnet. Aus diesem Grund stellte Wave eine Reihe von Compilern ein, darunter den berühmten Bison Stephen Johnson, der mit Kernigan und Richie an den Ursprüngen stand. Dennis Ritchie schrieb Folgendes über Stephen Johnson:
In den 1980er Jahren gewann C schnell an Popularität und Compiler wurden auf fast jeder Maschine und jedem Betriebssystem verfügbar. Insbesondere ist es als Programmiersprache für PCs populär geworden, sowohl für Entwickler kommerzieller Software für diese Maschinen als auch für normale Benutzer, die sich für Programmierung interessieren. Zu Beginn des Jahrzehnts basierte fast jeder Compiler auf Johnsons pcc; 1985 gab es bereits viele Compiler, die von unabhängigen Entwicklern erstellt wurden.
Als ich 18 Jahre alt war (1988) und Student am MIPT war, war Stephen Johnson mein Gott. Ich war an der Entwicklung von zwei Compilern beteiligt, die auf dem Portable C Compiler basieren. Ein Compiler war für Electronics SS LSI, das Rote Kreuz, das sowjetische Äquivalent des Cray-1-Vektorsupercomputers. Der zweite Compiler war für Orbit 20-700, einen eingebauten Computer in den sowjetischen MiG-29-Kämpfern und anderen der frühen 1980er Jahre.
Also musste ich nur ein Foto mit Stephen Johnson machen. Er erzählte mir von anderen Tools, die er sowohl für Unix als auch für Designautomatisierung, automatische Profilerstellung usw. erstellt hatte.

Und natürlich wurde Dado Banatao mit einem Investor in all diesem Geschäft fotografiert. Es war einmal, als Dado Banatao den Chipsatz für das erste Scribble erstellte. Er debuggte Fahrer mit Ballmer. "Manchmal kam Bill Gates in den Raum, was uns störte", sagt Dado Banatao. Jetzt hat er laut Internet fünf Milliarden Dollar. Er ist der berühmteste High-Tech-Filipino, schafft ein KI-Zentrum und leitet andere Bildungsprogramme in seiner Heimat.

Dado Banatao hat in Marvell das meiste Geld verdient. Hier ist ihr Büro in Santa Clara in der Abendsonne:

Wave beschäftigt viele Mitarbeiter, die früher bei MIPS gearbeitet haben. Einige der MIPS befanden sich in Silicon Graphics, da MIPS in den 1990er Jahren Teil von Silicon Graphics war. In jenen Tagen befanden sich MIPS-Prozessoren in Grafikstationen, die in Hollywood verwendet wurden, um die ersten realistischen Grafikfilme wie Jurassic Park zu drehen. Diese Grafikstationen zusammen mit dem sibirischen Mädchen Irina im Computer History Museum in Mountain View, Kalifornien:

Am Ende der heutigen Party fand zu Ehren der offiziellen Ankündigung von morgen und der gestrigen Presseveröffentlichungen das Essen von Kuchen und das Trinken von Champagner statt:

Morgen wird es eine Menge Arbeit geben - von Verilog RTL (meine direkte Verantwortung) über die Diskussion von Architektur, Anwendungen bis hin zu Gesprächen mit Datenwissenschaftlern (sie fühlen sich aus einem anderen Universum, außerdem ist dies sowohl für Elektronikingenieure als auch für Compiler von Bedeutung).