Turin d’AMD : lancement de la 5e génération d’EPYC
(chipsandcheese.com)- Les mesures réelles de l’AMD EPYC 9575F montrent les différences concrètes de Turin en se concentrant sur les évolutions du sous-système mémoire côté serveur, plutôt que de répéter la description des cœurs Zen 5
- La bande passante en mono-thread atteint environ 52 Go/s en lecture, 48 Go/s en écriture et 95 Go/s en
add, tandis que la lecture à l’échelle du socket atteint près de 99 % du maximum théorique de 576 Go/s - Côté serveur, Turin utilise 2 liens GMI en GMI3-W entre les CCD et l’I/O die, et la largeur du lien d’écriture passe aussi à 32B par lien, ce qui donne aux CCD une bande passante supérieure à celle du Zen 5 desktop
- La latence mémoire à vide reste similaire à celle de Genoa, mais la latence inter-cœurs augmente, avec environ 45 ns en Intra-CCD, 150 ns en Inter-CCD et 260 ns entre sockets, soit plus que sur Genoa
- Le 9575F permet à ses 64 cœurs d’atteindre jusqu’à 5 GHz en mono-thread et maintient environ 4,3 GHz dans Cinebench 2024 sur 128 threads, ce qui souligne clairement son positionnement d’offre enterprise à haute fréquence et nombre de cœurs relativement contenu
Les évolutions de Turin vues à travers l’EPYC 9575F
- L’analyse de Turin s’appuie principalement sur des mesures réelles de l’AMD EPYC 9575F
- Il a été possible de tester ce CPU via Jordan de StorageReview
- Les cœurs Zen 5 ayant déjà été traités sur mobile, desktop et dans des comparaisons de variantes, l’accent est ici mis sur le sous-système mémoire
- Les slides de lancement de Turin par AMD sont disponibles chez Serve the Home, mais l’article s’appuie davantage sur des mesures maison
Une configuration GMI qui augmente la bande passante des CCD
- Dans les résultats en 1T, la bande passante mémoire mono-thread de l’EPYC 9575F atteint environ :
- lecture : 52 Go/s
- écriture : 48 Go/s
add, c’est-à-dire Read-Modify-Write : 95 Go/s
- Un seul cœur peut déjà exploiter une part importante de la bande passante mémoire totale du CCD
- la lecture représente un peu moins de la moitié de la bande passante totale en lecture du CCD
- l’écriture correspond à environ 55 % de la bande passante totale en écriture du CCD
adddépasse les deux tiers de la bande passante totaleadddu CCD
- Cette différence vient de la configuration GMI3-W de Turin côté serveur
- L’EPYC 9575F dispose de 2 liens GMI vers l’I/O die
- Le Ryzen 9950X utilise un seul lien GMI
- Le lien d’écriture GMI côté serveur atteint 32B par lien, contre 16B par lien sur le Zen 5 desktop
Mémoire à 12 canaux et performances du socket complet
- Turin prend en charge une mémoire à 12 canaux avec un maximum de DDR5-6400MT/s
- Le DDR5-6400MT/s n’est pris en charge que sur certains systèmes validés
- Cette vitesse n’est possible qu’avec une configuration à 1 DIMM par canal
- Le système de test fonctionnait en DDR5-6000MT/s
- La plupart des systèmes prennent en charge le DDR5-6000MT/s avec 1 DIMM par canal
- Avec 2 DIMM par canal, la vitesse mémoire tombe à 4400MT/s
- Sur une carte mère avec 2 emplacements DIMM par canal, utiliser seulement 1 DIMM par canal devrait permettre 5200MT/s
- La bande passante en lecture du socket complet du 9575F atteint près de 99 % du maximum théorique de 576 Go/s
- écriture : 435 Go/s
add: 453 Go/s
- Sur la plateforme AMD Volcano, la bande passante inter-socket entre deux 9575F a également été mesurée
- Cette plateforme ne dispose que de 3 liens GMI entre les deux CPU
- Les résultats étaient très proches de ceux du test Bergamo, dont le système utilisait lui aussi la même configuration à 3 liens GMI
Latence en charge et latence inter-cœurs
- La latence mémoire à vide de Turin est très proche de celle de Genoa
- Lors de Hot Chips 2024, Ampere Computing a publié un graphique de latence mémoire en charge pour la puce AmpereOne et les CPU AMD Genoa, qui a servi de base pour créer un test de latence en charge similaire
- Le test consiste à saturer le lien IOD-CCD ou l’ensemble du système mémoire avec un benchmark de bande passante mémoire, puis à mesurer la latence mémoire sur les cœurs ou CCD restants
- Dans le test sur un seul CCD, un benchmark de bande passante mémoire est exécuté sur 7 cœurs d’un CCD, puis la latence est mesurée sur le 8e cœur
- Dans le test sur l’ensemble du système, un benchmark de bande passante mémoire est exécuté sur 7 CCD du 9575F, puis la latence est mesurée sur le 8e CCD
- En charge, l’augmentation de la latence mémoire du 9575F reste d’un niveau comparable selon les conditions
- avec une charge sur un seul CCD, elle augmente d’environ 39 ns par rapport au repos
- avec une charge sur l’ensemble du système, elle augmente d’environ 31 ns par rapport au repos
- La latence inter-cœurs augmente par rapport à Genoa, avec une hausse particulièrement marquée à l’intérieur d’un CCD
- latence Intra-CCD : environ 45 ns
- latence Inter-CCD : environ 150 ns
- latence socket à socket : environ 260 ns
Fréquences et positionnement produit
- Sur les tests mono-thread, les 64 cœurs de l’EPYC 9575F pouvaient tous atteindre jusqu’à 5 GHz
- Lors des tests de bande passante mémoire, les 8 cœurs d’un même CCD pouvaient tous fonctionner à 5 GHz
- Dans Cinebench 2024, avec les 128 threads utilisés, la puce maintenait une fréquence d’environ 4,3 GHz
- Wendell de Level1Techs a observé environ 4,9 GHz all-core sur une charge web server / transactions TLS, un type de charge moins vectorisé
- La gamme Turin combine des SKU à très grand nombre de cœurs et des SKU à haute fréquence
- AMD propose des SKU à grand nombre de cœurs comme les 9755 et 9965
- AMD propose aussi des SKU comme le 9575F, avec moins de cœurs mais une fréquence très élevée
- Le fait que 64 cœurs soient désormais considérés comme un « faible nombre de cœurs » montre à lui seul l’évolution du marché des CPU serveurs
- Turin ressemble moins à une révolution brutale comme le passage de Naples à Rome qu’à une évolution du type de celle de Milan à Genoa, combinant hausse de la bande passante mémoire, augmentation du nombre de cœurs et mise à jour des cœurs
1 commentaires
Avis sur Hacker News
AMD EPYC 9175F est le plus atypique : 16 cœurs avec 512 Mo de cache L3, cela semble destiné aux clients qui veulent réduire les coûts de licence par cœur.
Sinon, mettre aussi peu de cœurs dans une puce aussi chère n’a pas vraiment de sens. Je ne sais pas si Oracle utilise encore ce mode de licence, mais si c’est le cas, il serait temps d’arrêter.
On peut aussi imaginer des usages comme le HFT, où l’on charge tout l’algorithme dans le L3 pour viser la latence minimale absolue, ou bien des cas où l’on veut n’utiliser que les meilleurs cœurs de chaque chiplet. Mais la raison la plus probable reste sans doute la licence logicielle.
La meilleure configuration consiste à conserver tout l’état dans le cache local et à l’exécuter sur le cœur le plus rapide. Si l’on peut en lancer 16 en parallèle, on réduit d’autant l’espace de recherche.
Dans ce type de problème, il n’y a quasiment pas à se soucier de la latence entre CCD. Même en faisant tourner quelque chose comme un algorithme génétique qui croise périodiquement des cœurs physiques, les besoins en bande passante entre cœurs restent faibles.
Comme indiqué, s’il s’agit de code tiers dont on n’a ni les sources ni les droits, il est même souvent impossible de le réécrire.
Mais 512 Mo, c’est vraiment confortable. Je me demande si l’on pourrait mettre Puppy Linux tout entier dans le cache L3.
https://www.mathworks.com/products/matlab-parallel-server/li...
Tester un algorithme avec différents nombres de threads puis utiliser la valeur optimale est une pratique courante. Les algorithmes intensifs en mémoire atteignent souvent leur pic de performance avec un nombre de cœurs relativement faible.
Phoronix a récemment publié un comparatif entre le Turin Dense 196 cœurs et l’AmpereOne 192 cœurs.
Le prix recommandé de l’Ampere était de 5 500 dollars, celui de l’EPYC de 15 000 dollars ; le Turin 196 était 1,6 fois plus performant, tandis que l’Ampere était 1,2 fois plus efficace énergétiquement.
D’après le test de Phoronix, en performance réelle par dollar, l’Ampere 192 cœurs est 1,7 fois meilleur que le Turin Dense 196 cœurs. Pour 5 500 dollars, on peut acheter soit un CPU AmpereOne 192 cœurs (274 W), soit un CPU Turin Dense 48 cœurs (300 W).
Ampere prévoit de lancer l’an prochain un produit 256 cœurs, en 3 nm, avec mémoire 12 canaux, ce qui pourrait lui permettre de mieux rivaliser avec Turin Dense et Sierra Forest en performance brute. Son point fort actuel reste le rapport performance/prix.
Les performances de la puce serveur de Qualcomm basée sur Nuvia m’intriguent aussi beaucoup. Si les progrès des cœurs ARM client donnent un indice, il sera intéressant de voir comment des puces maison comme AWS Graviton, Google Axion, Microsoft Cobalt, Nvidia Grace ou Alibaba Yitian rivaliseront avec de meilleurs cœurs Neoverse. Ce sera Nuvia contre ARM contre AmpereOne.
Nous sommes probablement dans un âge d’or des CPU serveur. Il y a sept ans, il n’y avait guère qu’Intel Xeon ; aujourd’hui, les options se sont multipliées.
Dans beaucoup de datacenters aujourd’hui, la puissance disponible et le refroidissement qui en découle deviennent des contraintes plus importantes, ce qui est un bon signal pour Turin.
Si l’on ne regarde que la performance par dollar, il faut considérer les modèles Zen5 avec moins de cœurs, plutôt que Zen5c ; ceux-ci offrent un rapport performance/prix deux fois supérieur au 9965 à 192 cœurs.
La même logique s’applique moins bien à Ampere, car le modèle 192 cœurs à 3,2 GHz est déjà presque au meilleur niveau de performance par dollar.
C’est vraiment une échelle énorme. Il y a encore 20 ans, on avait 1 à 2 cœurs par CPU, et avec 4 cœurs sur un serveur bi-socket on pouvait s’estimer chanceux.
Aujourd’hui, un seul serveur peut presque avoir 400 cœurs. Bien sûr, avec des cœurs ARM on peut peut-être en avoir davantage, mais au moins pour l’instant ils n’atteignent pas ce niveau de performances.
Il y a 20 ans, cela aurait représenté plusieurs racks de matériel.
Si l’on peut louer un serveur dédié puissant pour moins de 1000 dollars par mois et économiser des dizaines de milliers de dollars, je me demande quel effet cela aura sur les services cloud hors de prix. Avec cet argent, on pourrait même embaucher un administrateur à temps plein et il en resterait.
J’ai hâte de déployer des serveurs bare metal AMD Turin quand ils arriveront chez Hetzner. La génération précédente avait déjà un bon rapport qualité-prix, et celle-ci semble encore passer un cran au-dessus.
J’utilise encore un Dell PowerEdge de 12 ans avec deux Xeon. Je me demande quand les serveurs EPYC de 1re génération commenceront à se retrouver à vil prix sur eBay.
Si l’objectif principal n’est pas d’avoir beaucoup de lignes PCIe et de RAM, je ne recommanderais pas vraiment de descendre sous la 3e génération. Les CPU grand public de génération actuelle, même avec moitié moins ou un quart des cœurs, offrent de meilleures performances de calcul et consomment beaucoup moins.
Les performances par cœur sont trop faibles, il y a des problèmes liés au NUMA, et le procédé de fabrication est moins bon. Les dies de calcul de 2e génération sont en TSMC 7 nm.
J’ai acheté un 9 5950X pour 242 livres sterling.
Sinon, des combinaisons du type Epyc 7282 se trouvent aussi facilement et sont correctes.
ChipsAndCheese fait partie des rares nouveaux médias tech qui savent vraiment de quoi ils parlent. Ils sont particulièrement bons sur ce genre de benchmarks approfondis.
Avec la disparition d’anciens sites tech comme Anandtech, TechReport ou HardOCP, cela fait plaisir de voir un nouveau média capable de reprendre ce style d’articles fouillés à l’ancienne.
Pour ceux qui n’aiment pas le passage à Substack, il y a https://old.chipsandcheese.com/2024/10/11/amds-turin-5th-gen...
Au moins pour l’instant, ça marche.
Un modèle avec seulement 16 cœurs mais 512 Mo de cache L3 est clairement destiné à certaines charges de travail spécifiques.
Une configuration à 2 sockets avec un CPU 16 cœurs[1] doté de beaucoup de cache, d’une forte bande passante, de fréquences élevées et d’une grande capacité mémoire peut donc être la plus efficace face à plus d’un million de dollars de coûts de licence.
[1] https://www.amd.com/en/products/processors/server/epyc/9005-...
Autrement dit, 112 cœurs sont désactivés pour n’en garder que 16, afin de conserver autant de cache que possible.
En revanche, comme on passe toujours par le bus relativement lent entre chiplets, la latence entre cœurs ne doit pas être très bonne.
D’anciens processeurs non-x86 le permettaient, et démarraient souvent dans ce mode afin de pouvoir initialiser le contrôleur mémoire. Si c’est encore possible aujourd’hui, cela pourrait ouvrir des usages embarqués intéressants, comme de gros systèmes sans DRAM.
Il y a un passage qui dit : « le système auquel ils ont eu accès faisait tourner la mémoire à 6000 MT/s, et la DDR5-6000 MT/s est prise en charge par la plupart des systèmes en configuration 1 DIMM par canal. Avec 2 DIMM par canal, la vitesse mémoire descend à 4400 MT/s, et si l’on utilise 1 DIMM par canal sur une carte mère à 2 DIMM par canal, il faut s’attendre à 5200 MT/s » ; je me demande si toutes ces vitesses concernent de la mémoire ECC.