AMD Ryzen 7 1800X en test, le retour d'AMD ?

Tags : AM4; AMD; Ryzen; Zen;
Publié le 02/03/2017 (Mise à jour le 12/03/2017) par
Imprimer

Pour nos tests de processeurs, nous avons mis en place un protocole uniforme afin de mettre tout le monde sur un pied d'égalité, mais aussi dans des conditions qui soient le plus proche possible d'une utilisation normale.

Nous avons décrit en long et en large notre protocole dans cet article, et celui-ci où vous pouvez même le voir en action en vidéo. Nous utilisons Windows 10 Anniversary Update pour réaliser nos tests, et si nous modifions certaines choses (nous désactivons des services inutiles et des choses qui qui pourraient ralentir de manière aléatoire les benchmarks et fausser les écarts), nous conservons les options importantes par défaut. L'une d'entre elle est le mode de gestion de l'alimentation (Power Plan en anglais).

Il vous est peut-être arrivé de passer par ce panneau, notamment pour changer le temps avant la mise en veille de l'écran et du PC.

Par défaut, après une installation de Windows (y compris sur desktop), c'est le mode "Balanced" qui est actif :

Microsoft n'y va pas dans la subtilité puisque le mode "Balanced" est affiché en gras, en plus d'une mention "recommended" entre parenthèses ! On voit un autre mode, "Power saver" (dédié plus spécifiquement aux portables) et c'est tout. Il y a cependant un autre mode, caché derrière "Show additional plans" : le mode "High Performance".

Pourquoi ce profil est-il caché par Microsoft ? Pour de bonnes raisons, il désactive la plupart des mécanismes d'économie d'énergie gérés par logiciel sur les composants du PC, avec ces impacts côté processeur :

  • Il désactive une partie des options d'économie d'énergie du CPU
  • Il change la manière dont le scheduler affecte les threads

D'un point de vue technique les P-States sont désactivés côté logiciel. Dans le cas de notre 1800X, cela veut dire être bloqué à 3.7 GHz au minimum (le plus petit P1, soit la fréquence en charge sur tous les coeurs dans le cas du 1800X), quelle que soit la charge. Les C-States sont par contre eux toujours actifs.

L'impact sur la consommation côté processeur en cas de scénario "simple" tel que le repos pur et dur est très léger, à peine 2w, mais dans des cas de charge mixte il peut être un peu plus important.

En pratique, ce mode n'a aujourd'hui qu'un impact mesuré sur les processeurs modernes en termes de performances. C'est pour cela qu'il n'est pas recommandé, même s'il reste disponible.

AMD lui-même recommande bien évidemment aux utilisateurs d'utiliser le mode "Balanced". Cependant, le constructeur a suggéré aux testeurs en début de semaine de ne pas utiliser le mode "Balanced", mais d'utiliser le mode "High Performance".

Nous avons été particulièrement surpris par cette suggestion d'AMD. L'argument du constructeur (dans un premier temps) était de dire que le mode High Performance permettait le changement de P-State (le couple tension/multiplicateur qui détermine la fréquence de la puce) en une milliseconde, contre trente millisecondes en mode "Balanced", sa gestion n'étant en fait pas désactivée mais déportée du logiciel au matériel.

Ce type d'assertion est particulièrement complexe à vérifier avec les outils dont nous disposons, la plupart des outils de monitoring n'ont pas la précision suffisante pour voir le changement avec une telle granularité.

Plus gênant, cet argument ne colle pas avec les présentations techniques d'AMD à propos de Precision Boost :

Precision Boost est une gestion matérielle des P-States qui se veut plus fine que celle de Windows. Lors de sa présentation, AMD nous avait indiqué que la fonctionnalité était toujours active et disponible indépendamment du système d'exploitation utilisé. Elle permet notamment une gestion par pas de 25 MHz (ce qui n'est pas impossible avec des P-States classiques), et XFR est bâti sur Precision Boost.

