Évaluation de Cavium ThunderX2: le rêve du serveur Arm se réalise (Partie 1, Introduction)

Il y a moins de deux ans, nous avons exploré le premier serveur Arm SoC, qui pourrait théoriquement rivaliser avec le Intel Xeon E5s - Cavium ThunderX. Le serveur SoC a démontré tout ce qui avait été annoncé, cependant, en raison des faibles performances monofilaires et des difficultés d'optimisation des performances énergétiques, le SoC à 48 cœurs a été affecté à des marchés de niche. En conséquence, le premier serveur Cavium SoC n'a jamais pu rivaliser avec le Xeon d'Intel.



Mais Cavium n'a pas abandonné pour des raisons évidentes: pour le moment, le marché des serveurs est devenu plus attractif que jamais. Les centres de données du géant mondial Intel génèrent des revenus d'environ 20 milliards de dollars américains (!) Par an. De plus, la rentabilité est de 50%. En termes de profit et de chiffre d'affaires, le marché des serveurs est bien plus important que tout autre marché d'équipement. Ainsi, après le lancement de ThunderX, Cavium a promis de publier une deuxième itération: une gestion de l'alimentation améliorée, des performances améliorées sur un seul thread et encore plus de cœurs (54).

Ce qui ne joue pas entre les mains de Cavium, c'est que si l'utilisateur a besoin d'un serveur, il peut simplement prendre une machine Intel fiable et déboguée. En effet, les promesses fortes d'Arm, Calxeda, Broadcom, AppliedMicro au cours des 5 dernières années sont restées des promesses, provoquant une sérieuse vague de scepticisme et de méfiance et l'émergence de nouveaux SoCs Arm Server.

Néanmoins, la nouvelle création d'un Cavium extérieur mérite l'attention. Un certain nombre de modifications ont été apportées, pas seulement l'ajout du numéro «2» au nom: Cavium a acheté la conception Vulcan d'Avago. Vulcan est un processeur assez ambitieux, développé à l'origine par l'équipe SoC Broadcom du serveur Arm, et a un héritage beaucoup plus important que le ThunderX d'origine. De plus, sur la base de son expérience avec ThunderX, Cavium a pu introduire quelques améliorations microarchitecturales dans la conception Vulcan, améliorant ses performances et sa puissance.

En conséquence, ThunderX2 s'est avéré être un noyau plus élaboré que la génération précédente. Le noyau ThunderX avait un pipeline très court et était peu susceptible de résister à deux instructions par cycle, mais le noyau Vulcan est conçu pour 8 récupérations et exécutant jusqu'à 4 instructions par cycle. Et encore plus: les 4 flux (SMT4) peuvent être actifs en même temps, fournissant un chargement back-end constant. Le nouveau ThunderX2 SoC32 dispose de 32 cœurs de ce type avec une fréquence allant jusqu'à 2,5 GHz.



Avec jusqu'à 128 threads et au moins huit contrôleurs DDR4, ce CPU devrait bien fonctionner dans toutes les charges de serveur. En d'autres termes, contrairement à ThunderX (1), ThunderX2 est le premier processeur de serveur Arm et a toutes les chances de briser l'équilibre sur le marché des serveurs.

Qui a plus: spécifications


Trente-deux cœurs IPC élevés dans un même boîtier semblent prometteurs. Mais à quoi ressemble le nouveau ThunderX2 par rapport aux produits AMD, Qualcomm et Intel? Dans le tableau ci-dessous, nous comparons les spécifications de plusieurs références de serveur haut de gamme.



Les lecteurs avertis remarqueront immédiatement que le haut de la gamme de processeurs Intel est le Xeon Platinum 8180. Cependant, ce SKU avec 205 W TDP et un prix supérieur à 10 000 $ n'est généralement pas comparable à n'importe quel processeur de la liste. Nous avons déjà presque dépassé la ligne de raison, y compris 8176, qui, comme il nous semble, tombe dans cette liste en fonction des paramètres de la SKU maximale des blocs noyau / thread. En fait, Cavium positionne le Cavium 9980 comme «comparable» au Xeon Platinum 8164 (et Intel joue ce rôle 8176), mais avec des fréquences légèrement plus basses.

