À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon

janvier 4, 2022 0 Par brandon


À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

La famille Graviton de puces serveur Arm conçues par la division Annapurna Labs d’Amazon Web Services est sans doute le plus grand volume de puces serveur Arm sur le marché des centres de données aujourd’hui, et ils ont précisément un – et un seul – client. Eh bien, client direct.

Ces deux faits informent les choix de conception qu’Annapurna Labs a faits pour créer des processeurs de serveur Arm toujours plus puissants et ils se différencient des deux autres processeurs de serveur Arm à volume raisonnablement élevé destinés aux serveurs sur le marché aujourd’hui, à savoir le processeur A64FX de Fujitsu et la famille Altra d’Ampère Computing. Il existe d’autres puces de serveur Arm en cours de développement pour des zones géographiques et des cas d’utilisation spécifiques, comme il semble toujours y en avoir, mais aucune d’entre elles ne semble être des produits de volume comme le seront les familles Graviton et Altra ; le Fujitsu A64FX est un produit de volume dans la mesure où la machine principale l’utilisant, le supercalculateur « Fugaku » du RIKEN Lab au Japon, a

AWS a dévoilé sa puce de serveur Graviton3 de troisième génération lors de la conférence re:Invent à Las Vegas, à laquelle nous n’avons pas pu assister, et nous avons fait un aperçu du processeur en décembre sur la base des informations récapitulatives disponibles à l’époque, promettant de revenir en arrière et de plonger plus profondément lorsque davantage d’informations provenant des sessions techniques seront disponibles. Ces informations sont disponibles dès maintenant, grâce à une présentation faite par Ali Saidi, l’ingénieur principal principal en charge des instances Graviton chez le géant du cloud. Saidi explique un peu plus en détail ce qui rend le Graviton3 à 64 cœurs, 55 milliards de transistors qui est en avant-première différent de ses prédécesseurs, le 16 cœurs, 5 milliards de transistors Graviton qui a été présenté en avant-première en novembre 2018 et le 64 cœurs, 30 milliards de transistors Graviton2 qui a été prévisualisé en novembre 2019. Il faut quelques mois à AWS pour mettre les puces Graviton en pleine production, et nous en saurons plus une fois que les instances C7g sur le service EC2 utilisant les puces Graviton3 seront en pleine production et hors prévisualisation.

Pour commencer, Saidi a expliqué la raison pour laquelle AWS prend même la peine de créer ses propres processeurs de serveur alors, peut-être, de créer ses propres DPU « Nitro » pour décharger l’hyperviseur ainsi que le traitement de la sécurité, le stockage et la virtualisation du réseau à partir des processeurs de serveur X86. semblerait avoir été suffisant.

« Construire nos propres puces nous permet vraiment d’innover sur une grande variété de couches, d’innover plus rapidement, de relever la barre en matière de sécurité et d’offrir plus de valeur », a expliqué Saidi. « Du côté de l’innovation, être capable de construire le silicium et le serveur dans lequel il entre, et avoir les équipes qui écrivent le logiciel pour cela sous un même toit signifie que l’innovation est plus rapide et que nous pouvons dépasser les frontières traditionnelles. Nous pouvons également construire des puces pour nos besoins. Nous pouvons les spécialiser pour ce que nous essayons de faire et nous n’avons pas besoin d’ajouter des fonctionnalités que d’autres personnes veulent. Nous pouvons simplement les construire pour les choses qui, selon nous, apporteront le plus de valeur à nos clients et ignorer celles qui ne le sont pas vraiment. La troisième chose que nous obtenons est la vitesse. Nous contrôlons le début du projet, le calendrier et la livraison. Nous pouvons paralléliser le développement matériel et logiciel et utiliser l’échelle massive de notre cloud pour effectuer toutes les simulations nécessaires à la construction d’une puce. Et enfin, les opérations. Nous avons beaucoup de connaissances sur les opérations grâce à l’exécution d’EC2 et nous pouvons mettre des fonctionnalités dans les puces pour faire des choses comme actualiser le micrologiciel pour résoudre un problème ou améliorer les fonctionnalités sans déranger les clients qui utilisent la machine.

De toute évidence, l’effort de Graviton ne consiste pas seulement à obtenir des puces de serveur X86 moins chères auprès d’Intel et d’AMD – bien que ce soit cela aussi, même si Saidi ne l’a pas mentionné. Mais tant qu’AWS hébergera beaucoup de clients X86 dans son cloud, il achètera des processeurs Xeon SP et Epyc pour ses clients cloud pour les applications qu’ils ont créées qui ne sont pas faciles à porter sur l’architecture Arm et bénéficient donc de la 20 de pourcentage à 40 % d’avantages prix/performances que la famille Graviton a démontrés par rapport aux instances X86 sur EC2 dans un large éventail de charges de travail et de scénarios.

Personne ne sait avec certitude combien de processeurs Graviton se trouvent dans la flotte AWS, mais ce que nous savons, c’est que les processeurs Graviton sont disponibles d’une manière ou d’une autre dans 23 régions AWS différentes et dans une douzaine de types d’instances EC2 différents.

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