Etant donné que XFR est bien actif en mode "Balanced", et que nous constatons des coefficients multiplicateurs identiques en pratique dans les deux modes de gestion d'énergie de Windows (y compris des coefficients intermédiaires qui donnent des fréquences comme 3825 MHz), nous avons longuement douté de l'explication donnée par AMD.

Un lien avec le SMT ?

Dans le doute ces derniers jours nous avons voulu comparer tout de même le mode "High Performance" au mode "Balanced" dans les jeux, pour voir si l'on pouvait constater quelque chose :

Vous retrouvez en bleu les résultats en mode "Balanced" et en orange en mode "High Performance", dans les deux cas nous testons avec et sans SMT actif.


Vous remarquerez d'abord qu'à la marge d'erreur près, les performances avec le SMT désactivé sont identiques à celles en mode "Balanced" et en mode "High Performance". Si, comme le disait AMD, le mode "High Performance" apportait un gain de rapidité au niveau du changement de P-State, on pourrait s'attendre à des gains aussi avec le SMT désactivé. Ce n'est pas le cas.

Lorsque l'on active le SMT, on voit effectivement une différence :

  • dans GTA V, Witcher 3 et Battlefield 1, le mode "High Performance" avec SMT activé est aussi performant que les modes ou le SMT est désactivé
  • dans Project Cars, F1 2016, Watch Dogs 2 et Total War Warhammer (en version 1.5.0), on note au mieux un écart de 2 à 3%, mais qui ne compense pas ce que fait perdre le SMT

On mettra de côté Civilization VI pour qui les choses ne changent pas quel que soit le mode.

La similarité de performance dans les quatre premiers titres avec ce que l'on retrouve avec le SMT désactivé est assez troublante. Et l'on notera que Total War Warhammer en version 1.6.0 s'est aligné sur ces derniers.

Pour rappel, un des points que nous avions relevé dans notre analyse du comportement du SMT à 3 GHz, était que si l'on gagnait massivement dans le cas des performances applicatives (+25.6%), on perdait par contre 8.9% dans les jeux. Si perdre dans les jeux avec l'HyperThreading n'est pas une nouveauté - cela à longtemps été le cas avec les architectures Intel - de nos jours cela ne semblait plus être le cas.

Dans notre comparaison, on notait que l'on perdait à peine 2% chez Intel, loin de ce que l'on trouve chez AMD et même si les implémentations sont différentes chez les deux constructeurs, l'écart est sensible.

Y a-t-il un lien entre le SMT et ce changement de mode ? Dans tous les cas, la piste des P-State nous a paru de plus en plus fausse.

Le Core Parking avancé... puis retiré par AMD

Après le lancement, des employés d'AMD ont répondu à quelques questions sur reddit. A la question de savoir pourquoi on voyait de la variabilité dans les tests, trois arguments ont été avancés :

  • Des BIOS pas à jour sur les cartes mères
  • Le HPET aurait un impact sur les performances
  • Le mode "High Performance" désactive le Core Parking

Pour information, le Core Parking  est une fonctionnalité au niveau du scheduler de Windows qui va placer en mode C6 (un état de tension minimale) une partie des coeurs lorsque le système est peu chargé. L'idée étant par la suite de privilégier les coeurs déjà actifs pour répartir les charges, plutôt que de réveiller de nouveaux coeurs sauf si cela est nécessaire.

La description sur le site de Microsoft est assez succincte. Microsoft utilise le terme de coeurs "logiques", laissant penser que le Core Parking pourrait justement être lié au SMT et à l'Hyper Threading et que la technologie désactiverait ces coeurs logiques en priorité.

Nous avons donc demandé une clarification à AMD, ce qui a eu pour conséquence que le commentaire soit édité aussitôt sur reddit  :

On revient donc à l'explication précédente...

Après avoir tenté en vain de trouver une raison à la différence de performances entre les deux modes, nous sommes revenus au Core Parking, comment est-il réglé dans les deux modes pour un Ryzen ?

