Vor weniger als zwei Jahren haben wir den ersten Arm SoC-Server untersucht, der theoretisch mit dem Intel Xeon E5s - Cavium ThunderX - konkurrieren könnte. Der SoC-Server zeigte alles, was angekündigt wurde. Aufgrund der geringen Single-Thread-Leistung und der Schwierigkeiten bei der Optimierung der Energieeigenschaften wurde der 48-Kern-SoC jedoch Nischenmärkten zugeordnet. Infolgedessen konnte der erste Cavium SoC-Server nie mit Intels Xeon mithalten.

Cavium gab jedoch aus offensichtlichen Gründen nicht auf: Derzeit ist der Servermarkt attraktiver als je zuvor. Rechenzentren des globalen Riesen Intel erwirtschaften einen Umsatz von rund 20 Milliarden US-Dollar (!) Pro Jahr. Darüber hinaus beträgt die Rentabilität 50%. In Bezug auf Gewinn und Geldumsatz ist der Servermarkt um ein Vielfaches größer als jeder andere Gerätemarkt. Nach dem Start von ThunderX versprach Cavium daher, eine zweite Iteration zu veröffentlichen: verbesserte Energieverwaltung, verbesserte Single-Thread-Leistung und noch mehr Kerne (54).
Was Cavium nicht in die Hände spielt, ist, dass der Benutzer, wenn er einen Server benötigt, einfach einen debuggten und zuverlässigen Intel-Computer nehmen kann. In der Tat sind laute Versprechen von Arm, Calxeda, Broadcom und AppliedMicro in den letzten 5 Jahren Versprechen geblieben, was zu einer ernsthaften Welle von Skepsis und Misstrauen und der Entstehung neuer SoCs Arm Server geführt hat.
Dennoch verdient die neue Kreation eines Außenseiters Cavium Aufmerksamkeit. Es wurden eine Reihe von Änderungen vorgenommen, nicht nur die Hinzufügung der Nummer „2“ zum Namen: Cavium kaufte das vulkanische Design von Avago. Vulcan ist ein ziemlich ehrgeiziges Prozessordesign, das ursprünglich vom SoC Broadcom-Team des Arm-Servers entwickelt wurde und ein viel größeres Erbe als das ursprüngliche ThunderX hat. Aufgrund seiner Erfahrungen mit ThunderX konnte Cavium außerdem einige mikroarchitektonische Verbesserungen am Vulcan-Design vornehmen und dessen Leistung und Leistung verbessern.
Infolgedessen stellte sich heraus, dass ThunderX2 ein ausgefeilterer Kern ist als die vorherige Generation. Der ThunderX-Kern hatte eine sehr kurze Pipeline und hielt wahrscheinlich nicht zwei Anweisungen pro Zyklus aus, aber der Vulcan-Kern ist für 8 Abrufe ausgelegt und führt bis zu 4 Anweisungen pro Zyklus aus. Und noch mehr: Alle 4 Streams (SMT4) können gleichzeitig aktiv sein und sorgen für ein konstantes Back-End-Laden. Der neue ThunderX2 SoC32 verfügt über 32 solcher Kerne mit einer Frequenz von bis zu 2,5 GHz.

Mit bis zu 128 Threads und mindestens acht DDR4-Controllern sollte diese CPU bei allen Serverlasten eine gute Leistung erbringen. Mit anderen Worten, im Gegensatz zu ThunderX (1) ist ThunderX2 der erste Arm-Serverprozessor und hat jede Chance, das Gleichgewicht auf dem Servermarkt zu erschüttern.
Wer hat mehr: Spezifikationen
Zweiunddreißig hohe IPC-Kerne in einem Paket scheinen vielversprechend. Aber wie sieht der neue ThunderX2 im Vergleich zu AMD-, Qualcomm- und Intel-Produkten aus? In der folgenden Tabelle vergleichen wir die Spezifikationen mehrerer Top-End-Server-SKUs.