AWS dispose de plus de 475 types d’instances EC2 différents, qui couvrent toute la gamme en termes de configuration de processeur, de mémoire, de stockage, de mise en réseau et d’accélérateur, et les instances Graviton ne représentent évidemment qu’une très petite partie du variété des instances EC2. Avec 23 des 24 régions ayant au moins quelques processeurs Graviton, c’est peut-être une meilleure indication de la prévalence de Graviton dans la flotte AWS – mais pas nécessairement. Ce que nous pensons pouvoir être honnêtement dit, c’est qu’avec une amélioration de 30 à 40 % du rapport prix/performances par rapport aux processeurs X86 exécutant des charges de travail de type Web et avec des puces Graviton de plus en plus puissantes à mesure que la gamme évolue, nous pensons qu’une partie croissante de la charge de travail du logiciel AWS cela n’est pas lié à l’exécution d’applications d’autres personnes sur des processeurs X86 exécutant Windows Server ou Linux – pensez à la myriade de bases de données et aux services SageMaker AI, par exemple – se retrouvera sur Graviton et réduira donc le coût global de ces services tout en maintenant les bénéfices chez AWS .

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

En fait, Saidi a déclaré que pour les services PaaS et SaaS qu’AWS vend, si les clients ne spécifient pas de type d’instance spécifiquement lorsqu’ils s’inscrivent au service, ils obtiendront une instance Graviton sous ce service. Cela suggère qu’il existe un volume raisonnablement élevé de serveurs Graviton dans la flotte AWS. Il en va de même du fait que le Prime Day de cette année, les instances Graviton2 installées sous le service EC2 ont soutenu une douzaine de services de vente au détail de base utilisés par l’opération de vente au détail en ligne d’Amazon. Une fois le service clé, appelé Datapath, qui prend en charge les recherches, les requêtes et les jointures sur les services de données de vente au détail internes d’Amazon, a été transféré des serveurs X86 vers un cluster à trois régions composé de plus de 53 000 instances C6g basées sur Graviton2.

C’est le jeu, et c’est probablement pourquoi Intel et AMD ont dû créer leurs propres clouds il y a une décennie et demie et ne pas laisser Dell, Hewlett Packard Enterprise et VMware essayer et échouer. La queue du processeur va remuer le chien du centre de données dans un avenir pas trop lointain.

C’est également pourquoi Nvidia travaille avec AWS pour faire fonctionner son SDK HPC sur son service de supercalcul ParallelCluster basé sur des processeurs Graviton cette année, ce qui permettra aux programmes C, C++ et Fortran utilisant OpenMP de paralléliser les applications à exécuter sur des instances Graviton, et il C’est également la raison pour laquelle SAP travaille avec AWS pour porter sa base de données en mémoire HANA vers des instances Graviton et pour utiliser ces instances comme base du propre service cloud HANA de SAP, qui est hébergé sur AWS.

À l’intérieur du Graviton3

La présentation de Saidi était considérablement plus détaillée que les keynotes de re:Invent et montrait en fait une photo du package Graviton3, qui est une conception chiplet comme nous l’avions entendu. Voici la diapositive qui montre le package Graviton3 :

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

L’image principale en haut de cette histoire zoome un peu là-dessus, mais l’image originale est floue – alors ne nous blâmez pas. C’est une image aussi bonne du package Graviton3 qu’il y en a actuellement.

Ce schéma ci-dessous montre un peu plus clairement comment les chiplets du Graviton3 décomposent ses fonctions :

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

Plutôt que d’avoir une E/S centrale et une puce de mémoire, puis des cœurs de puces qui l’entourent, comme AMD l’a fait avec les puces de serveur « Rome » Epyc 7002 et « Milan » Epyc 7003 X86, les équipes d’Annapurna Labs ont conservé tous les 64 cœurs. sur le Graviton3 au centre, puis a séparé les contrôleurs de mémoire DDR5 (qui ont un cryptage de mémoire) et les contrôleurs de périphériques PCI-Express 5.0 séparés de ces cœurs. Il y a deux contrôleurs PCI-Express 5.0 au bas de l’emballage et quatre contrôleurs de mémoire DDR5, deux de chaque côté de l’emballage. (C’est la première puce de serveur à prendre en charge la mémoire DDR5, qui a 50 % de bande passante en plus que la mémoire DDR4 couramment utilisée dans les serveurs aujourd’hui. D’autres suivront cette année, bien sûr.)

Sur les 25 milliards de transistors incrémentiels qui ont été ajoutés avec le Graviton3 par rapport au Graviton2, la plupart d’entre eux, selon Saidi, devaient renforcer les cœurs, et comme Peter DeSantis, président senior de l’informatique utilitaire chez AWS, l’a déjà expliqué dans son discours d’ouverture. , l’idée était de faire en sorte que les cœurs fassent plus de types de travail ainsi que plus de travail en général en renforçant les pipelines. Comme ça:

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

