Wie wir alle wissen, dominieren derzeit Prozessoren mit x86-Architektur den PC- und Servermarkt, während Prozessoren mit Arm-Architektur den Mobilmarkt dominieren und einen großen Marktanteil im IoT-Markt einnehmen. In den letzten Jahren erfreut sich die RISC-V-Architektur aufgrund ihrer Vorteile wie Open Source, optimierte Anweisungen und Skalierbarkeit jedoch großer Beliebtheit im Bereich des Internets der Dinge, der sich auf Energieeffizienz konzentriert.

Angetrieben von RISC-V International und verwandten Chipherstellern hat RISC-V auch begonnen, mit höheren Leistungsanforderungen in den Servermarkt einzudringen.

Anfang 2023 identifizierte RISC-V International HPC als einen strategischen Schwerpunktbereich für das RISC-V-Wachstum, und in Verbindung mit den kürzlich genehmigten Vektorerweiterungen und einer Vielzahl von HPC-Softwarebemühungen zur Portierung wichtiger HPC-Bibliotheken und -Tools ist klar, dass die Dynamik in diesem Bereich schnell zunimmt.

Viele Projekte auf der ganzen Welt, wie das europäische eProcessor-Projekt, die Esperanto-CPU mit Tausenden von RISC-V-Kernen und das herstellerübergreifende RISE-Projekt zur Entwicklung der Unterstützung für wichtige Softwarekomponenten von RISC-V, könnten die Popularität von RISC-V im High-End-Computing, einschließlich HPC, fördern und es der Community letztendlich ermöglichen, Supercomputer rund um diese Technologie zu bauen.

Darüber hinaus belegen frühe Anwendungsforschungen die Vorteile, die RISC-V für Hochleistungs-Workloads mit sich bringen kann.

Im Dezember 2022 stellte das Chip-Start-up Ventana Microsystems auf dem RISC-V Summit die weltweit erste auf der RISC-V-Architektur basierende 192-Kern-CPU VeyronV1 vor.

Berichten zufolge verwendet VeyronV1 fortschrittliche 5-nm-Prozesstechnologie, basierend auf Ventanas selbst entwickeltem Hochleistungs-RISC-V-Kern, 8-Pipeline-Design, unterstützt Out-of-Order-Ausführung, mit einer Hauptfrequenz von bis zu 3,6 GHz, jeder Cluster verfügt über bis zu 16 Kerne, und mehrere Cluster können bis zu 192 Kerne unterstützen, verfügt über 48 MB gemeinsam genutzten L3-Cache, verfügt über erweiterte Maßnahmen zur Abwehr von Seitenkanalangriffen, IOMMU und Advanced Interrupt Architecture (AIA) unterstützen umfassende RAS-Funktionen und Top-Down-Methoden zur Software-Leistungsanpassung, um verschiedene Anforderungen des Rechenzentrums zu erfüllen.

Den von Ventana im SPECint2017-Test veröffentlichten Daten zufolgeBei einem Stromverbrauch von 300 W liegt die 128-Kern-Version von VeyronV1 deutlich vor dem 64-Kern AMDEPYCMilan7763 (280 W) und ist doppelt so leistungsstark wie der 64-Kern AWS Graviton G3 (Neoversev1-Kern) und der 40-Kern Intel Xeon Ice Lake8380 (270 W). Das liegt natürlich vor allem daran, dass die Anzahl der Kerne inzwischen doppelt so hoch ist wie bei Konkurrenzprodukten.

Es sollte darauf hingewiesen werden, dass VeyronV1 nicht über eine SIMD- oder Vektorausführungseinheit verfügt, was für Intel- oder AMD-Serverprozessoren mit AVX-512 sehr nachteilig sein wird.

Darüber hinaus befindet sich VeyronV1 derzeit nicht in Massenproduktion. Zuvor wurde versprochen, den Kunden im zweiten oder dritten Quartal dieses Jahres Muster zur Verfügung zu stellen. Daher liegen die oben genannten offiziell bekannt gegebenen Daten noch auf dem Papier vor.

Im Gegensatz dazu wurde der 64-Kern-RISC-V-Serverchip SG2042, der im März dieses Jahres von einem inländischen Hersteller auf den Markt gebracht wurde, in kleinen Mengen ausgeliefert.