Erfahrene Leser werden sofort feststellen, dass das Xeon Platinum 8180 die Spitze der Intel-Prozessorreihe ist. Diese SKU mit 205 W TDP und einem Preis von mehr als 10.000 US-Dollar ist jedoch im Allgemeinen mit keinem Prozessor auf der Liste vergleichbar. Wir haben die Grenze der Vernunft bereits fast überschritten, einschließlich 8176, das, wie es uns scheint, gemäß den Parametern der maximalen SKU der Kernel / Thread-Blöcke in diese Liste fällt. Tatsächlich positioniert Cavium das Cavium 9980 als „vergleichbar“ mit dem Xeon Platinum 8164 (und Intel spielt diese Rolle 8176), jedoch mit etwas niedrigeren Frequenzen.
In Bezug auf die Leistung für den Dollar vergleicht Cavium sein Flaggschiff 9980 jedoch mit Intel Xeon Gold 6148, und in diesem Fall sieht der Preis des Cavium-Prozessors recht appetitlich aus. Laut den Testergebnissen liegt der schnellste ThunderX2 30-40% vor dem Xeon 6148, während das Angebot von Cavium 1.300 US-Dollar billiger ist. Diese aggressive Preisgestaltung erklärt die Gerüchte, dass Qualcomm nicht in den Servermarkt eintreten wird.
Die Daten in der obigen Tabelle zeigen wichtige Unterschiede zwischen den Konkurrenten. Intel scheint die fortschrittlichste Kerntopologie und die höchste Turbogeschwindigkeit zu haben. Qualcomm sieht in Bezug auf die Leistung pro Watt attraktiver aus.

Wie der EPYC von AMD dürfte auch der ThunderX2 von Cavium auf dem Markt für Hochleistungscomputer glänzen (33% höherer Durchsatz, höhere Kerne / Threads). Wie beim AMD-Design ist der EPYC L3-Cache langsam, wenn Sie Daten benötigen, die sich nicht im lokalen 8-MB-Cache-Steckplatz befinden. ThunderX2 ist viel komplexer - mit einer Dual-Ring-Architektur ähnlich der Xeon v4-Ring-Architektur (Broadwell-EP). Nach Informationen von Cavium kann ihre nicht blockierende Ringarchitektur Durchsätze von bis zu 6 TB / s liefern.
Diese Ringarchitektur ist mit dem Coherent Processor Interconnect (CCPI2 - oben in der Abbildung) von Cavium verbunden, der mit einer Geschwindigkeit von 600 Gbit / s arbeitet. Diese Verbindung verbindet zwei Socket / NUMA-Knoten. 56 Spuren von PCIe 3.0 SoC sind mit dem Ring verbunden, den Cavium unter 14 PCIe-Controllern gefunden hat. Diese 14 Controller können wiederum wie unten gezeigt zu x4 oder x1 verzweigen.

Außerdem unterstützt es SR-IOV, was für die E / A-Virtualisierung (Xen und KVM) so wichtig ist.
ThunderX: Von einfach zu komplex
Kurzes Briefing. Das ursprüngliche ThunderX war eine verbesserte Version von Octeon III: eine CPU mit der Fähigkeit, zwei Anweisungen (Dual-Issue-Core) mit zwei kurzen Pipelines gleichzeitig auszuführen.

Ein Vorteil des ursprünglichen ThunderX-Designs ist seine hohe Energieeffizienz, insbesondere für Workloads mit niedrigem ILP (Parallelität auf Befehlsebene). Natürlich stellt ein derart kurzer Förderer ernsthafte Einschränkungen für die Erhöhung der Taktfrequenz dar, und ein einfaches Design garantiert eine niedrige Single-Threaded-Leistung bei mittleren und hohen ILP-Lasten, während fortschrittlichere Prozessoren außerhalb der Reihenfolge so viel „versteckte Parallelität“ wie möglich extrahieren können. ".
Der „neue“ Kern des Cavium: Vulcan

Im Vergleich zum ursprünglichen ThunderX ist der Kern des Vulcan ThunderX2 ein völlig anderes Tier. Vulcan wurde 2014 von Broadcom angekündigt und ist ein relativ großer Kern, der 4 gleichzeitige Threads (SMT4) steuert. Daher sollte das Back-End auch bei Serverlasten mit niedrigem ILP gut geladen sein.
Um die Stabilität von 4 SMT-Streams zu gewährleisten, kann das ThunderX2-Front-End bis zu 64 Byte aus einem assoziativen 8-Wege-32-KB-Anweisungscache extrahieren, der mit einem einfachen Prefetcher für die nächste Zeile ausgestattet ist. Die Auswahl von 8 Befehlen ist jedoch nur möglich, wenn diese 64 Bytes nicht verzweigt sind. Andernfalls wird die Auswahl an der Gabel unterbrochen.
Dies bedeutet, dass der Fetcher bei intensiv verzweigtem Code (Datenbanken, AI ...) durchschnittlich ± 5 Anweisungen pro Zyklus erhält, da eine der 5 Anweisungen eine Verzweigung ist. Die ausgewählten Anweisungen werden dann an den Glättungspuffer gesendet - einen Puffer, in dem die gespeicherten Anweisungen zum Decodieren gespeichert werden.