Le Graviton2 est basé sur le noyau « Ares » N1 des conceptions Neoverse d’Arm Holding, qui ont été mis à jour l’année dernière avec les noyaux « Perseus » V1 et « Zeus » N2 dévoilés en avril dernier. Comme nous l’avons déjà souligné, et contrairement à ce que certains pensent, nous pensons que le Graviton3 est basé sur le noyau N2, pas sur le noyau V1. AWS n’a pas confirmé quel noyau est utilisé. Nous avons essayé de deviner ce que le noyau N2 d’Annapurna Labs utilise dans Graviton3, et nous admettons ouvertement qu’il s’agit d’une supposition folle, car les éléments affichés en rouge gras sont :

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

Quoi qu’il en soit, revenons au pipeline. Saidi a expliqué que le noyau Graviton3 a des performances 25% plus élevées – ce que nous considérons comme des instructions plus élevées par horloge, ou IPC – par rapport au noyau N1 du Graviton2. Le Graviton3 fonctionne à une vitesse d’horloge légèrement élevée (2,6 GHz contre 2,5 GHz pour le Graviton2). L’extrémité avant du noyau est deux fois plus large et possède également un prédicteur de branche beaucoup plus grand, selon Saidi. L’envoi d’instructions est presque deux fois plus large et la fenêtre d’instructions est deux fois plus large, et les unités vectorielles SIMD ont deux fois les performances et prennent en charge à la fois SVE (les extensions vectorielles évolutives à longueur variable inventées par Fujitsu et Arm pour le processeur A64FX pour le supercalculateur Fugaku chez RIKEN) et BFloat16 (le format innovant créé par l’équipe d’intelligence artificielle de Google Brain). Il y a deux fois plus d’opérations de mémoire par horloge pour équilibrer tout cela, ainsi que certains prefetchers améliorés, qui peuvent pomper deux fois plus de transactions en suspens vers ces cœurs Gravition3 renforcés. Les multiplicateurs du noyau sont plus larges et il y en a deux fois plus.

Comme c’est le cas avec les cœurs Graviton et Graviton2 antérieurs ainsi que les cœurs utilisés dans la famille Ampere Computing Altra, il n’y a pas d’hyperthreading dans les cœurs Graviton3 pour essayer d’augmenter le débit. Le compromis d’être moins sécurisé et plus complexe ne vaut pas l’augmentation des performances – du moins pas pour la façon dont AWS code ses applications.

L’autre chose qu’AWS ne fait pas est d’ajouter l’électronique NUMA pour relier plusieurs processeurs Graviton3 dans un système de mémoire partagée, et il ne divise pas non plus la tuile principale en régions NUMA, comme Intel le fait avec ses SP Xeon via des circuits et comme AMD fait par nécessité avec huit tuiles de base sur un package Epyc de Rome ou de Milan. Les cœurs sont interconnectés avec un maillage qui fonctionne à plus de 2 GHz et qui a une bande passante bi-sectionnelle de plus de 2 To/sec.

Une chose intéressante à propos du Graviton3 est le serveur, dont nous avons parlé un peu en décembre, c’est qu’AWS crée un serveur local à trois nœuds et trois sockets qui a un DPU Nitro partagé les reliant au monde extérieur. Comme ça:

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

En déchargeant un grand nombre de fonctions CPU sur le Nitro DPU et en entassé un tas de nœuds Graviton3 à socket unique sur la carte, AWS dit qu’il peut augmenter les sockets par rack de 50 pour cent – et cela signifie probablement sans sacrifier les performances relatives aux processeurs X86 issus d’AMD qui sont dans une enveloppe thermique raisonnable. Quoi qu’il en soit de nos jours. . . .

Nous avons déjà passé en revue un tas de métriques de performances dans notre précédente couverture Graviton3, mais celle-ci montrant les tests en nombres entiers et en virgule flottante SPEC 2017 est intéressante :

À l’intérieur du processeur de serveur Graviton3 Arm d’Amazon, lescouvreur.com

L’instance C7g utilise un Graviton3 et le C6g utilise un Graviton2, ce qui montre que le premier a environ 30% de performances entières en plus et environ 60% de plus de performances en virgule flottante que le second. Les instances C5 sont basées sur un processeur Xeon SP « Cascade Lake » personnalisé d’Intel, tandis que les instances C5a sont basées sur le processeur Rome Epyc d’AMD. Les instances C6i sont basées sur les SP Xeon « Ice Lake ». Nous préférerions avoir des nombres de cœurs et des vitesses d’horloge réels pour ces instances afin de faire une meilleure comparaison, mais AWS veut clairement laisser l’impression que Graviton2 a déjà battu la concurrence et que Graviton3 le fait vraiment.

Toute comparaison réelle examinerait le nombre de cœurs, le coût, les thermiques et les performances pour le travail en nombres entiers et en virgule flottante, puis peserait tous ces facteurs pour choisir les puces pour effectuer des tests de performances réels sur des applications réelles. Les tests SPEC ne sont qu’une mise pour jouer le jeu. Ils ne sont pas le jeu.



Source