Kürzlich führte der ausländische Forscher Nick Brown mit der RAJAPerf-Benchmark-Suite tatsächliche Tests an diesem Chip durch und stellte fest, dass sich die durchschnittliche Leistung pro Kern im Vergleich zu den neuesten weit verbreiteten RISC-V-Chips um das Fünf- bis Zehnfache erhöhte. Unter Multithread-Workloads ist die durchschnittliche Leistung von x86-Hochleistungs-CPUs jedoch immer noch vier- bis achtmal höher.

Dem Forschungsbericht zufolge läuft der 64-Kern-RISC-V-Prozessor mit 2 GHz, besteht aus vier Hochleistungs-C920-Kernen und verfügt über ein 12-stufiges Out-of-Order-Multi-Issue-Superskalar-Pipeline-Design.

Der C920 stellt den RV64GCV-Befehlssatz mit drei Dekodier-, vier Umbenennungs-/Planungseinheiten, acht Ausgabe-/Ausführungseinheiten und zwei Lade-/Speicherausführungseinheiten bereit. Unterstützt die Vektorisierungsstandarderweiterung (RVVv0.7.1), die Vektorbreite beträgt 128 Bit, unterstützt die Datentypen FP16, FP32, INT8, INT16, INT32 und INT64. C920 unterstützt jedoch keine FP64-Vektorisierung

Gleitkommazahlen mit doppelter Genauigkeit sind die Grundlage für die überwiegende Mehrheit der Hochleistungs-Workloads. Kerne, die die Vektorisierung dieser Vorgänge unterstützen können, könnten daher eine höhere Leistung für HPC bieten, heißt es in der Studie. Jeder C920-Kern enthält außerdem 64 KB L1-Befehls- (I) und Daten-Cache (D), 1 MB L2-Cache, der vom Cluster aus vier Kernen gemeinsam genutzt wird, und 64 MB L3-Systemcache, der von allen Kernen im Cluster gemeinsam genutzt wird. Vier DDR4-3200-Speichercontroller und 32 PCIeGen4-Lanes sind ebenfalls verfügbar.

Ein wichtiger Gesichtspunkt für HPC-Workloads ist die Vektorisierung, und da der C920-Kern nur RVVv0.7.1 unterstützt, ist die Compilerunterstützung eine Herausforderung. Die aktuelle Upstream-Version des RISC-VGNU-Compilers unterstützt keine Version der Vektorerweiterungen. Obwohl das GNU-Repository einen rvv-next-Zweig enthält, der rvvv1.0 unterstützen soll, wurde dieser zum Zeitpunkt der Erstellung ihrer Studie durch die Forscher nicht aktiv gepflegt.

Darüber hinaus gab es einen rvv-0.7.1-Zweig für rvvv0.7.1, dieser Zweig wurde jedoch entfernt. Aufgrund der fehlenden Unterstützung für Mainline-GCC bietet T-Head einen eigenen Fork des GNU-Compilers (Xuantie GCC) an, der für seine Prozessoren optimiert ist.

Der benutzerdefinierte Compiler von T-Head unterstützt sowohl RVVv0.7.1 als auch ihre eigenen benutzerdefinierten Erweiterungen. Obwohl mehrere Versionen dieses Compilers bereitgestellt wurden, bietet GCC8.4 als Teil seiner Version 20210618 die besten Funktionen zur automatischen Vektorisierung, weshalb diese Version für die von den Forschern durchgeführten Benchmarking-Experimente ausgewählt wurde.

Diese Version des Compilers generiert eine vektorlängenspezifische (VLS) RVV-Komponente, die spezifisch für die 128-Bit-Vektorbreite des C920 ist. Alle Kernel wurden auf Optimierungsstufe drei kompiliert und alle gemeldeten Ergebnisse werden über fünf Läufe gemittelt.

Vergleich mit anderen Hochleistungs-RISC-V-Kernen

Die Forscher verglichen die Leistung von SG2042 mit den StarFive-Entwicklungsboards VisionFiveV1 und VisionV2. V1 enthält den StarFive JH7100SoC, während V2 den StarFive JH7110SoC enthält.

Beide SoCs, JH7100 und JH7110, basieren auf dem 64-Bit-RISC-VSiFiveU74-Kern, wobei JH7100 zwei Kerne und JH7110 vier Kerne enthält. Der SoC wird mit 1,5 GHz angegeben und der U74-Kern enthält 32 KB (D) und 32 KB (I) L1-Cache. Beide SoC-Modelle enthalten außerdem 2MBL2-Cache, der von den Kernen gemeinsam genutzt wird.

