Windows 11 : une mise à jour pour améliorer les perfs des CPU Ryzen, de Zen 3 à 5
Le 29 août à 10h15
2 min
Hardware
Les nouveaux CPU exploitant l’architecture Zen 5 sont disponibles depuis peu. Suite à la publication des premiers résultats parfois un peu décevants, AMD était sorti du bois : « la communauté nous a dit qu’elle attendait, à juste titre, des performances de jeu encore plus élevées avec la série Ryzen 9000 ».
AMD avance plusieurs explications (protocoles de test, choix des jeux, configuration utilisée…) concernant les différences, mais précise aussi que sa nouvelle architecture « intègre une capacité en prédiction de branches plus large que les générations "Zen" précédentes ».
Le fabricant indiquait au passage qu’une mise à jour serait proposée avec Windows 11 24H2, soit la prochaine version majeure à venir du système d’exploitation. AMD revendiquait des hausses de performances pouvant atteindre 13 % sur Far Cry 6.
Si l’architecture Zen 5 sera la principale à en profiter, « cette mise à jour de Windows améliorera également les performances de "Zen 4" et "Zen 3" » affirmait AMD, mais dans une moindre mesure évidemment.
Les utilisateurs de la version actuelle de Windows 11 sur le canal stable, la 23H2, devaient donc attendre. Mais AMD a finalement ouvert les vannes : « Les optimisations sont désormais disponibles pour tous les utilisateurs de Windows 11 via une mise à jour facultative », la KB5041587.
Plusieurs de nos confrères se sont évidemment lancés dans des tests pour comparer les résultats. HardwareLUXX voit une hausse des performances jusqu’à 24,5 %, mais aussi parfois une petite baisse. Chez Hardware Unboxed, il ne semble y avoir que des hausses.
Le 29 août à 10h15
Commentaires (19)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 29/08/2024 à 11h21
#1
Le 29/08/2024 à 11h21
#2
Le 29/08/2024 à 13h07
#2.1
Le 29/08/2024 à 13h35
#3
Le 29/08/2024 à 15h59
#3.1
Exemple: a = a + 1; si a = b alors c = c + 1
Le processeur peut commencer c=c+1 avant même d'atteindre la comparaison s'il considère que ça l'arrange.
Ca s'applique bien sur le prefetch, mais pas forcément sur toute la longueur (schématiquement quand le "si" est l'avant-avant dernière instruction, on s'en préoccupe). Et je ne sais pas si il s'applique sur des instructions x86 ou sur les micro opérations générées.
Par contre j'ai du mal à admettre qu'un mise à jour permette de débloquer autant de perf sur de l'optimisation pour le CPU sur un OS.
Que TOUT recompiler en mode Zen5 augmente les perfs, je n'en doute pas. Que certains point précis touchés par cette màj débloque 10%, je n'en reviens pas (bon, à voir la taille de la màj).
Par ailleurs, quel impact pour les autres archis?
Le 29/08/2024 à 17h29
#3.1.1
Comme toi, je suis curieuse de connaître plus de détails sur ce point de comment MS a géré ça.
Par contre 10% ne me choque pas dans la mesure où j'ai du vu ce genre de gain si tu aides le compilateur a gérer plus finement une prédiction, soit en l'écrivant de sorte à favoriser le cas le plus probable soit en faisant en sorte (à la main, en aidant le compilo) à utiliser du conditional-move.
Le 29/08/2024 à 18h21
#3.1.2
Le 29/08/2024 à 19h37
#3.1.3
Un exemple parmi d'autres (mais pour c'est pour l'idée).
Imagine une fonction qui vérifie qu'une page mémoire existe. Tu veux évidemment gérer le cas où la page mémoire n'existe pas. On peut s'attendre à un truc du genre:
//Du code ici
if (mypage==NULL)
return -1;
//Du code là
Le truc, c'est comment le compilateur va le gérer. Par exemple, GCC tant à considérer que la 1er condition est celle qui est, par défaut, la plus probable. Ainsi, GCC va supposer que c'est très souvent le cas (en pratique ce n'est pas le cas, c'est une situation exceptionnelle donc improbable) et va mettre le code en conséquence. Sauf que voilà, le prédicat de branchement va suivre le truc et vite comprendre qu'il s'est trompé entraînant (au niveau du kernel) un stall complet le temps de flusher le pipeline, de restaurer les registres et de repartir sur des bases saines.
Si maintenant, tu réécris ce code pour faire comprendre au compilo c'est un cas improbable le prédicat de branchement va parier sur le fait que la condition est toujours fausse et que donc il peut passer cette étape enchaîné la suite. Ce qui dans la majorité des cas est vrai et donc gain en vitesse car ton prédicat de branchement est ok.
Avec des processeurs dont la largeur du décodeur augmente (8-way pour le Zen 5 et il peut fonctionner en 2x4-way en SMT), des registres d'entrées plus nombreux et un plus grands nombres de registres, il est clair qu'un échec de prédiction est clairement plus significatif en coût.
Zen 5 changeant la donne sur la partie prédicat de branchement, il est probable que ce genre de non-optimisations est devenue plus voyant, forçant MS à agir.
Le 29/08/2024 à 23h51
#3.1.4
Le 30/08/2024 à 07h30
#3.1.5
Mon propos, c'est que qu'un patch niveau OS permette 10% de gain, il faut déjà passer pas mal de temps dans l'OS - et c'est ce qui m'étonne. Ou alors ils ont optimisé directX dans ce patch. Mais ça n'explique pas les gain ailleurs.
Ca ressemble du coup plus à un patch "scheduler" je trouve.
Je trouve que dire que de réduire ce patch à une meilleure considération vis-à-vis de la prédiction de branches au fin fond du CPU, c'est montrer un arbre qui cache la forêt, non?
Le 30/08/2024 à 10h34
#3.1.6
Il s'agit donc du micro-code AMD, pas du code de Windows lui même. Cela augmente donc les perfs de tous les logiciels qui tournent.
Le 30/08/2024 à 11h46
#3.1.7
Je n'avais pas réalisé que Ms pouvait fournir des microcodes adaptés.
Le 30/08/2024 à 12h55
#3.1.8
Le 30/08/2024 à 13h41
#3.1.9
J'ai essayé la transcription, mais c'est assez compliqué. Néanmoins, j'ai compris que le monsieur a remarqué que l'intégrité mémoire n'était pas activée par défaut sur la future 24H2. Je pense que c'est temporaire parce que ce serait un énorme revirement de la part de Microsoft d'affaiblir la sécurité par défaut. On a encore eu un article ici qui disait que le patron de Microsoft demandait de privilégier la sécurité dans les choix fait par ses employés.
Que cette désactivation augment les perfs, c'est assez normal. Que l'annonce d'AMD concerne ce point au niveau de l'augmentation de perf, j'ai un doute puisqu'ils disent explicitement avoir apporté des améliorations à cette prédiction de branche et que c'est elle qui apporte de meilleurs perfs. Je pense qu'ils savent faire des tests en ne modifiant pas 2 paramètres en même temps pour annoncer leurs meilleures perfs.
Le 30/08/2024 à 17h00
#3.1.10
Donc pour le coup amd a publié juste et c'est la preview de windows 24h2 qui ajoute un gain important de perf en désactivant l'intégrité mémoire. En checkant sur mes pc elle est aussi désactivé sans que je l'ai désactivée moi après j'ai fait des migration depuis 10 et non des install propre de 11 donc n'est pas forcément représentatif.
Ensuite ils ont aussi testé avec la kb en restant sous 23H2 avec l'intégrité mémoire active et les perfs sont parfois meilleures avec la kb qu'avec windows 24H2 avec l'intégrité mémoire d'active. Il y a aussi plein de cas ou il n'y a aucun gain voir une régression avec la 24H2 avec l'intégrité mémoire active donc c'est pas un bon plan pour le moment de mettre la 24H2 en gros.
Le 29/08/2024 à 13h47
#4
Le 29/08/2024 à 14h55
#4.1
Le 29/08/2024 à 18h17
#5
Le 31/08/2024 à 20h31
#6