Cependant, en termes de performances pour le dollar, Cavium compare son produit phare 9980 avec Intel Xeon Gold 6148, et dans ce cas, le prix du processeur Cavium semble assez appétissant. Selon les résultats des tests, le ThunderX2 le plus rapide a 30 à 40% d'avance sur le Xeon 6148, tandis que l'offre de Cavium est 1300 $ moins chère. Cette tarification agressive explique les rumeurs selon lesquelles Qualcomm ne va pas entrer sur le marché des serveurs.

Les données du tableau ci-dessus montrent d'importantes différences entre les concurrents. Intel semble avoir la topologie de base la plus avancée et la vitesse turbo la plus élevée. Qualcomm, quant à lui, semble plus attrayant en termes de performances par watt.



Comme l'EPYC d'AMD, le ThunderX2 de Cavium est susceptible de briller sur le marché de l'informatique haute performance (33% de débit en plus, cœurs / threads plus élevés). Comme avec la conception d'AMD, le cache EPYC L3 est lent si vous avez besoin de données qui ne se trouvent pas dans l'emplacement de cache local de 8 Mo. ThunderX2 est beaucoup plus complexe - avec une architecture à double anneau similaire à l'architecture en anneau Xeon v4 (Broadwell-EP). Selon les informations de Cavium, leur architecture non bloquante en anneau est capable de fournir des débits allant jusqu'à 6 To / s.

Cette architecture en anneau est connectée à l'interconnexion du processeur cohérent du Cavium (CCPI2 - en haut de la figure), qui fonctionne à une vitesse de 600 Gbit / s. Cette connexion connecte deux nœuds socket / NUMA. 56 voies de SoC PCIe 3.0 sont connectées à l'anneau, que Cavium a localisé parmi 14 contrôleurs PCIe. Ces 14 contrôleurs peuvent, à leur tour, se ramifier en x4 ou x1, comme indiqué ci-dessous.



De plus, il prend en charge SR-IOV, qui est si important pour la virtualisation d'E / S (Xen et KVM).

ThunderX: de facile à complexe


Bref briefing. Le ThunderX d'origine était une version améliorée d'Octeon III: un processeur capable d'exécuter simultanément deux instructions (core à double émission) avec deux pipelines courts.



