Passer au contenu principal
  • Passer des commandes rapidement et facilement
  • Afficher les commandes et suivre l’état de votre expédition
  • Profitez de récompenses et de remises réservées aux membres
  • Créez et accédez à une liste de vos produits
  • Gérer vos sites, vos produits et vos contacts au niveau des produits Dell EMC à l’aide de la rubrique Gestion des informations de l’entreprise.

AMD Rome – une réalité ? Architecture et performances initiales du HPC

Résumé: Dans le monde du HPC d’aujourd’hui, présentation du processeur AMD EPYC de dernière génération, nom de code Rome.

Cet article a peut-être été traduit automatiquement. Si vous avez des commentaires concernant sa qualité, veuillez nous en informer en utilisant le formulaire au bas de cette page.

Contenu de l’article


Symptômes

Garima Kochhar, Deepthi Cherlopalle, Joshua Weage. Laboratoire d’innovation en matière d’IA et de HPC, octobre 2019

Cause

Sans objet

Résolution


Dans le monde du HPC d’aujourd’hui, le processeur Ce lien hypertexte renvoie à un site Web extérieur à Dell TechnologiesEPYC de dernière génération d’AMD, dont le nom de code est Rome, n’a guère besoin d’être présenté.  Nous avons évalué ces derniers mois des systèmes basés à Rome dans le laboratoire d’innovation HPC et IA et Dell Technologies a récemment annoncé Ce lien hypertexte renvoie à un site Web extérieur à Dell Technologies des serveurs prenant en charge cette architecture de processeur. Ce premier article de la série Rome traite de l’architecture du processeur Rome, de la façon dont elle peut être ajustée pour les performances HPC et présente les performances initiales des micro-benchmarks. Les blogs suivants décriront les performances des applications dans les domaines de la CFD, de l’IAO, de la dynamique moléculaire, de la simulation météorologique et d’autres applications.


 

Architecture

 

Rome est le processeur EPYC de 2e génération d’AMD, qui a actualisé son processeur Naples de 1re génération. Nous avons discuté de Naples dans ce blog l’année dernière.

L’une des plus grandes différences architecturales entre Naples et Rome qui profite au HPC est la nouvelle puce d’E/S à Rome. À Rome, chaque processeur est un package multi-puces comprenant jusqu’à 9 chiplets , comme illustré à la figure 1. Il existe une puce d’E/S centrale de 14 nm qui contient toutes les fonctions d’E/S et de mémoire : contrôleurs de mémoire, liaisons Infinity Fabric au sein du socket et connectivité inter-socket, et PCI-e. Il existe huit contrôleurs de mémoire par socket qui prennent en charge huit canaux de mémoire exécutant DDR4 à 3 200 MT/s. Un serveur à socket unique peut prendre en charge jusqu’à 130 voies PCIe Gen 4. Un système à deux sockets peut prendre en charge jusqu’à 160 voies PCIe Gen 4.

Figure 1 Rome

(Figure 1 : Boîtier multipuces Rome avec une puce d’E/S centrale et jusqu’à huit cœurs de puces)

Autour de la puce d’E/S centrale se trouvent jusqu’à huit chiplets de cœur de 7 nm. Le chiplet de base est appelé puce de cache de cœur ou CCD. Chaque CCD dispose de cœurs de processeur basés sur la micro-architecture Zen2, d’un cache L2 et d’un cache N3 de 32 Mo. Le CCD lui-même dispose de deux CCX (Core Cache Complexes),Ce lien hypertexte renvoie à un site Web extérieur à Dell Technologies chaque CCX ayant jusqu’à quatre cœurs et 16 Mo de cache N3. La figure 2 présente un CCX.

Figure 1 Rome

(Figure 2 : CCX avec quatre cœurs et 16 Mo de cache L3 partagé)

Les différents modèles Ce lien hypertexte renvoie à un site Web extérieur à Dell Technologies de processeurs Rome ont des nombres différents de cœurs, Ce lien hypertexte renvoie à un site Web extérieur à Dell Technologies mais tous ont une puce d’E/S centrale.

Le haut de gamme est disponible avec un modèle de processeur 64 cœurs, par exemple le modèle EPYC 7702. La sortie lstopo nous montre que ce processeur a 16 CCX par socket, chaque CCX a quatre cœurs comme indiqué dans les figures 3 et 4, ce qui donne 64 cœurs par socket. 16 Mo L3 par CCX, soit 32 Mo de L3 par CCD, donnent à ce processeur un total de 256 Mo de cache L3. Notez toutefois que le cache L3 total de Rome n’est pas partagé par tous les cœurs. Le cache L3 de 16 Mo dans chaque CCX est indépendant et est partagé uniquement par les cœurs du CCX, comme illustré sur la Figure 2.