Allerdings bietet SiFiveU74 nur RV64GC und unterstützt daher keine RISC-V-Vektorerweiterungen.

△Abbildung 1 zeigt den Single-Core-Leistungsvergleich zwischen VisionFiveV2 und V1 und SG2042 in Bezug auf doppelte Präzision (FP64) und einfache Präzision (FP32). Dabei gibt der Balken die durchschnittliche Anzahl an Malen schneller oder langsamer in der gesamten Kategorie an und die Linien reichen vom größten zum kleinsten.

Wie in Abbildung 1 zu sehen ist, übertrifft ein einzelner C920-Kern die U74-Kerne von V2 und V1 sowohl in der doppelten als auch in der einfachen Präzision.

Bei doppelter Präzision beträgt die durchschnittliche Leistung des C920-Kerns das 4,3- bis 6,5-fache der Leistung des U74 in V2 bei doppelter Präzision. Darüber hinaus erzielte der C920 bei einfacher Präzision eine 5,6- bis 11,8-fache höhere Benchmark-Durchschnittsleistung. Das ist ein beeindruckender Leistungszuwachs, und es gibt keine Kerne des C920, die langsamer laufen als der U74.

Die Leistung einiger Kerne des C920 ist sehr beeindruckend, so läuft beispielsweise der Speichersatz-Benchmark der Algorithmengruppe in FP32 40-mal schneller und in FP64 18-mal schneller als der U74.

Es ist wichtig zu betonen, dass dieser Benchmark auf diesen Kernen in der bestmöglichen Konfiguration erfolgt, d. h. Vectoring wird auf dem C920 genutzt, Vectoring wird jedoch auf dem U74 nicht unterstützt und ist daher auf V1 oder V2 nicht verfügbar.

Es gibt einen erheblichen Leistungsunterschied zwischen FP32 und FP64 auf dem SG2042, was darauf hindeutet, dass C920-Vektoroperationen FP64 tatsächlich nicht unterstützen. Im Vergleich dazu ist der Leistungsunterschied zwischen der Ausführung mit doppelter und einfacher Genauigkeit auf V2 viel geringer.

Ein Aspekt der Ergebnisse in Abbildung 1, der die Forscher überraschte, war, dass VisionFiveV1 deutlich langsamer war als V2. Wenn man bedenkt, dass bei den Tests RAJAPerf nur auf einem einzelnen Kern ausgeführt wurde, spielt die Dual-Core- und Quad-Core-Beschaffenheit des Chips keine Rolle, da beide den gleichen U74-Kern enthalten, sodass die Leistung ziemlich ähnlich sein sollte.

Allerdings ist V1 bei doppelter Präzision sechs- bis dreimal langsamer als V2 und bei einfacher Präzision ein- bis dreimal langsamer. Man kann zwar davon ausgehen, dass die V1 möglicherweise mit einer niedrigeren Taktfrequenz läuft als die V2, obwohl beide im Datenblatt mit 1,5 GHz aufgeführt sind, gibt es keine Dokumentation oder Ausgabe auf der Maschine, die dies bestätigt.

Wie in Abbildung 1 zu sehen ist, ist die Leistung eines einzelnen C920-Kerns im Vergleich zu bestehenden, öffentlich erhältlichen Standard-RISC-V-Kernen beeindruckend. T-Head beschreibt den Kern als leistungsstarken RISC-V-Prozessor.

Tests zeigen auch deutliche Leistungsverbesserungen in der gesamten Benchmark-Suite im Vergleich zum U74, der zuvor als die beste Wahl unter den allgemein verfügbaren RISC-VCPUs zum Experimentieren mit HPC-Workloads galt.

Zusätzlich zur Single-Core-Leistung liegt SG2042 auch hinsichtlich der Kernanzahl deutlich vor dem JH7100-SoC von V1 und dem JH7110-SoC von V2.

Vergleich mit der CPU-Leistung eines x86-Servers

Wie schneidet SG2042 im Vergleich zu anderen kommerziellen x86-Serverchips bei HPC-Workloads ab?

In diesem Zusammenhang verglichen die Forscher es mit anderen CPUs, die in Servern der aktuellen Generation verwendet werden, nämlich dem AMD RomeEPYC7742 mit 64 Kernen, dem Intel Broadwell Xeon E5-2695 mit 18 Kernen, dem Intel Ice Lake Xeon 6330 mit 28 Kernen und dem Intel Sandy Bridge Xeon E5-2609 mit 4 Kernen.

