Avec des modèles très proches à 8, 6 et 4 coeurs, la gamme Ryzen offre beaucoup de choix. Que font gagner en pratique ces coeurs supplémentaires ? Et quel est l'impact du SMT dans ces situations ? C'est l'occasion de faire un point rapide sur ces questions !

En construisant une gamme large à partir d'un die commun, AMD propose des choix qui diffèrent un peu de ce que l'on trouve chez la concurrence. Ainsi là où chez Intel on a le choix entre moins de coeurs mais plus rapides (7700K) ou plus de coeurs qui le sont moins (6900K), on trouve des modèles 4, 6 et 8 coeurs qui disposent de spécifications quasi identiques sur Ryzen.

Les R7 1800X et R5 1600X ont d'ailleurs strictement les mêmes fréquences, tandis que celle du 1500X avec plus de deux coeurs actifs ne diffère que de 100 MHz (3.6 GHz contre 3.7 pour les autres en Turbo, la plus utilisée). Nous avons donc voulu comparer en pratique les performances de ces trois processeurs dans notre protocole, afin de voir l'impact du nombre de coeurs dans les différents jeux et applications.

Impact du nombre de coeurs sur le protocole applicatif

Nous calculons un indice 100 pour le Ryzen 5 1500X. En théorie, le passage de 4 à 6 coeurs peut apporter jusque 50% de performances, l'écart théorique maximal entre le 1500X et le 1600X est légèrement plus grand si l'on prend en compte l'écart de fréquence (+2,8%). Passer de 6 à 8 coeurs apporte en théorie 33% de performances en plus. Voyons ce que cela donne en pratique :

Première remarque, un grand nombre d'applications profitent massivement d'un nombre de coeurs plus élevé. Ce n'est pas une surprise, notre protocole applicatif a été conçu pour profiter du multithreading mais on trouve un niveau de scaling très élevé, frôlant les 50% dans un bon nombre d'applications quand l'on passe de 4 à 6 coeurs. Stockfish, Komodo et x264 sont celles qui obtiennent le meilleur scaling en général.

Trois applications sont à part. 7-Zip et WinRAR sont particulièrement stressant pour le sous-système mémoire de Ryzen. Le gain de performances reste respectable mais s'éloigne du scaling idéal. Lightroom, malgré l'utilisation de deux exports en parallèle, ne découpe pas assez ses traitements pour tirer pleinement partie d'un nombre de coeurs importants.

En moyenne on retrouve un gain de 44,6% sur l'applicatif entre le 1500X et le 1600X, et de 26.8% entre le 1600X et le 1800X, on est donc proches des valeurs théoriques.

Impact dans les jeux du nombre de coeurs

Regardons maintenant ce qui se passe dans les jeux :

Contrairement aux applications, la variabilité est beaucoup plus large ici. Tous les moteurs de jeux sont différents mais globalement, les gains sont bien moindres.

Le meilleur scaling sur Ryzen se retrouve dans Total War : Warhammer. Avec son patch 1.6.0 qui corrige la détection du SMT, on voit que l'on peut gagner 26.9% de performances entre un 1500X et un 1600X, le gain entre le 1600X et le 1800X étant par contre bien plus faible (3.4%). Project Cars est le titre qui profite le moins d'une augmentation du nombre de coeurs, cette dernière peut même être bizarrement contre-productive en passant de 6 à 8 coeurs. Battlefield 1 est l'autre jeu qui profite grandement d'un plus fort nombre de coeurs.

Dans les jeux en moyenne, le 1600X se place comme un bon compromis en permettant de gagner 12.7% de performances par rapport au 1500X, tandis que le passage de 6 à 8 coeurs est plus marginal, seulement 2.6%.

Impact du SMT dans les applications

Un des arguments d'AMD sur les Ryzen 5 est la présence du SMT, là ou Intel ne propose pas l'HyperThreading sur les Core i5. Nous avons voulu regarder plus précisément ce que cela apporte en pratique, nous vous rapportons donc les gains obtenus pour ces trois processeurs entre le mode SMT désactivé, et le mode SMT activé :

