Über die Entwicklungstrends der Prozessorarchitektur oder warum ich an den Erfolg von Huawei auf dem Servermarkt glaube

Wir leben in interessanten Zeiten. Es scheint mir, dass die nächsten 2-3 Jahre bestimmen werden, wohin die Entwicklung der Architektur für das nächste Jahrzehnt führen wird. Auf dem Server-Prozessor-Markt gibt es mehrere Akteure, die völlig unterschiedliche technologische Ansätze vertreten. Und das ist sehr cool (ich finde es sogar schwierig zu sagen, auf welche Silbe die Betonung im letzten Wort fällt :))
.
Aber noch vor 5-6 Jahren schien die Zeit eingefroren zu sein und die Entwicklung zu stoppen. Machen Sie sich mit verschiedenen Einschränkungen vertraut (Power Wall, Scalability Wall usw.). Ich sprach ein wenig über sie hier. Moores Gesetz wurde in Frage gestellt und besonders leidenschaftliche Theoretiker schlugen vor, logarithmische Korrekturen einzuführen :) Die Dominanz von Intel auf dem Markt für Serverprozessoren schien damals unerschütterlich. AMD zeigte keine ernsthafte Konkurrenz, NVidia GPGPUs sahen aus wie ein reines Nischenprodukt, und ARM-Versuche, in den Servermarkt einzudringen, waren erfolglos.

Mit der Entwicklung von Segmenten wie Maschinelles Lernen und Künstliche Intelligenz hat sich alles geändert. GPGPUs erwiesen sich als viel besser an die Operationen der Faltung und Matrixmultiplikation „angepasst“ (insbesondere mit geringer Genauigkeit) als CPUs. Darüber hinaus konnte NVidia einen Anstieg der Anzahl von Transistoren nachweisen, sogar noch vor Moores Gesetz. Dies hat dazu geführt, dass die Welt der Serverarchitekturen bipolar geworden ist. An einem Ende befindet sich die x86-CPU, eine Latenz-Engine, mit der Latenzen außerhalb der Reihenfolge ausgeblendet werden können. Sein unbestreitbarer Vorteil ist seine hervorragende Leistung bei Single-Thread-Anwendungen (Single-Thread-Leistung). Der Nachteil ist die große Fläche und die Anzahl der Transistoren. Am anderen Ende der GPGPU befindet sich die Durchsatz-Engine, eine große Anzahl unkomplizierter Computerelemente (EUs). Hier ist das Gegenteil der Fall - die Größe eines Elements ist klein,Dadurch können Sie eine große Anzahl von ihnen auf einem Chip platzieren. Andererseits lässt die Leistung von Single-Threaded-Anwendungen zu wünschen übrig ...

Leider waren Versuche, Hochleistungs-CPUs und GPUs in einem Paket zu kombinieren, bisher nicht erfolgreich. Zumindest aus dem Grund, dass ein solcher Chip zu viel Energie verbraucht und abführt. Daher liegen jetzt diskrete Lösungen im Trend. Ich glaube aus zwei Gründen nicht wirklich an sie. Erstens wird die Architektur komplexer und es erscheinen zusätzliche Gags in Form eines Busses, der CPU und GPU verbindet, und einer heterogenen Speicherstruktur. Die zweite Schwierigkeit hängt teilweise mit der ersten zusammen und besteht darin, dass solche Lösungen viel schwieriger zu programmieren sind. Jedes der vorhandenen Beschleunigerprogrammiermodelle (CUDA von NVidia, DPC ++ von Intel, OpenCL oder OpenMP) hat seine eigenen Vor- und Nachteile. Gleichzeitig ist keiner von ihnen weder universell noch dominant.

Aus Sicht der Architekturentwicklung scheint mir AMD den richtigen Schritt getan zu haben, mit dem der Prozessor von Rom eingeführt wurde. Aufgrund der Kompaktheit des Kerns (im Vergleich zu Intel) konnten mehr Kerne in einem Fall platziert werden. Dies allein reicht jedoch nicht aus - damit eine solche Lösung die Leistung skalieren kann, muss auf die korrekte Kommunikation zwischen den Kerneln (Uncore) und die Qualität der parallelen Laufzeiten geachtet werden. AMD-Ingenieure haben es geschafft, beide Probleme zu lösen und auf einem der wichtigsten industriellen Benchmarks - der SPEC-CPU - sehr wettbewerbsfähige Ergebnisse zu erzielen. Die Lösung von AMD liegt zwischen den Polen von Nvidia und Intel. Aber es ist viel näher am letzten. Dies ist immer noch der gleiche "große Kern". Das goldene Mittel zwischen polaren Ansätzen erfordert meines Erachtens kompaktere Kerne.Und von den vorhandenen Architekturen hat ARM die besten Chancen, diese Nische zu besetzen.
Bild
Warum ist ARM genau von Huawei? Ich fand diese Antwort für mich selbst: Mit zunehmender Anzahl von Kernen auf einem Chip nimmt die Bedeutung der Leistung eines Kerns ab (jedoch bis zu einer gewissen Grenze), und die Bedeutung der Kommunikation zwischen den Kernen und mit dem Speicher nimmt zu. Und Kommunikation ist der Bereich, in dem Huawei weltweit führend ist. Es ist das unkernige Design (und nicht nur und nicht einmal der Kern), das die Leistung des Systems bestimmt. Und hier haben wir gute Chancen.

Ideale Architekturen existieren jedoch nur im luftleeren Raum. In der Realität ist es immer notwendig, mit der Menge und Struktur der auf dem Servermarkt vorhandenen Software zu korrelieren. Und es wurde jahrelang für X86 geschrieben und optimiert. Es wird viel Zeit und Mühe kosten, um es für die ARM-Architektur „freundlicher“ zu machen. Sowohl im Bereich der Softwaretools (Compiler, Bibliotheken, Laufzeiten) als auch im Bereich der Anwendungsanpassung (Application Engineering) liegt eine enorme Arbeit vor uns. Aber ich glaube, dass die Straße von demjenigen überwältigt wird, der geht.

All Articles