Die Tests wurden nur auf den physischen Kernen dieser x86CPUs durchgeführt, da SMT standardmäßig deaktiviert ist.

Der AMDEPYC7742 enthält 64 physische Kerne in vier NUMA-Regionen mit jeweils 16 Kernen, aber acht Speichercontrollern. Jeder Kern enthält 32 KB (I) und 32 KB (D) L1-Cache, 512 KB L2-Cache und 16 MB L3-Cache, die von den vier Kernen gemeinsam genutzt werden. Der EPYC7742 bietet Unterstützung für AVX2, verfügt über 256 Bit breite Vektorregister, doppelt so breit wie der SG2042, und unterstützt die Vektorisierung für FP64.

Die 18 physischen Kerne des Intel Ähnlich wie der AMD EPYC7742 unterstützt der Xeon E5-2695 AVX2 und verfügt über vier Speichercontroller.

Der Intel Xeon6330 unterstützt AVX512 und bietet 512 Bit breite Vektorregister.

Der Intel Xeon E5-2609 ist die älteste CPU in diesem Test. Es wurde 2012 veröffentlicht und bietet nur vier physische Kerne. Jeder Kern verfügt über 64 KB (I) und 64 KB (D) L1-Cache sowie 256 KB L2-Cache und gemeinsam genutzten 10 MBL3-Cache. Dieser E5-2609 unterstützt nur AVX, daher ist die Vektorregisterlänge dieselbe wie beim SG2042, 128 Bit, obwohl AVX FP64 unterstützt.

Bei allen TestsDie Forscher haben Hyperthreading auf dem physischen x86-Kern deaktiviert.Die Forscher verwendeten GCC Version 8.3 auf allen Systemen außer ARCHER2 und die Kompilierung erfolgte immer auf Optimierungsstufe O3. Ein System, das alle auf der leistungsstärksten Anzahl von Threads ausführt.

△Abbildung 4 zeigt die Single-Core-Leistung jedes Chips, auf dem die Benchmark-Suite auf FP64 ausgeführt wird. Dabei gibt der Balken die durchschnittliche Anzahl an Malen schneller oder langsamer in der gesamten Kategorie an und die Linien reichen vom größten zum kleinsten. SG2042 ist der mittlere Ausgangswert.

Aus den Testergebnissen geht hervor,Alle x86-Kerne schnitten besser ab als der C920, mit Ausnahme des alten Xeon E5-2609-Kerns, der in den Kategorien Streaming und Algorithmus-Benchmark eine langsamere Durchschnittsleistung aufwies.

AMD EPYC7742- und Intel Xeon6330-CPUs schneiden tendenziell besser ab als der Intel

△Abbildung 5 zeigt, wie oft die Single-Core-Leistung jedes Chips die Benchmark-Suite auf FP32 im Vergleich zur Basislinie ausführt.

Wie Sie in Abbildung 5 sehen können, ist der AMD EPYC7742 bei der Ausführung mit einfacher Präzision gegenüber doppelter Präzision ziemlich glanzlos, während die durchschnittliche Leistung des Intel-Prozessors genauso gut ist. Tatsächlich übertrifft der alte Xeon E5-2609-Kern bei Verwendung von FP32 den C920 im Durchschnitt auf allen Ebenen.

Das durchschnittliche Balkendiagramm in Abbildung 5 liefert jedoch kein vollständiges Bild.

Der C920 unterstützt nur die Vektorisierung für FP32. Tatsächlich ist die maximale Geschwindigkeit vieler Benchmark-Klassen für FP32 höher als die von FP64, wie aus den Linien in Abbildung 5 und Abbildung 4 hervorgeht.

Darüber hinaus gibt es mehr der langsamsten Kerne, die auf einer x86-CPU langsamer arbeiten als ein C920 auf FP32. Bei diesen Kernen wird die Autovektorisierung effektiv angewendet, und tatsächlich zeigt sich, dass in der lcals-Benchmark-Klasse mindestens ein Kern auf allen x86-CPUs schlechter abschneidet als der C920.

Zusammenfassend lässt sich sagen, dass im Hinblick auf den Single-Core-Leistungsvergleich die durchschnittliche Leistung von AMD EPYC7742 unter FP32 dreimal schneller ist als die von C920, Intel XeonE5-2695 ist 2-mal schneller, Intel

△FP64-Multithread-Leistungsvergleich, Angabe der Häufigkeit, mit der die Leistung schneller oder langsamer als die Basislinie ist

