Comme nous le savons tous, les processeurs d'architecture x86 dominent actuellement les marchés des PC et des serveurs, tandis que les processeurs d'architecture Arm dominent le marché mobile et occupent une part de marché importante sur le marché de l'IoT. Cependant, ces dernières années, l'architecture RISC-V est devenue très populaire dans le domaine de l'Internet des objets axé sur l'efficacité énergétique en raison de ses avantages tels que l'open source, les instructions simplifiées et l'évolutivité.
Poussé par RISC-V International et les fabricants de puces associés, RISC-V a également commencé à pénétrer le marché des serveurs avec des exigences de performances plus élevées.
Début 2023, RISC-V International a identifié le HPC comme un domaine stratégique prioritaire pour la croissance de RISC-V, et couplé aux extensions vectorielles récemment approuvées et à un grand nombre d'efforts logiciels HPC pour porter les bibliothèques et outils HPC clés, il est clair que la dynamique dans ce domaine se développe rapidement.
De nombreux projets à travers le monde, tels que le projet européen eProcessor, le processeur Esperanto doté de milliers de cœurs RISC-V et le projet multifournisseur RISE visant à développer la prise en charge des composants logiciels clés de RISC-V, pourraient promouvoir la popularité de RISC-V dans l'informatique haut de gamme, y compris le HPC, et permettre à terme à la communauté de construire des superordinateurs autour de cette technologie.
De plus, les premières recherches sur les applications confirment les avantages que RISC-V peut apporter aux charges de travail hautes performances.
En décembre 2022, la start-up de puces Ventana Microsystems a lancé le premier CPU-VeyronV1 à 192 cœurs basé sur l'architecture RISC-V au monde lors du sommet RISC-V.
Selon les rapports, VeyronV1 utilise une technologie de processus avancée de 5 nm, basée sur le cœur RISC-V hautes performances auto-développé par Ventana, une conception à 8 pipelines, prend en charge l'exécution dans le désordre, avec une fréquence principale allant jusqu'à 3,6 GHz, chaque cluster a jusqu'à 16 cœurs et plusieurs clusters peuvent prendre en charge jusqu'à 192 cœurs, dispose de 48 Mo de cache L3 partagé, dispose de mesures avancées d'atténuation des attaques par canal latéral, IOMMU et L'architecture d'interruption avancée (AIA) prend en charge des fonctions RAS complètes et des méthodes descendantes d'ajustement des performances logicielles pour répondre aux divers besoins du centre de données.
Selon les données divulguées par Ventana, dans le test SPECint2017,Avec une consommation électrique de 300 W, la version à 128 cœurs du VeyronV1 est nettement en avance sur le AMDEPYCMilan7763 à 64 cœurs (280 W) et est deux fois plus puissante que l'AWS Graviton G3 à 64 cœurs (cœur Neoversev1) et l'Intel Xeon Ice Lake8380 à 40 cœurs (270 W). Bien entendu, cela est principalement dû au fait que le nombre de cœurs a atteint deux fois celui des produits concurrents.
A noter que VeyronV1 ne dispose pas d'unité d'exécution SIMD ou vectorielle, ce qui sera très désavantageux pour les processeurs serveur Intel ou AMD avec AVX-512.
De plus, la VeyronV1 n’est actuellement pas produite en série. Il avait déjà été promis de fournir des échantillons aux clients au deuxième ou au troisième trimestre de cette année. Par conséquent, les données officiellement annoncées ci-dessus sont toujours sur papier.
En revanche, la puce serveur RISC-V à 64 cœurs SG2042 lancée par un fabricant national en mars de cette année a été expédiée en petits lots.
Récemment, le chercheur étranger Nick Brown a effectué des tests réels sur cette puce via la suite de référence RAJAPerf et a découvert que par rapport aux dernières puces RISC-V largement disponibles, ses performances moyennes par cœur étaient multipliées par 5 à 10. Cependant, sous des charges de travail multithread, les performances moyennes des processeurs x86 hautes performances sont encore 4 à 8 fois supérieures.
Selon le rapport de recherche, le processeur RISC-V à 64 cœurs fonctionne à 2 GHz, se compose de quatre cœurs C920 hautes performances et adopte une conception de pipeline superscalaire multi-problèmes dans le désordre à 12 niveaux.
Le C920 fournit le jeu d'instructions RV64GCV avec trois unités de décodage, quatre de renommage/planification, huit d'émission/exécution et deux unités d'exécution de chargement/stockage. Prend en charge l'extension standard de vectorisation (RVVv0.7.1), la largeur du vecteur est de 128 bits, prend en charge les types de données FP16, FP32, INT8, INT16, INT32 et INT64. Cependant, le C920 ne prend pas en charge la vectorisation FP64
La virgule flottante double précision est à la base de la grande majorité des charges de travail hautes performances, de sorte que les cœurs capables de prendre en charge la vectorisation de ces opérations peuvent fournir des performances plus élevées pour le HPC, selon l'étude. Chaque cœur C920 contient également 64 Ko de cache d'instructions (I) et de données (D) L1, 1 Mo de cache L2, partagé entre le cluster de quatre cœurs, et 64 Mo de cache système L3, partagé par tous les cœurs du cluster. Quatre contrôleurs mémoire DDR4-3200 et 32 ​​voies PCIeGen4 sont également disponibles.
La vectorisation est une considération importante pour les charges de travail HPC, et comme le cœur C920 ne prend en charge que RVVv0.7.1, la prise en charge du compilateur constitue un défi. La version actuelle en amont du compilateur RISC-VGNU ne prend en charge aucune version des extensions vectorielles. Bien que le référentiel GNU contienne une branche rvv next, conçue pour prendre en charge rvvv1.0, elle n'était pas activement maintenue au moment où les chercheurs ont rédigé leur étude.
De plus, il existait une branche rvv-0.7.1 pour rvvv0.7.1, mais cette branche a été supprimée. En raison du manque de prise en charge de GCC principal, T-Head fournit son propre fork du compilateur GNU (Xuantie GCC), optimisé pour ses processeurs.
Le compilateur personnalisé de T-Head prend en charge à la fois RVVv0.7.1 et leurs propres extensions personnalisées. Bien que plusieurs versions de ce compilateur aient été fournies, GCC8.4, dans le cadre de sa version 20210618, offre les meilleures capacités de vectorisation automatique. C'est donc cette version qui a été choisie pour les expériences d'analyse comparative menées par les chercheurs.
Cette version du compilateur génère un composant RVV spécifique à la longueur du vecteur (VLS) spécifique à la largeur vectorielle de 128 bits du C920. Tous les noyaux ont été compilés au niveau d'optimisation trois et tous les résultats rapportés sont moyennés sur cinq exécutions.
Comparaison avec d'autres cœurs RISC-V hautes performances
Les chercheurs ont comparé les performances du SG2042 avec celles des cartes de développement StarFive VisionFiveV1 et VisionV2. La V1 contient le StarFive JH7100SoC, tandis que la V2 contient le StarFive JH7110SoC.
Les deux SoC, JH7100 et JH7110, sont construits sur le cœur RISC-VSiFiveU74 64 bits, le JH7100 contenant deux cœurs et le JH7110 contenant quatre cœurs. Le SoC est répertorié comme fonctionnant à 1,5 GHz et le cœur U74 contient 32 Ko (D) et 32 ​​Ko (I) de cache L1. Les deux modèles de SoC contiennent également 2MBL2 de cache partagé entre les cœurs.
Cependant, SiFiveU74 propose uniquement RV64GC et ne prend donc pas en charge les extensions vectorielles RISC-V.
△La figure 1 montre la comparaison des performances monocœur entre VisionFiveV2 et V1 et SG2042 en termes de double précision (FP64) et simple précision (FP32). Où la barre représente le nombre moyen de fois plus rapide ou plus lent dans la catégorie, et les lignes vont de la plus grande à la plus petite.
Comme le montre la figure 1, un seul cœur C920 surpasse les cœurs U74 des V2 et V1 en double et simple précision.
En double précision, les performances moyennes du cœur C920 sont 4,3 à 6,5 fois supérieures à celles du U74 en V2 fonctionnant en double précision. De plus, en simple précision, le C920 a réalisé des performances 5,6 à 11,8 fois supérieures aux performances moyennes de référence. C'est un gain de performances impressionnant, et aucun cœur sur le C920 ne fonctionne plus lentement que le U74.
Les performances de certains cœurs du C920 sont très impressionnantes, par exemple, le benchmark de jeu de mémoire du groupe d'algorithmes fonctionne 40 fois plus vite en FP32 et 18 fois plus vite en FP64 que le U74.
Il est important de souligner que ce benchmark porte sur ces cœurs dans la meilleure configuration possible, c'est-à -dire que la vectorisation est utilisée sur le C920, mais la vectorisation n'est pas supportée sur l'U74 et n'est donc pas disponible sur la V1 ou la V2.
Il existe une différence de performances significative entre FP32 et FP64 sur le SG2042, indiquant qu'en fait les opérations vectorielles C920 ne prennent pas en charge FP64. En comparaison, la différence de performances entre l’exécution de double et simple précision sur V2 est beaucoup plus petite.
Un aspect des résultats de la figure 1 qui a surpris les chercheurs est que VisionFiveV1 était nettement plus lent que V2. Étant donné que les tests exécutaient simplement RAJAPerf sur un seul cœur, la nature double cœur et quadricœur de la puce n'a pas d'importance car elles contiennent toutes deux le même cœur U74, les performances devraient donc être assez similaires.
Cependant, V1 est six à trois fois plus lent que V2 en double précision, et une à trois fois plus lent en simple précision. Bien que l'on puisse supposer que le V1 peut fonctionner à une fréquence d'horloge inférieure à celle du V2, bien qu'ils soient tous deux répertoriés comme fonctionnant à 1,5 GHz dans la fiche technique, il n'y a aucune documentation ou sortie sur la machine pour le confirmer.
Comme le montre la figure 1, les performances obtenues par un seul cœur C920 sont impressionnantes par rapport aux cœurs RISC-V existants et accessibles au public. T-Head décrit le cœur comme un processeur RISC-V hautes performances.
Les tests montrent également des améliorations significatives des performances sur l'ensemble de la suite de tests par rapport au U74, qui était auparavant considéré comme le meilleur choix parmi les RISC-VCPU largement disponibles sur lesquels expérimenter les charges de travail HPC.
En plus des performances monocœur, le SG2042 est également nettement en avance sur le SoC JH7100 de la V1 et le SoC JH7110 de la V2 en termes de nombre de cœurs.
Comparaison avec les performances du processeur du serveur x86
Ainsi, par rapport aux autres puces de serveur x86 commerciales, comment le SG2042 fonctionne-t-il dans les charges de travail HPC ?
À cet égard, les chercheurs l'ont comparé à d'autres processeurs utilisés dans les serveurs de la génération actuelle, à savoir l'AMD RomeEPYC7742 à 64 cœurs, l'Intel Broadwell Xeon E5-2695 à 18 cœurs, l'Intel Ice Lake Xeon 6330 à 28 cœurs et l'Intel Sandy Bridge Xeon E5-2609 à 4 cœurs.
Les tests n'ont été effectués que sur les cœurs physiques de ces processeurs x86 puisque tous les SMT sont désactivés par défaut.
L'AMDEPYC7742 contient 64 cœurs physiques répartis dans quatre régions NUMA, chacune avec 16 cœurs, mais huit contrôleurs de mémoire. Chaque cœur contient 32 Ko (I) et 32 ​​Ko (D) de cache L1, 512 Ko de cache L2 et 16 Mo de cache L3 partagés entre les quatre cœurs. L'EPYC7742 prend en charge AVX2, dispose de registres vectoriels de 256 bits de large, deux fois plus larges que le SG2042, et prend en charge la vectorisation pour FP64.
Les 18 cœurs physiques de l'Intel Xeon E5-2695 sont situés dans une zone NUMA, fournissant 32 Ko (I) et 32 ​​Ko (D) de cache L1, 256 Ko de cache L2 et 45 Mo de cache L3 partagés entre les cœurs. Semblable à l'AMD EPYC7742, le Xeon E5-2695 prend en charge AVX2 et dispose de quatre contrôleurs de mémoire.
L'Intel Xeon 6330 est le dernier processeur comparé, avec les 28 cœurs physiques dans une région NUMA, avec 8 contrôleurs de mémoire, avec 32 Ko (I) et 48 Ko (D) de cache L1, 1 Mo de cache L2 par cœur et 43 Mo de cache L3 partagé. Le Xeon6330 prend en charge AVX512 et fournit des registres vectoriels de 512 bits de large.
L'Intel Xeon E5-2609 est le processeur le plus ancien de ce test. Il est sorti en 2012 et ne propose que quatre cœurs physiques. Chaque cœur dispose de 64 Ko (I) et 64 Ko (D) de cache L1, ainsi que de 256 Ko de cache L2 et de 10 Mo de cache partagé3. Ce E5-2609 ne prend en charge que AVX, donc la longueur du registre vectoriel est la même que celle du SG2042, 128 bits, bien qu'AVX prenne en charge FP64.
Dans tous les tests,Les chercheurs ont désactivé l'hyperthreading sur le cœur physique x86.Les chercheurs ont utilisé la version 8.3 de GCC sur tous les systèmes à l'exception d'ARCHER2, et la compilation a toujours été effectuée au niveau d'optimisation O3. Un système qui s’exécute sur le nombre de threads le plus performant.
△La figure 4 montre les performances monocœur de chaque puce exécutant la suite de référence sur FP64. Où la barre représente le nombre moyen de fois plus rapide ou plus lent dans la catégorie, et les lignes vont de la plus grande à la plus petite. SG2042 est la ligne de base moyenne.
D'après les résultats des tests,Tous les cœurs x86 ont mieux fonctionné que le C920, à l'exception de l'ancien cœur Xeon E5-2609, qui avait des performances moyennes plus lentes dans les catégories de référence en streaming et en algorithmes.
Les processeurs AMD EPYC7742 et Intel Xeon6330 ont tendance à mieux fonctionner que l'Intel XeonE5-2695, ce qui est compréhensible puisque le XeonE5-2695 est le modèle le plus ancien des trois.
△La figure 5 montre le nombre de fois où les performances monocœur de chaque puce exécutent la suite de référence sur FP32 par rapport à la référence.
Comme vous pouvez le voir sur la figure 5, l'AMD EPYC7742 est assez terne lorsqu'il s'exécute en simple précision par rapport à la double précision, tandis que les performances moyennes du processeur Intel sont tout aussi bonnes. En fait, lors de l'utilisation du FP32, l'ancien cœur Xeon E5-2609 surpasse en moyenne le C920 à tous les niveaux.
Cependant, le graphique à barres moyen de la figure 5 ne donne pas une image complète.
Le C920 ne prend en charge que la vectorisation pour le FP32 et, en fait, comme le montrent les lignes des figures 5 et 4, la vitesse maximale de nombreuses classes de référence pour le FP32 est plus rapide que celle du FP64.
De plus, un plus grand nombre de cœurs les plus lents fonctionnent plus lentement sur un processeur x86 que sur un C920 sur FP32. C'est sur ces cœurs que l'autovectorisation est appliquée efficacement, et en fait, on peut voir que pour la classe de référence lcals, au moins un cœur sur tous les processeurs x86 fonctionne moins bien que le C920.
En résumé, en termes de comparaison des performances monocœur, les performances moyennes de l'AMD EPYC7742 sous FP32 sont 3 fois plus rapides que celles du C920, Intel XeonE5-2695 est 2 fois plus rapide, Intel Xeon6330 est également 4 fois plus rapide, XeonE5-2609 est 2 fois plus rapide, et ces chiffres sous FP64 sont respectivement 4 fois, 4 fois, 5 fois et 20 % plus rapides.
â–ł Comparaison des performances multithread FP64, indiquant le nombre de fois plus rapide ou plus lent que la ligne de base
La figure 6 montre la comparaison des performances du FP64 double précision.
On peut voir que les tests de base, lcals, polybench et stream class bénéficient le plus d'un plus grand nombre de cœurs, de sorte que les performances moyennes du SG2042 sont meilleures que celles de l'ancien Xeon E5-2609.
â–ł Comparaison des performances multithread FP32, indiquant le nombre de fois plus rapide ou plus lent que la ligne de base
La figure 7 montre la comparaison des performances multithread du FP32, et ces résultats contiennent les différences les plus importantes. Pour améliorer la lisibilité, les chercheurs ont restreint l’axe vertical et étiqueté les valeurs réelles dépassant cette valeur.
En ce qui concerne le FP32 multithread, le SG2042 a tendance à être légèrement meilleur que le FP64 par rapport aux processeurs x86, bien que la classe polybench soit une valeur aberrante dans la mesure où elle fonctionne bien mieux sur les trois derniers processeurs x86 et l'Intel Xeon E5-2609 est bien moins performant.
Pour résumer, lorsque l'on compare les performances multithread du SG2042 aux processeurs x86, ses performances moyennes à 64 cœurs sont meilleures que celles de l'Intel Xeon E5-2609 à 4 cœurs dans tous les types de référence fonctionnant sur FP32 et FP64.
Les performances de l'AMD EPYC7742 à 64 cœurs en FP32 et FP64 sont respectivement 8 fois et 5 fois supérieures à celles du SG2042. L'Intel Xeon E5-2695 à 18 cœurs atteint respectivement une moyenne de 6 fois et 4 fois en simple précision et en double précision. Enfin, l'Intel Xeon6330 à 28 cœurs est respectivement 6x et 8x meilleurs en FP32 et FP64.
en conclusion:
Bien que de nombreuses entreprises développent actuellement des prototypes matériels RISC-V hautes performances, jusqu'à présent, les options étaient très limitées lorsqu'il s'agissait d'exécuter des charges de travail sur des logiciels RISC-V disponibles dans le commerce, ont indiqué les chercheurs.
Quoi qu'il en soit, même si ces solutions permettent d'expérimenter RISC-V, elles ne fournissent pas, sur le plan architectural, les fonctionnalités requises pour produire des charges de travail hautes performances. Ainsi, même si la communauté HPC s'intéresse à RISC-V, elle n'est pas tout à fait prête pour cette technologie.
Bien entendu, en tant que première puce de serveur RISC-V multicœur pour HPC largement disponible au monde, SG2042 pourrait augmenter considérablement l'intérêt et l'adoption de RISC-V dans la communauté HPC. Cependant, un problème clé est qu’il est encore loin derrière les processeurs x86 répandus dans la génération actuelle de supercalculateurs.
Il s’agit néanmoins d’une puce serveur RISC-V très intéressante qui offre des changements importants par rapport au matériel RISC-V actuellement disponible dans le commerce.
Même si les performances ne sont pas encore au niveau des processeurs des serveurs x86, il convient de souligner que les fournisseurs de RISC-V ont parcouru un long chemin en peu de temps. En revanche, les processeurs x86 ont une longue histoire et bénéficient de leurs nombreuses années de développement.
À l'heure actuelle, le principal concurrent de RISC-V sur le marché des processeurs de serveur est le processeur de serveur Arm. Après tout, en théorie, le RISC-VCPU peut avoir un coût inférieur, une personnalisation et une évolutivité plus élevées que le processeur Arm.
Pour la prochaine génération de processeurs RISC-V hautes performances, les chercheurs pensent que fournir RVVv1.0 sera très utile, car cela permettra d'utiliser GCC et Clang principaux pour compiler du code vectoriel.
En outre, la vectorisation FP64, des registres vectoriels plus larges, un cache L1 accru et davantage de contrôleurs de mémoire par région NUMA peuvent également apporter des avantages significatifs en termes de performances et contribuer à combler l'écart avec les processeurs x86 hautes performances.
accéder:
Centre commercial de Jingdong