13 Punkte von xguru 2021-10-02 | 1 Kommentare | Auf WhatsApp teilen
<p>Wenn man die IT-Unternehmen nennen sollte, deren Aktienkurse weltweit in den vergangenen zehn Jahren am stärksten gestiegen sind, würden wohl Apple und Nvidia dazugehören. Apple beherrscht seit dem Erscheinen des iPhone den Markt für hochpreisige Smartphones im wahrsten Sinne des Wortes seit mehr als einem Jahrzehnt, und Nvidia erlebt einen steilen Kursanstieg, da der Markt für leistungsstarke Gaming-GPUs sowie seit Mitte der 2010er Jahre für Beschleuniger für Deep Learning und Krypto-Mining explosionsartig gewachsen ist. <br /> <br /> Nvidia ist das Unternehmen, das 1999 die erste GPU im eigentlichen Sinne der Welt präsentierte, und zwar unter dem Markennamen GeForce. Natürlich lag der Schwerpunkt von Nvidias Geschäft von den späten 1990er Jahren bis in die späten 2000er Jahre auf leistungsstarken Gaming-GPUs. Doch Nvidia stellte 2007, fast so, als hätte das Unternehmen das Aufkommen des KI-Zeitalters vorausgesehen, GUGPU (oder GPGPU) der Welt vor. Der Markt, den Nvidia neu schaffen wollte, war nicht einfach der Markt für leistungsstarke Grafikkarten für Spiele, sondern der Markt für General-Purpose-Beschleuniger. Um das Marktwachstum voranzutreiben, veröffentlichte Nvidia zugleich CUDA, ein SDK, mit dem Chip-Design-Entwickler weltweit die eigenen GUGPUs nutzen konnten — und diese Strategie ging auf. Zusammen mit dem parallel dazu verbreiteten openCL trat die GPU damit geradezu in das Zeitalter der GUGPU ein, und Nvidia entfernte sich Schritt für Schritt vom Markt für Gaming-Grafikkarten, um ernsthaft in den Beschleunigermarkt einzutreten.<br /> <br /> Wie bekannt ist, liegt der größte Unterschied zwischen CPU und GPU in serial vs parallel. In einer GPU sind, rein nach Stückzahl betrachtet, weit mehr Kerne integriert als in einer CPU. Rechenoperationen wie Multiplikation und Addition, die parallel verarbeitet werden sollen, werden auf die einzelnen Kerne verteilt und „im Handumdrehen“ ausgeführt. Eine CPU hingegen kann aufgrund ihrer Architektur Daten nur seriell entgegennehmen und Ergebnisse erzeugen; entsprechend ist ihre Rechengeschwindigkeit im Vergleich zur parallelen Verarbeitung einer GPU zwangsläufig deutlich langsamer. Hier darf man jedoch eines nicht missverstehen. Man könnte sich fragen: „Warum kauft man dann überhaupt noch zusätzlich eine teure CPU? Kann nicht einfach alles mit GPUs erledigt werden?“ Tatsächlich lässt sich das mit einem Kunsthandwerker vergleichen, der Schnitzarbeiten anfertigt. Wenn man den Prozess, bei dem ein Meister einen Monat lang allein Holz schnitzt, lackiert und bearbeitet, mit einer CPU vergleicht, dann kann man eine GPU damit vergleichen, dass derselbe Meister die Arbeit auf zehn Schüler verteilt und in einem Monat zehn Schnitzwerke herstellt. Es ist gewissermaßen der Unterschied zwischen Heimarbeit und Arbeitsteilung. Schauen wir auf einen etwas präziseren Vergleich. Der Grund, warum GPUs seit der Mitte bis dem Ende der 2000er Jahre wegen ihrer Parallelrechenleistung so stark beachtet wurden, liegt darin, dass das Chip-Design es ermöglicht, in den verteilten Kernen der GPU gleichzeitig ähnliche Berechnungen auszuführen und die Ergebnisse gesammelt auszugeben. Betrachten wir zum Beispiel die Operation, eine Matrix B = [5*5] mit einer Matrix C = [5*1] zu multiplizieren. Um diese Operation auf einer CPU auszuführen, muss man <br /> <br /> for ii=1:Anzahl der Zeilen<br /> for jj=1:Anzahl der Spalten<br /> A = B(ii,jj)*C(jj);<br /> A(ii) = A(ii) + A;<br /> end<br /> end<br /> <br /> zwei `for`-Schleifen durchlaufen lassen. Mit einer GPU hingegen muss man lediglich die Indizes der einzelnen Elemente der Matrix B und der Matrix C jeweils den GPU-Kernen zuweisen. Für die Multiplikation B*C werden zum Beispiel insgesamt 5*5 = 25 Multiplikationen der einzelnen Elemente benötigt; die Elemente B(i,j) und C(k) müssen auf der GPU nur vorab dem Kern mit der Nummer [Anzahl der Zeilen*(i-1) + j] zugewiesen werden. Dann führt jeder Kern lediglich die ihm zugeteilte Multiplikation aus, und die Ergebnisse müssen anschließend nur noch im Speicher gesammelt und addiert werden. Wenn also im Voraus nur gut festgelegt ist, wie verteilt und wie wieder eingesammelt wird, dann ist die wiederholte Ausführung einfacher Multiplikations-/Additionsoperationen auf einer GPU deutlich schneller. Eine CPU kann solche Paralleloperationen im Vergleich zur GPU kaum ausführen, dafür kann sie mit mehr Stellen im Gleitkommaformat arbeiten. Das heißt, sie kann präzise Berechnungen besser ausführen als einzelne GPU-Kerne, und deshalb beherrscht eine CPU ALU-Berechnungen, bei denen Genauigkeit erforderlich ist, natürlich wesentlich besser als eine GPU. Wiederholte Berechnungen verlangen jedoch meist keine derart hohe Präzision, weshalb die Parallelberechnung mit GPUs deutlich im Vorteil ist.<br /> <br /> Warum also fanden gerade diese auf Parallelisierung optimierten GPGPUs seit Mitte der 2010er Jahre, also mit dem eigentlichen Beginn des KI- und insbesondere des Deep-Learning-Zeitalters, noch mehr Beachtung? Wenn man versteht, wie Deep Learning grundsätzlich funktioniert, ist das leicht nachvollziehbar. Eine der grundlegenden Operationen, die man zu Beginn beim Lernen von Deep Learning kennenlernt, ist die Convolution. Convolution ist eine Matrixoperation, bei der auf gegebene Input-Daten in Matrixform ein weiterer Matrixkern, also ein Kernel, an wechselnden Positionen angewendet wird. Betrachtet man das genauer, ist es letztlich nichts anderes als die Wiederholung von Multiplikations- und Additionsoperationen zwischen den einzelnen Matrixelementen. Natürlich hängt das Ergebnis der Input-Matrix davon ab, welchen Kernel man verwendet. Wie auch in Vorlesungen zur Bildverarbeitung behandelt wird, kann zum Beispiel die Verwendung eines Laplace-Kernels Funktionen ermöglichen, mit denen sich Bildkanten, Kantengradienten oder Muster unterscheiden lassen. Unabhängig von der Art des Kernels wiederholt sich im Convolution-Prozess letztlich die einfache Folge aus Multiplikation und Addition, weshalb GUGPUs mit ihrer genau darauf spezialisierten Architektur selbstverständlich deutlich im Vorteil sind. Betrachtet man außerdem, wie Training und Inferenz im Deep Learning ablaufen, wird auch verständlich, warum Deep Learning auf CPU-Basis von vornherein nahezu unmöglich ist. Wie bereits erwähnt, verlangt eine GPU weder dieselbe Präzision wie eine CPU, noch ist sie dafür ausgelegt. Der Prozess, Trainingsdaten mit Deep Learning zu lernen, ähnelt dem Versuch einer Person mit verbundenen Augen, nur mit Händen und Füßen den Weg zu finden. Mit etwas Glück stößt die ausgestreckte Hand auf ein Objekt, das als Anhaltspunkt dienen kann; mit Pech tritt der ausgestreckte Fuß in eine Falle. Das heißt: Bei jedem Versuch entsteht zwangsläufig ein Fehler, und die Genauigkeit oder Präzision dieses Fehlers ist von vornherein gar nicht besonders wichtig. Im Gegenteil, wenn man sich nur um die Präzision dieses Fehlers kümmert, wird das Lernen langsamer. Die Antwort liegt auf der Hand, wenn man vergleicht, ob eine Person, die pro Sekunde 100 Trial-and-Error-Versuche macht, den Weg schneller findet, oder eine Person, die pro Sekunde nur einen einzigen, sehr vorsichtigen erfolgreichen Versuch unternimmt. Diese Lernweise des Deep Learning passte exakt zur Architektur, für die GPUs entworfen wurden. Deshalb werden GPUs inzwischen nicht mehr als Hardware für High-End-Gaming, sondern als Beschleunigermaschinen für Deep Learning wahrgenommen.<br /> <br />