Dann arbeitet der Decoder mit einem Paket von 4 Anweisungen. Zwischen dem Decoder und der Umbenennungsphase hat jeder Stream einen "Slip Buffer", der aus 8 Packs besteht. Mit 4 Threads können jederzeit bis zu 32 Pakete (128 Anweisungen) gepuffert werden.
Diese 4 Anweisungen - das Paket - bewegen sich entlang der Pipeline, bis eine einzelne Nachrichtenwarteschlange für den Scheduler erreicht ist. Wie Intels Loop Stream Detector (funktioniert wie ein kleiner Cache) verfügt er auch über einen Loop-Puffer und einen Prädiktor. Dieser Schleifenpuffer eliminiert falsche Verzweigungsvorhersagen und enthält decodierte μops, die die Pipeline „verkürzen“ und die für die Decodierung verwendete Energie reduzieren.
Es können bis zu 6 Anweisungen gleichzeitig ausgeführt werden. Die Implementierung umfasst 2 ALU / FP / NEON-Steckplätze, 1 ALU / Tap-Steckplatz, 2 Lade- / Speichersteckplätze (16 Byte) und 1 sauberen Speichersteckplatz, der 16 Byte an den D-Cache sendet. Es gibt einen kleinen (Cavium gibt nicht bekannt, wie viel) L1-TLB zum Umschalten ohne Verzögerung von virtuellen zu physischen Adressen. Es gibt keinen Hardware-Prefetcher für den L1 D1-Cache, aber der L2-Cache verfügt über einen ziemlich ausgeklügelten Hardware-Prefetcher, der Muster erkennen kann (er kann Schritt für Schritt arbeiten oder die nächste Zeile abrufen).
Dies reicht völlig aus, um das Back-End zu "füttern", das 4 Anweisungen pro Zyklus von 4 verschiedenen Threads unterstützen kann.
Unterschiede in der Mikroarchitektur
Cavium hat eine begrenzte Menge an Informationen zu den ThunderX2-Kernen veröffentlicht. Einige Hauptmerkmale verschiedener Prozessorarchitekturen sind nachstehend zusammengefasst.

Eine detaillierte Analyse würde den Rahmen dieses Artikels sprengen. Sie können jedoch Johan De Gelas Analysen zur Architektur von Falkor, Skylake und Zen in AnandTech lesen. Wir beschränken uns auf die offensichtlichsten Unterschiede.
Es ist ziemlich offensichtlich, dass die Single-Threaded-Leistung von Intel unübertroffen bleibt: Der Skylake-Kern ist der Kern, der die meisten Anweisungen im laufenden Betrieb ausführt und vor allem mit einer höheren Taktrate ausgeführt wird. Der Kern von ThunderX2 unterscheidet sich darin, dass er maximal Anweisungen pro Zyklus extrahiert und ständig 4 Threads unterstützt. Der Abrufer erfasst 8 Teams aus einem Thread, dann 8 aus dem zweiten Thread und wechselt weiter zwischen den Threads. Dies bedeutet, dass eine schlechte Vorhersage die Leistung eines einzelnen Threads erheblich verringern kann.
Die ThunderX2-SKUs: 16 bis 32 Kerne
Die für die Tests verwendete SKU ist ThunderX2 CN9980 2.2. Dies ist die Top-End-SKU, die 32 Kerne mit einer Frequenz von 2,2 GHz enthält und bis zu 2,5 GHz anheben kann.

Wenn Sie den Plänen von Cavium glauben, wird es in den kommenden Monaten viel mehr SKUs geben. Cavium behauptet, dass der CN9980 bald mit einer Frequenz von 2,5 GHz und einem Turbo von bis zu 3 GHz erhältlich sein wird.
Cavium listete alle geplanten SKUs zusammen mit vergleichbaren Intel-SKUs auf. Nach Caviums Definition ist eine vergleichbare Intel-SKU ein Chip, der unter gcc die gleiche SPECInRate (2017) wie die Cavium-SKU erzielt.

Cavium glaubt, dass der CN9880 2.2, den wir bekommen haben, mit dem viel teureren 8164 vergleichbar ist. Für unsere Tests vergleichen wir ihn mit 8176 (Intel SKU steht uns zur Verfügung). Nicht, dass es darauf ankommt: 8176 hat nur 3% höhere Taktrate und 2 zusätzliche Kerne (+ 7%) im Vergleich zu 8164. Beachten Sie jedoch, dass der ThunderX2 Cavium zwar wirklich mit den angegebenen Intel-SKUs konkurrieren kann, diese jedoch bieten die gleiche Leistung für ein Drittel der Intel SKU-Kosten.
Im nächsten Teil:
- Testkonfiguration und Methodik
- Speichersubsystem: Bandbreite
- Single-Threaded-Leistung: SPEC CPU2006
- SPEC CPU2006 Cont: Kernbasierte Leistung mit SMT
Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?