Un processeur 24 cœurs comme le modèle EPYC 7402 dispose d’un cache L3 de 128 Mo. La sortie de lstopo dans les figures 3 et 4 illustre que ce modèle a trois cœurs par CCX et 8 CCX par socket.

Figure 31 Rome

Figure 32 Rome

(Figures 3 et 4 : sortie lstopo pour les processeurs à 64 cœurs et 24 cœurs)

Quel que soit le nombre de CCD, chaque processeur Rome est logiquement divisé en quatre quadrants avec des CCD répartis aussi uniformément que possible entre les quadrants et deux canaux de mémoire dans chaque quadrant. La puce d’E/S centrale peut être considérée comme supportant logiquement les quatre quadrants du socket.


Retour au début

 

 

Options du BIOS basées sur l’architecture Rome

 

La puce centrale d’E/S à Rome permet d’améliorer les latences de mémoire par rapport à celles mesurées Ce lien hypertexte renvoie à un site Web extérieur à Dell Technologies à Naples.  En outre, elle permet de configurer le processeur comme un domaine NUMA unique, ce qui permet un accès uniforme à la mémoire pour tous les cœurs du socket. Ceci est expliqué ci-dessous.

Les quatre quadrants logiques d’un processeur Rome permettent de partitionner le processeur en différents domaines NUMA. Ce paramètre est appelé NUMA par socket ou NPS.

  • NPS1 implique que le processeur Rome est un domaine NUMA unique, avec tous les cœurs dans le socket et toute la mémoire dans ce domaine NUMA unique. La mémoire est entrelacée sur les huit canaux de mémoire. Tous les périphériques PCIe sur le socket appartiennent à ce domaine NUMA unique
  • NPS2 partitionne le processeur en deux domaines NUMA, avec la moitié des cœurs et la moitié des canaux de mémoire sur le socket dans chaque domaine NUMA. La mémoire est entrelacée sur les quatre canaux de mémoire de chaque domaine NUMA
  • NPS4 partitionne le processeur en quatre domaines NUMA. Chaque quadrant est ici un domaine NUMA et la mémoire est entrelacée sur les deux canaux de mémoire de chaque quadrant. Les périphériques PCIe sont installés sur l’un des quatre domaines NUMA du socket, en fonction du quadrant de la puce d’E/S qui contient la racine PCIe de ce périphérique
  • Tous les processeurs ne peuvent pas prendre en charge tous les paramètres NPS

Lorsqu’il est disponible, NPS4 est recommandé pour le HPC, car il devrait fournir la meilleure bande passante de mémoire, les latences de mémoire les plus faibles, et nos applications ont tendance à être sensibles à NUMA. Si NPS4 n’est pas disponible, nous recommandons le NPS le plus élevé pris en charge par le modèle de processeur : NPS2, voire NPS1.

Compte tenu de la multitude d’options NUMA disponibles sur les plates-formes basées sur Rome, le BIOS PowerEdge permet deux méthodes d’énumération des cœurs différentes sous l’énumération MADT. L’énumération linéaire numérote les cœurs dans l’ordre, en remplissant un CCX, CCD, socket avant de passer au socket suivant. Sur un processeur 32c, les cœurs 0 à 31 se trouvent sur le premier socket et les cœurs 32 à 63 sur le deuxième socket. L’énumération à permutation circulaire numérote les cœurs dans toutes les régions NUMA. Dans ce cas, les cœurs pairs se trouvent sur le premier socket et les cœurs impairs sur le deuxième socket. Pour plus de simplicité, nous recommandons l’énumération linéaire pour le HPC. Reportez-vous à la Figure 5 pour obtenir un exemple d’énumération de cœurs linéaires sur un serveur 64c à deux sockets configuré dans NPS4. Sur la figure, chaque boîte de quatre cœurs est un CCX, chaque ensemble de huit cœurs contigus est un CCD.

Figure 4 Rome

(Figure 5 : Énumération linéaire des cœurs sur un système à deux sockets, 64c par socket, configuration NPS4 sur un modèle à 8 CCD processeurs)

Une autre option du BIOS spécifique à Rome s’appelle Preferred IO Device. Il s’agit d’un bouton de réglage important pour la bande passante et le débit des messages InfiniBand. Elle permet à la plate-forme de hiérarchiser le trafic pour un périphérique d’E/S. Cette option est disponible sur les plates-formes Rome à un et deux sockets, et l’appareil InfiniBand de la plate-forme doit être sélectionné en tant qu’appareil préféré dans le menu du BIOS pour atteindre le taux de messages maximal lorsque tous les cœurs de processeur sont actifs.