Abbildung 6 zeigt den Leistungsvergleich für FP64 mit doppelter Genauigkeit.

Es zeigt sich, dass die Basic-, Lcals-, Polybench- und Stream-Class-Tests am meisten von mehr Kernen profitieren, sodass die durchschnittliche Leistung des SG2042 besser ist als die des alten Xeon E5-2609.

△FP32-Multithread-Leistungsvergleich, Angabe der Häufigkeit, mit der die Leistung schneller oder langsamer als die Basislinie ist

Abbildung 7 zeigt den Multithread-Leistungsvergleich von FP32, und diese Ergebnisse enthalten die größten Unterschiede. Um die Lesbarkeit zu verbessern, beschränkten die Forscher die vertikale Achse und markierten tatsächliche Werte, die diesen Wert überstiegen.

Wenn es um Multithread-FP32 geht, schneidet der SG2042 gegenüber x86-CPUs tendenziell etwas besser ab als FP64, obwohl die Polybench-Klasse insofern ein Ausreißer ist, als er auf den drei neuesten x86-CPUs viel besser abschneidet und der Intel Xeon E5-2609 viel schlechter abschneidet.

Zusammenfassend lässt sich sagen, dass beim Vergleich der SG2042-Multithread-Leistung mit x86-CPUs die durchschnittliche 64-Kern-Leistung in allen Benchmark-Typen, die auf FP32 und FP64 laufen, besser ist als die des 4-Kern-Intel Xeon E5-2609.

Die Leistung des 64-Kern-AMD EPYC7742 in FP32 und FP64 ist achtmal bzw. fünfmal so hoch wie die des SG2042. Der 18-Kern-Intel Schließlich schneidet der Intel Xeon6330 mit 28 Kernen in FP32 und FP64 6x bzw. 8x besser ab.

abschließend:

Obwohl viele Unternehmen derzeit hochleistungsfähige RISC-V-Hardware-Prototypen entwickeln, waren die Optionen bisher sehr begrenzt, wenn es darum ging, Workloads auf kommerziell erhältlicher RISC-V-Software auszuführen, sagten die Forscher.

Ungeachtet dessen ermöglichen diese Lösungen zwar das Experimentieren mit RISC-V, bieten jedoch architektonisch nicht die Funktionen, die für die Erstellung von Hochleistungs-Workloads erforderlich sind. Obwohl die HPC-Community an RISC-V interessiert ist, ist sie noch nicht ganz bereit für die Technologie.

Als weltweit erster allgemein verfügbarer Multi-Core-RISC-V-Serverchip für HPC könnte SG2042 natürlich das Interesse und die Akzeptanz von RISC-V in der HPC-Community erheblich steigern. Ein zentrales Problem besteht jedoch darin, dass es immer noch weit hinter den x86-CPUs zurückbleibt, die in der aktuellen Generation von Supercomputern vorherrschen.

Dennoch handelt es sich um einen sehr spannenden RISC-V-Serverchip, der im Vergleich zur derzeit im Handel erhältlichen RISC-V-Hardware einige wesentliche Änderungen bietet.

Obwohl die Leistung noch nicht auf dem Niveau von x86-Server-CPUs liegt, sollte betont werden, dass RISC-V-Anbieter in kurzer Zeit einen langen Weg zurückgelegt haben. Im Gegensatz dazu haben x86-CPUs eine lange Geschichte und profitieren von ihrer langjährigen Entwicklung.

Derzeit ist der Hauptkonkurrent von RISC-V auf dem Server-CPU-Markt die Arm-Server-CPU. Schließlich kann RISC-VCPU theoretisch geringere Kosten sowie eine höhere Anpassungsfähigkeit und Skalierbarkeit aufweisen als ARM-CPUs.

Für die nächste Generation von Hochleistungs-RISC-V-Prozessoren glauben die Forscher, dass die Bereitstellung von RVVv1.0 sehr nützlich sein wird, da dadurch die Verwendung von Mainline-GCC und Clang zum Kompilieren von vektorisiertem Code ermöglicht wird.

Darüber hinaus kann die Bereitstellung von FP64-Vektorisierung, breiteren Vektorregistern, größerem L1-Cache und mehr Speichercontrollern pro NUMA-Region auch erhebliche Leistungsvorteile bringen und dazu beitragen, die Lücke zu x86-Hochleistungsprozessoren zu schließen.


Zugang:

Jingdong Mall