Was man dabei nicht übersehen darf, ist, dass GUGPUs nach wie vor auch für die Steigerung der Gaming-Performance optimiert sind. Wenn man bedenkt, dass GPUs von Grund auf auf matrixbasierte Verarbeitung spezialisiert sind, ist das nur folgerichtig. In Spielen vor den frühen 1990er-Jahren gab es das Konzept von 3D-Bildern praktisch kaum; selbst wenn es so etwas gab, wurden meist nur 2D-Projektionen aus einer bestimmten Richtung fortlaufend dargestellt. Man kann faktisch von reinen 2D-Grafiken sprechen. In der linearen Algebra gehören zweidimensionale Matrizen zu den vergleichsweise einfachen Berechnungen. Das Problem beginnt bei dreidimensionalen Matrixoperationen. Die Welt, in der wir leben, ist dreidimensional, und alle physikalischen Phänomene, die wir sehen, hören und wahrnehmen, finden in einem dreidimensionalen Raum plus einer eindimensionalen Zeit statt. Ereignisse in dieser 3D-Welt verändern sich sekündlich, doch unsere Augen müssen diese Informationen zwangsweise auf zwei Dimensionen abbilden, um sie wahrzunehmen. Deshalb verbraucht das menschliche Gehirn bei der Verarbeitung visueller Informationen so viele Ressourcen. Dasselbe lässt sich auf Berechnungen übertragen. Man stelle sich die Aufgabe vor, ein Bild eines dreidimensionalen Objekts in dem zweidimensionalen Raum darzustellen, den wir wahrnehmen, also auf einem Monitor. Beispielsweise muss ein Bild einer aus 3D-Polygonen aufgebauten Figur, betrachtet aus einem bestimmten Winkel, auf einem 2D-Monitor angezeigt werden. Dafür sind Matrixtransformationen erforderlich. Es braucht Berechnungen für Rotationen, Streckungen und die Verarbeitung von Fluchtpunkten. Wenn man noch weitergehen will, kommt auch Ray Tracing hinzu. Das heißt, Licht- und Schatteneffekte müssen ebenfalls berücksichtigt werden, und diese Berechnung erfordert noch mehr Rechenleistung. Denn geometrisch-optische Berechnungen müssen zusätzlich an jedem einzelnen Punkt jedes Polygons durchgeführt werden. Und diese gewaltigen Berechnungen müssen nicht nur einmal pro Sekunde erfolgen, sondern mindestens etwa 30- bis 60-mal, damit das menschliche Auge den Vorgang als natürlich und in Echtzeit wahrnimmt. Für Informatiker muss das geradezu eine Albtraumaufgabe gewesen sein. Hätte man solche Aufgaben Anfang der 1990er mit einer CPU erledigt, hätte man vermutlich kaum mehr als ein Bild pro Minute anzeigen können. Für ungeduldige Gamer wäre das unerträglicher Lag. GPUs können solche wiederholten Berechnungen jedoch matrixbasiert parallel verarbeiten, sodass die CPU diese Last nicht mehr allein tragen muss. Die meisten Matrixtransformations- und geometrisch-optischen Ray-Tracing-Berechnungen übernimmt die GPU, während die CPU nur noch deren nachgelagerte Verarbeitung ausführt. Aus Sicht von Gamern fühlt es sich daher so an, als würden diese Berechnungen nun „beschleunigt“. Daher stammt auch die Bezeichnung als Beschleuniger.<br /> <br /> Für alle Daten, die sich matrixbasiert darstellen lassen, sei es hochauflösendes 3D-Bildmaterial für Spiele, medizinische 3D-Voxel-Daten oder Multi-Feature-Tensor-Daten für das Training von Deep Learning, ist es kaum übertrieben zu sagen, dass das Zeitalter der GUGPUs seinen Höhepunkt erreicht hat. Das Problem ist jedoch, dass die Stärke der GUGPU zugleich auch ihre Schwäche ist. Um die Geschwindigkeit der Parallelverarbeitung zu steigern, muss man entweder die Zahl der Kerne weiter erhöhen oder die Informations-I/O-Geschwindigkeit zwischen den Kernen beschleunigen. Dafür kann man den Speicher enger mit den einzelnen Kernen integrieren oder die Bandbreite weiter ausbauen. Unverändert bleibt jedoch ein Preis: der steigende Stromverbrauch. Zusätzlich zu der Leistung, die die Kerne selbst aufnehmen, steigt auch der Energiebedarf für die Kühlung, weil die in den Kernen verbrauchte Energie als Wärme abgeführt werden muss. Auch die wiederholten Zyklen aus Erwärmung und Abkühlung wirken sich auf die Lebensdauer des Chips aus. GPUs sind ebenfalls siliziumbasierte Halbleiterchips, und der konzentrierte Einsatz von Energie und Rechenleistung verkürzt letztlich die Lebensdauer der Materialien und Bauelemente, aus denen die Kerne bestehen. Es kann zu mechanical failure, thermal failure und electrical failure kommen. Deshalb kommen Berichte nicht von ungefähr, dass GUGPUs, die in nahezu fabrikartig betriebenen Blockchain-Mining-Farmen eingesetzt werden, oft nicht einmal sechs Monate halten; auch bei high-performance GPUs, wie sie in gewöhnlichen PC-Bangs eingesetzt werden, beträgt die Lebensdauer meist nur etwa zwei Jahre, im besten Fall drei bis vier Jahre. Dass diese begrenzte Lebensdauer oft weniger auffällt, liegt natürlich auch daran, dass bis dahin bereits die nächste GPU-Generation erscheint. Trotzdem bleibt es ein Nachteil, den man hinnehmen muss, dass ihre Lebensdauer kürzer ist als die einer CPU.<br /> <br /> Trotzdem beginnt das KI-Zeitalter gerade erst zu wachsen und aufzublühen, und ohne Beschleuniger wie GPUs gibt es keine Möglichkeit, diese enorme Zahl an Berechnungen zu bewältigen. Sich allein auf GPUs zu verlassen, ist jedoch ebenfalls problematisch, denn der Stromverbrauch von GPUs für das Training steigt immer weiter an. Eine Alternative ist daher selbstverständlich nötig, und eine der Lösungen, die sich vom späten Jahrzehnt der 2010er bis in die 2020er herausgebildet haben, sind FPGA und NPU. 2019 übernahm AMD, neben Intel einer der beiden dominierenden CPU-Hersteller, überraschend Xilinx, den weltweit führenden FPGA-Anbieter. In der Branche galt das als überfälliger Schritt, denn der Konkurrent Intel hatte bereits 2015 mit der Übernahme von Altera, der Nummer zwei im FPGA-Markt, für 16,7 Milliarden US-Dollar vorgelegt. Warum also haben traditionsreiche CPU-Hersteller ausgerechnet FPGAs übernommen, die sich deutlich von CPUs unterscheiden? FPGA ist, wörtlich genommen, ein Rechenchip, den der Anwender je nach Zweck immer wieder neu programmieren kann. Dass der Anwender ihn neu programmieren kann, bedeutet, dass nur die minimal nötigen Grundfunktionen des Chips festgelegt sind, während die Anordnung und das Design der übrigen Einheiten veränderbar bleiben. Damit ist auch klar, dass solche Chips teurer sein müssen als Halbleiterchips wie CPUs oder DRAM, die in standardisierten Prozessen gefertigt werden. Schließlich muss ein höherer degree of freedom erhalten bleiben. Vor dem Zeitalter des Deep Learning wurden FPGA-basierte Chips aus genau diesem Grund vor allem für spezielle Einsatzzwecke genutzt, etwa in Kernkraftwerken oder Raumsonden; als allgemeine Lösung kamen sie kaum zum Einsatz.<br /> <br /> Mit dem eigentlichen Durchbruch des Deep-Learning-Zeitalters begann sich der Markt, der zuvor scheinbar vollständig von GPUs beherrscht werden würde, jedoch zunehmend zu diversifizieren. Für GPUs war das keineswegs nur eine gute Entwicklung. Wäre Deep Learning lediglich eine Ansammlung sich wiederholender Faltungsberechnungen geblieben, wäre das kein Problem gewesen. Doch je breiter die Anwendungsfelder von Deep Learning wurden, desto vielfältiger wurden auch Umfang und Eigenschaften der Daten, die Deep-Learning-Engines verarbeiten mussten. Wenn sich der Einsatz darauf beschränkte, in Bildern Zahlen zu erkennen oder Hunde von Katzen zu unterscheiden, blieb der Anwendungsbereich begrenzt. Doch dann öffnete sich ein Markt mit stark ausdifferenzierten Einsatzgebieten und Spezifikationen: natürliche Sprache verarbeiten, Fehler in komplexen chemischen Prozessdaten mit mehr als 1.000 Features erkennen, Netzwerke aus IoT-Sensoren entwerfen, komplexe Fluidströmungen in porösen Medien inferieren und simulieren, die sich mit CFD nicht abdecken lassen, oder in Echtzeit einen Motor für autonomes Fahren entwickeln. Für diejenigen, die Deep Learning industriell anwenden wollen, ist diese Diversifizierung des Marktes zu begrüßen. Wer jedoch alles mit universellen GPUs abdecken wollte, steht damit vor einem Problem. Denn je nach Anwendung unterscheiden sich die Gewichtungen dafür, ob Klassifikation, Inferenz, Vorhersage oder Erkennung wichtiger ist, und es wurde immer schwieriger, eine einheitliche Rechenstruktur weiterzuführen, die nur auf standardisierte Neural-Network-Algorithmen optimiert ist. In der Frühphase von Deep Learning gab es als verfügbare Hardware praktisch nur GUGPUs, weshalb Entwickler von Deep-Learning-Algorithmen ihre Verfahren zwangsläufig auf Basis der vorgegebenen GUGPU-Spezifikationen entwerfen mussten. Doch mit dem exponentiellen Wachstum bei Art und Menge der Daten, die Deep Learning verarbeitet, beeinflussen nun umgekehrt Deep-Learning-Algorithmen immer häufiger das Architekturdesign von GPUs. Dazu gehören etwa die Festlegung der Präzision einzelner GPU-Kerne auf FP16 oder der Entwurf von Kernen mit tolerierter Präzisionsvariation, also Multi-Präzision. Doch auch dieses Deep-Learning-getriebene GPU-Design hat klare Grenzen. Denn auch bei GPUs ist es nach der Fertigung nahezu unmöglich, ihre Struktur zu verändern, und es bleibt kein Raum für Reprogramming. Man kann sich zwar auch mit einer Axt rasieren, aber dass einem ein vertrauter Rasierer fehlt, ist nur allzu menschlich.<br /> <br />