À l’instar de Naples, Rome prend également en charge l’hyper-threading ou leprocesseur logique. Pour le HPC, nous laissons cette option désactivée, mais certaines applications peuvent bénéficier de l’activation du processeur logique. Recherchez nos prochains blogs sur les études d’application de la dynamique moléculaire.

À l’instar de Naples, Rome autorise également CCX en tant que domaine NUMA. Cette option expose chaque CCX en tant que nœud NUMA. Sur un système doté de processeurs à deux sockets et de 16 CCX par processeur, ce paramètre expose 32 domaines NUMA. Dans cet exemple, chaque socket dispose de 8 CCD, soit 16 CCX. Chaque CCX peut être activé en tant que son propre domaine NUMA, ce qui donne 16 nœuds NUMA par socket et 32 dans un système à deux sockets. Pour le HPC, nous vous recommandons de laisser CCX en tant que domaine NUMA sur l’option par défaut Désactivé. L’activation de cette option devrait aider les environnements virtualisés.

À l’instar de Naples, Rome permet de régler le système en mode Performance Determinism ou Power Determinism . Dans le déterminisme des performances, le système fonctionne à la fréquence attendue pour le modèle de processeur, ce qui réduit la variabilité entre les différents serveurs. En mode déterminisme énergétique, le système fonctionne à la TDP maximale disponible du modèle de processeur. Cela amplifie les variations d’une pièce à l’autre dans le processus de fabrication, ce qui permet à certains serveurs d’être plus rapides que d’autres. Tous les serveurs peuvent consommer la puissance nominale maximale du processeur, ce qui rend la consommation électrique déterministe, mais permet une certaine variation des performances entre plusieurs serveurs.

Comme on peut s’y attendre sur les plates-formes PowerEdge, le BIOS dispose d’une méta-option appelée Profil système. La sélection du profil système Performances optimisées permet d’activer le mode Turbo Boost, de désactiver les états C et de définir le curseur de déterminisme sur Déterminisme de l’alimentation, optimisant ainsi les performances.


Retour au début

 

 

Résultats de performances : micropoints de référence STREAM, HPL et InfiniBand

 

Beaucoup de nos lecteurs ont peut-être sauté directement à cette section, alors nous allons plonger dans le vif du sujet.

Dans le laboratoire d’innovation en matière d’IA et de HPC, nous avons créé un cluster de 64 serveurs basé à Rome, que nous appelons Minerva. En plus du cluster homogène de Minerva, nous avons pu évaluer quelques autres échantillons de processeurs Rome. Notre banc d’essai est décrit dans les tableaux 1 et 2.

(Tableau 1 : Modèles de processeurs Rome évalués dans cette étude)

Processeur Cœurs par socket Config Horloge de base TDP
7702 64c 4c par CCX 2,0 GHz 200W
7502 32c 4c par CCX 2,5 GHz 180 W
7452 32c 4c par CCX 2,35 GHz 155 W
7402 24c 3c par CCX 2,8 GHz 180 W

(Tableau 2 : banc d’essai)

Composant Détails
Serveur PowerEdge C6525
Processeur Comme indiqué dans le tableau 1, deux sockets
Mémoire 256 Go, 16 x 16 Go, 3 200 MT/s, DDR4
Interconnexion ConnectX-6 Mellanox Infini Band HDR100
Système d’exploitation Red Hat Enterprise Linux 7,6
Noyau 3.10.0.957.27.2.e17.x86_64
Disque Module M.2 de disque SSD SATA de 240 Go


Retour au début

 

 

FLUX

 

Les tests de bande passante de la mémoire sur Rome sont présentés sur la Figure 6. Ces tests ont été exécutés en mode NPS4. Nous avons mesuré une bande passante mémoire de ~270 à 300 Go/s sur notre serveur PowerEdge C6525 à deux sockets en utilisant tous les cœurs du serveur sur les quatre modèles de processeurs répertoriés dans le tableau 1. Lorsqu’un seul cœur est utilisé par CCX, la bande passante de la mémoire système est ~9-17 % plus élevée que celle mesurée avec tous les cœurs.

La plupart des charges applicatives HPC souscrivent entièrement tous les cœurs du système, ou les centres HPC s’exécutent en mode haut débit avec plusieurs tâches sur chaque serveur. Par conséquent, la bande passante de la mémoire all-core est la représentation la plus précise des capacités de bande passante de la mémoire et de bande passante mémoire par cœur du système.