Un avantage de la conception originale de ThunderX est sa haute efficacité énergétique, en particulier pour les charges de travail à faible ILP (parallélisme au niveau de l'instruction). Bien sûr, un convoyeur aussi court pose de sérieuses limites pour augmenter la fréquence d'horloge, et une conception simple garantit de faibles performances monothread à des charges ILP moyennes et élevées, tandis que des processeurs hors service plus avancés peuvent extraire autant de "parallélisme caché" que possible. ".

Le «nouveau» noyau du Cavium: Vulcan




Comparé au ThunderX d'origine, le noyau du Vulcan ThunderX2 est une bête complètement différente. Annoncé en 2014 par Broadcom, Vulcan est un noyau relativement volumineux qui contrôle 4 threads simultanés (SMT4). Par conséquent, le back-end doit être bien chargé même lorsque vous travaillez avec des charges de serveur avec un faible ILP.

Pour garantir la stabilité de 4 flux SMT, le frontal ThunderX2 peut extraire jusqu'à 64 octets d'un cache d'instructions associatif à 8 voies de 32 Ko, qui est équipé d'un simple préfiltre «ligne suivante». Cependant, le choix de 8 commandes n'est possible que s'il n'y a pas de branchement dans ces 64 octets. Sinon, la sélection est interrompue à la fourche.

Cela signifie qu'en code de branchement intensif (bases de données, AI ...), le récupérateur reçoit en moyenne ± 5 instructions par cycle, puisque l'une des 5 instructions est une branche. Les instructions sélectionnées sont ensuite envoyées au tampon de lissage - un tampon dans lequel les instructions stockées sont stockées pour le décodage.



Ensuite, le décodeur fonctionne avec un ensemble de 4 instructions. Entre le décodeur et la phase de renommage, chaque flux possède un «slip buffer», composé de 8 packs. Avec 4 threads, jusqu'à 32 paquets (128 instructions) peuvent être mis en mémoire tampon à tout moment.

Ces 4 instructions - le paquet - se déplacent le long du pipeline jusqu'à ce qu'une seule file de messages soit atteinte pour le planificateur. Comme le Loop Stream Detector d'Intel (fonctionne comme un petit cache), il dispose également d'un tampon de boucle et d'un prédicteur. Ce tampon de boucle élimine les prédictions de branchement incorrectes et contient des μops décodés qui «raccourcissent» le pipeline et réduisent l'énergie utilisée pour le décodage.

Jusqu'à 6 instructions peuvent être exécutées à la fois. L'implémentation comprend 2 emplacements ALU / FP / NEON, 1 emplacement ALU / tap, 2 emplacements de chargement / stockage (16 octets) et 1 emplacement de stockage propre qui envoie 16 octets au cache D. Il existe un petit TLB L1 (Cavium ne révélera pas combien) pour la commutation avec un retard nul des adresses virtuelles aux adresses physiques. Il n'y a pas de préfetcher matériel pour le cache L1 D1, mais le cache L2 possède un préfetcher matériel assez sophistiqué qui peut reconnaître les modèles (il peut fonctionner étape par étape ou récupérer la ligne suivante).

C'est assez pour «alimenter» le back-end, qui peut prendre en charge 4 instructions par cycle à partir de 4 threads différents.

Différences en microarchitecture


Cavium a publié une quantité limitée d'informations sur les cœurs ThunderX2. Certaines caractéristiques clés de diverses architectures de processeur sont résumées ci-dessous.



Une analyse détaillée dépasse le cadre de cet article. Mais vous pouvez lire les analyses de Johan De Gelas sur l'architecture de Falkor, Skylake et Zen dans AnandTech. Nous nous limitons aux différences les plus évidentes.

Il est assez évident que les performances à un seul thread d'Intel restent hors compétition: le noyau Skylake est le noyau qui exécute la plupart des instructions à la volée et, surtout, fonctionne à une vitesse d'horloge plus élevée. Le cœur de ThunderX2 est différent en ce qu'il extrait un maximum d'instructions par cycle, capable de supporter en permanence 4 threads. Le récupérateur capturera 8 équipes à partir d'un thread, puis 8 à partir du deuxième thread, et continuera à faire défiler les threads. Cela signifie qu'une mauvaise prédiction peut réduire considérablement les performances d'un seul thread.

Les SKU ThunderX2: 16 à 32 cœurs


Le SKU utilisé pour les tests est ThunderX2 CN9980 2.2. C'est le SKU haut de gamme, contient 32 cœurs à une fréquence de 2,2 GHz avec la possibilité d'augmenter jusqu'à 2,5 GHz.



Si vous croyez aux plans de Cavium, dans les prochains mois, il y aura beaucoup plus de SKU. Cavium affirme que le CN9980 sera bientôt disponible avec une fréquence de 2,5 GHz et un turbo jusqu'à 3 GHz.

Cavium a répertorié toutes ses références SKU ainsi que les références Intel comparables. Selon la définition de Cavium, un SKU Intel comparable est une puce qui atteint le même SPECInRate (2017) sous gcc que le SKU de Cavium.



Cavium estime que le CN9880 2.2 que nous avons obtenu est comparable au 8164 beaucoup plus cher. Pour nos tests, nous le comparons au 8176 (SKU Intel disponible pour nous). Peu importe: le 8176 n'a qu'une vitesse d'horloge supérieure de 3% et 2 cœurs supplémentaires (+ 7%) par rapport au 8164. Cependant, notez que bien que le ThunderX2 Cavium puisse vraiment rivaliser avec les SKU Intel indiqués, ils offrent les mêmes performances pour un tiers du coût du SKU Intel.

Dans la partie suivante:

  • Configuration et méthodologie des tests
  • Sous-système de mémoire: bande passante
  • Performances à un seul thread: SPEC CPU2006
  • SPEC CPU2006 Cont: performances basées sur les cœurs avec SMT

Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher? Nous avons seulement 2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

Source: https://habr.com/ru/post/fr413885/


All Articles