Im Gegensatz dazu setzt sich am Markt zunehmend die Erkenntnis durch, dass FPGAs für diese Zwecke besser geeignet sein könnten. Wie bereits erwähnt, werden FPGAs an Kunden ausgeliefert, noch bevor das Logikdesign vollständig abgeschlossen ist. Stattdessen wird eine Art SDK bereitgestellt, mit dem Kunden sie für ihre jeweiligen Zwecke programmieren können. Das bedeutet, dass Kunden beispielsweise einen speziell für strömungsmechanische Simulationen ausgelegten Deep-Learning-Chip erstellen könnten. Selbst wenn es anfangs Konstruktionsfehler gibt und er nicht korrekt funktioniert, sind jederzeit Anpassungen möglich, da eine Neuprogrammierung möglich ist; dadurch lassen sich Kostenverluste im frühen Testprozess verringern. Zwar ist die Parallelverarbeitungsleistung auf Hardware-Ebene nicht mit der von GPUs vergleichbar, doch auch FPGAs können Parallelverarbeitung leisten, was ebenfalls auf ihre Eigenschaften zurückzuführen ist. Bei FPGAs lässt sich Parallelverarbeitung auf Software-Ebene implementieren; es ist also möglich, Algorithmen so zu entwerfen, dass ein einzelner Kern mehrere Befehle (multiple instruction) entgegennimmt und mehrere Outputs erzeugt. Diese Methode wird als Multiple instruction multiple data (MIMD) bezeichnet. Bei einzelnen GPU-Kernen hingegen ist der Datenfluss von vornherein als single instruction multiple data (SIMD) aufgebaut, um optimale Bedingungen für Parallelverarbeitung durch wiederholte Aufgaben zu schaffen. Wenn der Befehlssatz gut aufgebaut und das Datenformat sauber standardisiert ist, ermöglichen GPUs auf Hardware-Ebene nahezu göttliche Parallelverarbeitung. Ändert sich jedoch das Datenformat oder treten Berechnungen auf, die sich mit dem gegebenen Befehlssatz nur schwer abdecken lassen, geraten sie zwangsläufig ins Stocken. FPGAs sind dagegen bei der Parallelverarbeitung auf Hardware-Ebene im Nachteil, ihr größter Vorteil ist jedoch ihre Flexibilität. Auch wenn sich die Datenbreite (width) ändert, sind sie nicht an einen vorab definierten Befehlssatz gebunden, da sich multiple instruction sets nutzen lassen. Gerade diese Flexibilität bedeutet, dass FPGAs im heutigen Zeitalter des Deep Learning, in dem vielfältige Datensätze und Edge-Applications stark gefragt sind, an Marktpotenzial gewinnen dürften.<br /> <br /> Hinzu kommt, dass FPGAs, die von vornherein nicht Tausende von Kernen gleichzeitig betreiben müssen — auch wenn die Leistung etwas geringer ist — im Vergleich zu GPUs einen sehr, sehr viel niedrigeren Stromverbrauch aufweisen (siehe beigefügte Tabelle 1). Außerdem lässt sich bei FPGAs mit der Weiterentwicklung von Deep-Learning-Algorithmen auch die Art des Stromverbrauchs anpassen, sodass die Energieeffizienz jederzeit optimiert werden kann. Denn das Prinzip ist einfach: nicht benötigte Schalter werden deaktiviert, nur die notwendigen aktiviert. Vor diesem Hintergrund lässt sich auch erklären, warum Intel und AMD, die vor dem eigentlichen Durchbruch des Deep-Learning-Zeitalters mit GPUs keinen besonderen Erfolg hatten, hastig die FPGA-Hersteller Nummer 1 und 2 der Branche für hohe Summen übernahmen. Natürlich blieb auch Nvidia als bisherige GPU-Macht nicht untätig. So viele Vorteile FPGAs auch haben mögen, sie besitzen im Deep-Learning-Bereich gegenüber GPUs weiterhin einen entscheidenden Schwachpunkt: die langsamere Training-Geschwindigkeit. Dieser Nachteil ist unvermeidlich. Schließlich handelt es sich nicht um eine built-in-Struktur, bei der auf Hardware-Ebene einfach beliebig viele verfügbare Kerne erhöht werden. Intel und AMD entwickelten daher den Plan, über FPGAs Anteile am von GPUs dominierten Markt für AI-Beschleuniger zu erobern. Intel brachte Agilex und PAC (programmable acceleration card) auf den Markt, und auch AMD (Xilinx) setzte mit der Accelerator-Karte Alveo auf eine Offensive. Besonders Xilinx schwenkte mit Produkten wie Versal um, bei denen HBM (high-bandwidth memory) direkt mit dem FPGA kombiniert wurde; möglich wurde dies auch dadurch, dass die ultrafeine Patterning-Technologie für Halbleiter unterhalb von 10 nm in eine reife Phase eingetreten war (Versal wird im 7-nm-Prozess gefertigt). Während Intels FPGA-basierter Beschleunigerumsatz nach der Übernahme von Altera kein starkes Wachstum zeigte, verzeichnete Xilinx kontinuierlich deutliche Zuwächse. Das zeigt zugleich, dass die Xilinx-Architektur aus FPGA + HBM die Leistungsunterschiede bei Deep-Learning-Beschleunigern nach und nach verringert. Darüber hinaus treibt Xilinx die Entwicklung mit dem für Deep Neural Networks optimierten xDNN-Prozessor voran und zielt damit auf den Markt für flexible Deep-Learning-Beschleuniger.<br /> <br /> Tatsächlich ist im Deep-Learning-Trainingsprozess nicht nur die Matrixberechnung wichtig, sondern ebenso die Integration der Lernergebnisse großer Datenmengen. Dafür muss bei sequenziell anliegenden Daten die Wartezeit verkürzt werden. Mit anderen Worten: Die Verringerung der Datenlatenz wird sowohl beim Energieverbrauch als auch bei der Trainingsgeschwindigkeit immer wichtiger. Die Karte, die Nvidia gegen das FPGA-Lager ausgespielt hat, ist genau diese Technologie zur Reduzierung der Datenlatenz: InfiniBand. Zu diesem Zweck gewann Nvidia im Übernahmewettbewerb gegen Intel und AMD und übernahm 2019 für 6,9 Milliarden US-Dollar Mellanox, einen Weltmarktführer bei Netzwerk-Interface-Karten (NIC) und InfiniBand, wodurch sich das Unternehmen eigene Optimierungstechnologien für NPUs sichern konnte. Die Technologie, mit der Nvidia neben GPUs den gesamten Markt für Deep-Learning- und darüber hinaus AI-Beschleuniger anvisiert, ist das universelle Deep-Learning-Beschleuniger-SoC Xavier, das insbesondere als Kernprodukt für den Markt autonomer Fahrzeuge positioniert wird, in dem die Nachfrage nach AI-Beschleunigern explosionsartig wächst. Auch Nvidias CUDA bietet mit cuDNN eine auf Deep Learning spezialisierte Lösung; da dort unabhängig von Datensatz oder Größe die von fast allen Deep Neural Networks benötigten Einheiten bereits implementiert sind, kann man sagen, dass Nvidia sich damit auch ein Sprungbrett in den künftigen NPU-Markt gesichert hat. Besonders NPUs sind Chips, in denen für bestimmte Datensätze DNNs bereits auf Hardware-Ebene implementiert sind (wörtlich gesagt sind das Chips, bei denen die einzelnen Schichten eines Deep-Learning-Netzwerks 1:1 als silikonbasierte Logikeinheiten umgesetzt werden. Man kann sie also als eine direkte Hardware-Implementierung von Neuronen verstehen). Angesichts der Eigenschaft, dass sie sich gut in mobile APs integrieren lassen, ist es sehr wahrscheinlich, dass Nvidia auch seine Dominanz im künftig weiter stark wachsenden AP-Markt behaupten kann. Man kann NPUs als Chips verstehen, bei denen die Funktion so festgelegt ist, dass die „Inferenz“ nicht auf der GPU, sondern auf Endgeräten (zum Beispiel Smartphones) erfolgt. Da man GPUs, die inzwischen das Volumen eines recht dicken Buches erreicht haben, nicht in Smartphones einbauen kann, werden NPUs so entwickelt, dass möglichst viel der trainierten bestehenden Struktur built-in vorliegt. Wenn GPU-Server das eigentliche Modelltraining übernehmen und die NPU nur die Aufgabe erhält, auf Basis des trainierten Modells aus Eingabedaten Merkmale abzuleiten, dann ist weder hoher Stromverbrauch nötig noch ein großer Formfaktor. Dadurch können sie kundenspezifisch mit in Smartphone- oder Fahrzeug-Halbleiterchips integriert werden. Das kann man auch als eine Strategie verstehen, die die von FPGAs angestrebte Flexibilität umgeht. Genau auf diesen NPU-Markt zielte Nvidia mit der nach Xavier folgenden Jetson-Serie ab und senkte zudem den Preis weiter.<br /> <br /> Der Hauptkonkurrent im NPU-Markt dürfte wohl Google sein. Google stellte die selbst entwickelte Chipserie TPU (tensor processing unit) Coral vor und versucht mit einem Preis von weniger als einem Fünftel von Nvidias Jetson über die Kosten zu konkurrieren. Natürlich stehen Leistung und Preis in einem proportionalen Verhältnis, und die Leistung von Coral soll bei etwa einem Fünftel bis einem Drittel von Xavier oder Jetson liegen. Allerdings ist zu erwarten, dass die künftig von Google veröffentlichten TPUs auf Basis des Marktfeedbacks in einem etwas breiteren Spektrum eingesetzt werden. Dies dürfte auf Googles Wettbewerbsfähigkeit bei der Geschwindigkeit von Trainingsmodell-Updates über GPU-Cloud-Server zurückzuführen sein. Auch traditionelle Mobile-AP-Anbieter wie Samsung oder Qualcomm verfolgen die Strategie, NPUs in ihre Chips hineinzupacken, weil sich die Leistung der AP-Chips selbst aufgrund der Grenzen ultrafeiner Patterning-Technologien immer weniger verbessern lässt. Qualcomm begann ab der Snapdragon-845-Serie mit der Integration von NPUs, Samsung ab der Exynos-9-Serie. Unternehmen, die NPUs integrieren oder parallel einsetzen wollen, werden naturgemäß Daten aus mobilen Chips sichern und ihren Anwendungsbereich schrittweise ausweiten. Der nächste Markt dürfte sich wahrscheinlich zunehmend auf Fahrzeughalbleiter (Chips für autonome Fahrzeuge oder Automotive-Elektronik), Chips zur IoT-Signalverarbeitung und komplexe Radar-Chips für militärische Anwendungen erstrecken.<br /> <br />