Il y a un peu de variabilité dans certains tests mais il y a une tendance assez intéressante que l'on peut remarquer : le SMT apporte en moyenne des gains plus larges avec un nombre de coeurs plus réduits. Et ces gains, bien que variables, peuvent être très importants. Dans une compilation Visual Studio, on dépasse les 47%, tandis que les IA d'échecs gagnent elles aussi plus de 40% sur les modèles 4 coeurs.

Les deux logiciels de compression vidéo ont des comportements qui illustrent assez bien ce que l'on retrouve ailleurs, x264 propose un apport quasi identique du SMT dans les trois cas, tandis que x265, qui est un peu plus limité avec un grand nombre de coeurs avec une source 1080p voit ses gains s'amenuiser.

Lightroom, toujours particulier, fini par perdre des performances entre le mode SMT actif et inactif. Nous nous demandons si Lightroom ne tenterai pas de répartir lui-même ses threads sur les coeurs, ce qui pourrait expliquer la très large variabilité des résultats que l'on a pu voir sur Ryzen lors de nos benchs s'il ne détecte pas le SMT correctement.

Impact du SMT dans les jeux 3D

On termine par les jeux ou l'on regarde là aussi l'impact du SMT sur les trois modèles :

Lors de notre test du Ryzen 7 1800X, nous avions noté que le SMT n'était pas particulièrement favorable à la nouvelle architecture d'AMD dans les jeux. C'est effectivement vrai sur huit coeurs !

Sur quatre coeurs, les gains apportés sont assez massifs en comparaison, on récupère 20% de performances en plus sous Witcher 3, Civilization VI et F1 2016 (ce dernier ne détecte pas correctement le SMT ce qui amplifie légèrement l'effet).

Beaucoup de titres montrent un effet de pallier dans leurs gains, on peut l'interpréter assez facilement : beaucoup de jeux sont capables de répartir leur charge de manière à tirer partie de plus de 4 coeurs, c'est moins le cas au-delà de 6 et plus du tout le cas à plus de 8.

En moyenne au final on note 14.4% de gains apportés par le SMT dans les jeux sur quatre coeurs, qui se réduit à 4.6% sur 6 coeurs et une baisse de 1.4% sur huit coeurs.

En résumé

On peut tirer plusieurs enseignements de ces résultats. D'abord sur le plan applicatif, comme nous avons pu le voir dans tous nos articles, l'augmentation du nombre de coeurs apporte des gains massifs qui s'approchent presque des gains maximums théoriques dans le cas de Ryzen. Cela vient en grande partie du fait que notre protocole a été volontairement conçu autour de logiciels assez fortement multi-threadés, mais ces logiciels sont aussi représentatifs de nombre d'usages concrets.

Dans les jeux, le gain apporté par le nombre de coeurs est plus limité même si l'on voit que passer de 4 à 6 coeurs apporte un gain qui est tout sauf anodin. Cela illustre une autre tendance : les moteurs modernes utilisent de mieux en mieux un plus grand nombre de coeurs, ce qui n'a longtemps pas été le cas : auparavant seule la fréquence importait. Cette page est enfin tournée même s'il faudra encore un peu de temps pour voir une encore meilleure utilisation des coeurs supplémentaires.

Il est aussi très intéressant de voir le rôle important du SMT. Si sans surprise il augmente assez nettement les performances dans les applications, c'est son rôle dans les jeux qui retient notre attention. Il y a quelques années son intérêt se limitait dans ce domaine à 2 coeurs mais on se doutait, en regardant l'écart de performances entre un Core i5-7600K et un Core i7-7700K dans notre nouveau protocole, que l'HyperThreading ne jouait plus un rôle anodin sur 4 coeurs. Ces mesures démontrent que l'impact du SMT est désormais très net dans ce cas, ce qui indique là aussi que les moteurs de jeux répartissent de mieux en mieux leur charge entre de multiples threads, même si l'on regrettera que cela n'évolue jamais assez vite puisqu'on aimerait voir les mêmes types de gains avec 6 et 8 coeurs !