Vous pouvez voir comment est réglé actuellement le Core Parking sur votre machine en utilisant la commande powercfg /qh et en cherchant le GUID 0cc5b647-c1df-4637-891a-dec35c318583. La valeur est hexadécimale et indique le pourcentage de coeurs à ne pas parquer.

En mode "High Performance", cette valeur (Processor performance core parking min cores) est réglée sur 100 : aucun coeur n'est parqué. En mode "Balanced", elle est réglée... sur 10 ! 90% des coeurs sont donc parqués par défaut.

Est-ce anormal ? Pour en avoir le coeur net nous avons regardé sur une config Intel en X99. En mode "Balanced", la valeur par défaut est de 100 : le Core Parking est bel et bien désactivé !

Dans le doute, nous avons réalisé une installation "fraîche" de Windows 10 Anniversary Update sur les deux plateformes, et nous confirmons : sur Ryzen, le Core Parking est réglé à 10%, et sur un 6900K à 100%.

Il semble probable que Microsoft ait désactivé le Core Parking sur les dernières générations de processeurs Intel et qu'il n'ait pas encore fait cette modification pour le tout nouveau Ryzen.

Reste la question, pourquoi le Core Parking n'est-il pas si pénalisant sur Ryzen lorsque l'on désactive le SMT ? Après vérification, dans ce cas aussi, le Core Parking est réglé à 10%. L'impact n'est cependant pas le même. Et cela tient à deux facteurs selon nous.

  • Le principe du SMT et de l'HyperThreading est que l'on a deux threads logiques pour un coeur physique. Réveiller un coeur lorsque le SMT est actif veut dire, en pratique, en réveiller deux.
  • Le principe du Core Parking est de privilégier les coeurs déjà réveillés avant d'en activer d'autres

On voit donc assez facilement la différence : lorsque le SMT est actif, le scheduler Windows va tenter d'empiler les threads sur les coeurs disponibles, ce qui veut dire risquer de saturer les deux threads logiques d'un même coeur. A l'inverse, si le SMT est désactivé, Windows n'active et ne désactive que des coeurs indépendants, et l'impact disparaît.

Cela explique aussi pourquoi AMD a suggéré juste avant le lancement d'utiliser le mode "High Performance", même si sa raison n'était pas la bonne. Reste la question principale : les performances suivent-elles ?


Oui... Et c'est même légèrement mieux puisque dans Project Cars, on retombe sur des performances proches du mode SMT désactivé, contrairement au mode Performance. Trois jeux dénotent : Total War Warhammer en version 1.5.0 (la version 1.6.0 corrige le tir), F1 2016 dont nous savons désormais qu'il ne détectait pas correctement le SMT sur Ryzen, et Watch Dogs 2.

L'écart de performances noté sous TotalWar Warhammer et Watch Dogs 2 reste par contre présent.

En résumé

Nous comprenons désormais un peu mieux pourquoi AMD met en avant la question du mode "High Performance" sous Windows 10 : un réglage trop agressif du Core Parking de Windows par défaut sur Ryzen provoque une perte de performances dans les jeux.

Cela ne compense pas l'intégralité du déficit de performances que nous avons constaté entre le mode SMT actif et inactif, mais une bonne partie.

En attendant un patch de Windows, les possesseurs de Ryzen pourront tout simplement rester en mode Balanced pour profiter des modes d'économies d'énergie, en désactivant simplement le Core Parking. Le logiciel Park Control  permet de le faire simplement.

Reste que l'on ne peut pas s'empêcher de se dire qu'AMD a clairement eu un gros raté sur sa communication. En annonçant un argument inexact, puis le bon avant de revenir encore dessus, AMD ne s'est pas facilité la vie, et n'a pas facilité la notre en nous obligeant à déchiffrer leur communication.

Afin de vous proposer les résultats les plus équitables possibles, nous avons ajouté dans les pages jeux les résultats du Ryzen 7 1800X avec le Core Parking désactivé. Nous avons également supprimé les scores en SMT Off pour plus de lisibilité.

Vos réactions

Top articles