Ironischerweise hängt der Wettbewerb zwischen FPGA und dem Markt für NPU/TPU/cuDNN jedoch nicht von der Hardware, sondern von der Software ab – insbesondere davon, wie sich Deep-Learning-Algorithmen weiterentwickeln. Schon heute entstehen im Bereich der Deep-Learning-Algorithmen beinahe täglich neue Methoden, neue Theorien und neue Modelle, und es wird von Jahr zu Jahr schwieriger, auf den vier großen KI-Konferenzen Papers angenommen zu bekommen. Doch wie bei Technologien in anderen Bereichen gilt auch für Deep Learning: Wenn das Feld zunehmend in eine Reifephase eintritt und sich das Tempo algorithmischer Innovation verlangsamt, wird auch der Vorteil der FPGA-eigenen Flexibilität allmählich verblassen. Denn der Vorteil, bei schnelleren und effizienteren neuen Algorithmen per Reprogramming nachziehen zu können, ist kein wirklicher Vorteil mehr, wenn die Zyklen des Algorithmuswechsels immer länger werden. Ein Beispiel: Bei Funktionen wie Bilderkennung kann man inzwischen davon ausgehen, dass die Algorithmen einen gesättigten Zustand erreicht haben, in dem es kaum noch Spielraum für Verbesserungen gibt. (Die menschliche Erkennungsrate wurde längst übertroffen, und die meisten brauchbaren Algorithmen liegen bei der Bilderkennungsrate inzwischen über 95 %.) Später könnte es vielmehr vorteilhafter sein, allgemeine DNNs fortlaufend anzupassen und so die Lücke zwischen Hardware und aktuellen Algorithmen weiter zu verkleinern.<br /> Der Markt für Deep-Learning-Beschleuniger wird auch künftig weiter wachsen, und wahrscheinlich wird die Nachfrage selbst nach 2030 noch zunehmen. Welche Form der Marktbeherrschung sich dabei durchsetzen wird, bleibt jedoch abzuwarten. Niemand kann vorhersagen, wann die Reifephase der Deep-Learning-Algorithmen einsetzt, aber sie wird letztlich kommen, und es ist schwer zu prognostizieren, welche Technologie zu diesem Zeitpunkt am besten optimiert sein wird. Auch bei FPGA gibt es weiterhin reichlich Raum für Innovation. Ein gutes Beispiel dafür ist Googles im Juni dieses Jahres in Nature veröffentlichte Forschung zum Chipdesign auf Basis von Reinforcement Learning* (https://www.nature.com/articles/s41586-021-03544-w). Das Platzieren von Millionen bis zig Millionen Einheiten auf einer engen Chip-Die-Fläche und das Gestalten der Daten-Inputs und -Outputs zwischen diesen Einheiten so, dass Latenz minimiert und gleichzeitig der Energieverbrauch gesenkt wird, gehörte zu den schwierigsten Aufgaben im Halbleiterchip-Design. Fabless-Unternehmen haben solche Optimierungen bislang mit ihrem über Jahre aufgebauten Know-how durchgeführt, doch die von Google veröffentlichten Ergebnisse waren geradezu schockierend, weil sie Verbesserungen erzielten, die dieses bisherige Erfahrungswissen verblassen ließen. Das ist vergleichbar mit der optimalen Anordnung von Möbeln und Haushaltsgeräten in einem komplexen Wohnungsgrundriss, sodass Bewegungen und Kraftaufwand minimal bleiben. Google hat für den Zustandsraum der Unit-Platzierung (~10^2500), der weit größer ist als der Zustandsraum von Go (~10^360), ein optimiertes Design mit einer Methode erreicht, die den Ansatz von AlphaGo deutlich weiterentwickelt. Dieses Designverfahren lässt sich selbstverständlich auch unmittelbar auf die Optimierung von FPGA anwenden, denn die Optimierung gegebener Leistung unter Berücksichtigung der degree of freedom eines vorgegebenen instruction set ist in demselben Zusammenhang eine erreichbare Aufgabe.<br /> <br /> Könnten auch Technologien entstehen, die sich grundsätzlich von den bisherigen Ansätzen unterscheiden, die Nvidia, Google, Intel, AMD und Qualcomm verwenden? Natürlich besteht diese Möglichkeit. Ganz im Sinne des Begriffs Neural Net lässt sich inzwischen eine Technik denken, bei der das neuronale Netzwerk des menschlichen Großhirns nicht nur nachgeahmt, sondern buchstäblich per copy & phaste mit Halbleiterchips verbunden wird. Genau ein solches Beispiel ist die kürzlich von Wissenschaftlern aus Korea von Samsung und der Harvard University veröffentlichte Perspective* (**https://www.nature.com/articles/s41928-021-00646-1...). Die in diesem Paper skizzierte alternative Technologie ist der neuromorphe Halbleiter (neuromorphic chip). Dass das längst bekannte Konzept des neuromorphen Chips erneut Aufmerksamkeit bekommt, liegt daran, dass auf dem Niveau real existierender Technologie gezeigt wurde, dass es möglich ist, die elektrischen Signale, die in neuronalen Netzwerken des menschlichen Gehirns ausgetauscht werden, mit Nanoelektroden zu verbinden, direkt zu kopieren (copy) und in den darunter angeschlossenen Speicher zu übertragen (phaste). Das bedeutet, dass – abgesehen vom weichen Gewebe des Gehirns selbst – praktisch sämtliche Funktionen direkt auf Halbleiterchips übertragen werden könnten. Die Speicherhalbleitertechnologien zur Umsetzung neuromorpher Chips existieren bereits in Form von SRAM, RRAM, MRAM, Memristor usw. oder werden bereits tatsächlich eingesetzt. Entscheidend ist daher vor allem, wie sich die Signale aus Billionen von Neuronen in Echtzeit mit minimaler Latenz in den Speicher übertragen lassen; die Verbindung per copy & phaste scheint inzwischen technisch nicht mehr unmöglich zu sein. <br /> <br /> Auch in Zukunft wird der von Deep-Learning-Beschleunigern getriebene Halbleitermarkt vielfältig und noch kraftvoller wachsen. Wie weit Deep-Learning-basierte Datenverarbeitung in noch stärker diversifizierte Märkte vordringen kann und wie große unstrukturierte Datenmengen sie verarbeiten kann, wird über die Marktgröße und die dominierende Technologie entscheiden. Dabei gilt die Aufmerksamkeit nicht nur der Weiterentwicklung der heutigen Schlüsseltechnologien, sondern auch neuartigen Technologien, die diese aus einer völlig anderen Richtung ersetzen könnten. Neben Neuromorphic sind auch photonics-basierte neural networks möglich; das würde bedeuten, dass sich die Latenz selbst auf Lichtgeschwindigkeit reduziert, und könnte das Erscheinen noch leistungsfähigerer NPU ankündigen. Bei Spintronics ließe sich die Parallelverarbeitungsleistung weiter steigern, und spezielle Deep-Learning-Algorithmen für Quantencomputer wie das von Google vorgestellte TFQ könnten "Inferenz" in einem völlig anderen Sinn neu definieren als bisher. Auch der künftige Halbleitermarkt wird seine wichtigsten Impulse letztlich aus KI-Beschleunigern ziehen, die von Deep Learning angetrieben werden, sowie aus den dazu passenden Innovationen bei den Algorithmen. Während immer mehr Fabless-Unternehmen mit unterschiedlichsten Architekturen wie Pilze aus dem Boden schießen, dürfte letztlich die Verfügbarkeit von Fertigungstechnologien, mit denen sich die Spreu vom Weizen trennen und die Grenzen der technischen Umsetzung bestimmen lassen, darüber entscheiden, wer die Dominanz in dem künftig entstehenden Markt gewinnt.<br /> <br />

  • Ein Facebook-Post von Professor Kwon Seok-jun von der Sungkyunkwan University, den ich hier übernommen habe, weil er die bisherige Entwicklung von CPU und GPU auf unterhaltsame Weise erklärt.</p>

1 Kommentare

 
xguru 2021-10-02
<p>Da manche kein Facebook-Konto haben, habe ich den vollständigen Text hierher mitgebracht. In den Facebook-Kommentaren gibt es ebenfalls hilfreiche Hinweise, daher empfehle ich, dort vorbeizuschauen.</p>