La figure 6 représente également la bande passante de la mémoire mesurée sur la plate-forme EPYC Naples de génération précédente, qui prenait également en charge huit canaux de mémoire par socket, mais fonctionnait à 2 667 MT/s. La plate-forme Rome fournit une bande passante de mémoire totale de 5 % à 19 % supérieure à celle de Naples, principalement en raison de la mémoire plus rapide de 3 200 MT/s. Même avec 64c par socket, le système Rome peut fournir plus de 2 Go/s/cœur.

Remarque : Une variation de performance de 5 à 10 % dans les résultats de STREAM Triad a été mesurée sur plusieurs serveurs basés à Rome configurés de manière identique. Les résultats ci-dessous doivent donc être considérés comme étant le haut de gamme de la gamme.
 

En comparant les différentes configurations NPS, une bande passante de mémoire ~13 % supérieure a été mesurée avec NPS4 par rapport à NPS1, comme le montre la Figure 7.

Figure 5 Rome

(Figure 6 : Bande passante de la mémoire de la triade NPS4 STREAM à deux sockets)

Figure 6 Rome

(Figure 7 : Bande passante de la mémoire NPS1, NPS2 et NPS4)


Retour au début

 

 

Bande passante InfiniBand et débit des messages

 

La Figure 8 représente la bande passante InfiniBand monocœur pour les tests unidirectionnels et bidirectionnels. Le banc d’essai a utilisé HDR100 s’exécutant à 100 Gbit/s, et le graphique montre les performances de fréquence de ligne attendues pour ces tests.

Figure 6 IBBW

Figure 8 Bande passante InfiniBand (monocœur)

Figure 6 IBBW

Figure 9 Taux de messages InfiniBand (tous les cœurs)

Des tests de taux de messages ont ensuite été menés en utilisant tous les cœurs d’un socket dans les deux serveurs testés. Lorsque l’option Preferred IO est activée dans le BIOS et que l’adaptateur ConnectX-6 HDR100 est configuré en tant que périphérique préféré, le taux de messages sur tous les cœurs est nettement plus élevé que lorsque l’option Preferred IO n’est pas activée, comme illustré sur la Figure 9. Cela illustre l’importance de cette option de BIOS lors du réglage pour le HPC et en particulier pour l’évolutivité des applications à plusieurs nœuds.


Retour au début

 

 

HPL

 

La micro-architecture Rome peut retirer 16 DP FLOP/cycle, soit le double de celle de Naples qui était de 8 FLOPS/cycle. Cela donne à Rome 4 fois le pic théorique de FLOPS par rapport à Naples, 2 fois plus de la capacité de virgule flottante améliorée et 2 fois plus de cœurs (64c contre 32c). La figure 10 présente les résultats HPL mesurés pour les quatre modèles de processeurs Rome que nous avons testés, ainsi que nos résultats précédents d’un système basé sur Naples. L’efficacité du HPL Rome est indiquée comme valeur en pourcentage au-dessus des barres sur le graphique et est plus élevée pour les modèles de processeur à TDP inférieur.

Les tests ont été exécutés en mode déterminisme de l’alimentation, et un écart de performances de ~5 % a été mesuré sur 64 serveurs configurés de manière identique. Les résultats ici se situent donc dans cette bande de performances.

Figure 9 Rome

(Figure 10 HPL à serveur unique dans NPS4)

Des tests HPL à plusieurs nœuds ont ensuite été exécutés et ces résultats sont présentés sur la Figure 11. L’efficacité HPL du processeur EPYC 7452 reste supérieure à 90 % sur une échelle de 64 nœuds, mais les baisses d’efficacité, qui sont passées de 102 % à 97 % et jusqu’à 99 %, nécessitent une évaluation plus approfondie

Figure 10 Rome

(Figure 11 : HPL à plusieurs nœuds, double socket, EPYC 7452 sur HDR100 InfiniBand)


Retour au début

 

 

Récapitulatif et étapes

 

Les premières études de performances sur les serveurs basés à Rome montrent les performances attendues pour notre premier ensemble de points de référence HPC. Le paramétrage du BIOS est important lors de la configuration pour obtenir les meilleures performances. Des options de réglage sont disponibles dans notre profil de charge applicative HPC du BIOS, qui peut être configuré en usine ou défini à l’aide des utilitaires de gestion des systèmes Dell EMC.

Le laboratoire d’innovation en matière d’IA et de HPC dispose d’un nouveau cluster PowerEdge Minerva basé à Rome sur 64 serveurs. Surveillez cet espace pour les blogs suivants qui décrivent les études de performances d’application sur notre nouveau cluster Minerva.


Retour au début

 

Propriétés de l’article


Dernière date de publication

15 mars 2024

Version

6

Type d’article

Solution