Ça n’est un secret pour personne, dans les processeurs modernes, c’est un sacré bordel. Agencer ensemble des dizaines de milliards de transistors n’est pas une mince affaire, si bien que des bugs se frayent parfois un chemin jusqu’au design final. Nous pouvons par exemple citer les extensions de mémoire transactionnel d’Intel, nommées TSX, buggées sur Skylake, ou encore le Loop Buffer qui s’est également retrouvés mis hors d’état de nuire sur cette même génération du fait de soucis de compatibilité avec l’Hyper-Threading sur des boucles courtes.
Hé bien, ce composant n’a pas fini de faire parler de lui, puisqu’AMD se retrouve à son tour à le désactiver, cette fois-ci sur les processeurs de la génération Zen 4 — la seule à en être pourvu. Est-ce catastrophique ? Dans les faits, très peu. Ce composant se situe dans la partie nommée front-end du CPU, celle chargée de récupérer et décoder les instructions. Comme son nom l’indique, le Loop Buffer est chargé de traquer les instructions des boucles de petite taille sous une forme facilement compréhensible par le processeur, évitant ainsi de redécoder et d’encombrer d’autres unités.
Si cela est bien beau sur papier, la chose est assez différente en pratique. D’une part parce que le bousin est peu documenté (seul un compteur de performance documente la chose dans l’entièreté des manuels d’optimisation de la firme), et que, selon AMD, l’optimisation permet surtout aux CPU de moins consommer dans certains cas bien spécifiques (et non d’augmenter directement ses performances). D’autre part parce que, comme nous vous le rapportions en introduction, les rouges ont silencieusement désactivé le composant quelque part entre l’AGESA 1.0.0.6 et la 1.2.0.2a.
Cela n’est pas suffisant pour nos confrères de Chips and Cheese, qui ont fait tourner quelques benchmarks pour se rendre compte de l’impact de la chose, et le couperet et tombé : sur SPEC CPU2017, les performances étaient en baisses de moins de 1 %, en monothread comme en multicœur. Sur Cyberpunk 2077, le constat est plus tranché avec des pertes allant jusqu’à 5 % de FPS en moins dans le cas où le jeu tourne sur un die dépourvu de 3D V-Cache (avec les performances sont quasi indiscernables), un chiffre explicable par le fait que le jeu tire en moyenne près de 22 % de ses instructions du buffer, lorsqu’il est actif. Néanmoins, dans la majorité des cas, le buffer global des instructions décodées (Op-Cache) est amplement suffisant pour nourrir le CPU en instructions, ce qui explique probablement le choix d’AMD de laisser glisser la chose sous la table. Quant à la raison première de la désactivation, difficile de penser à autre chose qu’un bug matériel, particulièrement vue l’ancienneté des processeurs impactés ! (Source : Chips and Cheese)
J'adore site qui sert de source les articles sont ultra complet
Il n'y a pas une erreur ? J'ai lu l'article et je pense que les 5% de fps perdu c'est quand le jeu tourne sur le cpu sans 3d vcache car avec il n'y a pas de perte
Wè.
Par contre si j'ai bien suivi l'article il serait GPU limited et il y aurait quand même une perte en 3D Vcache (1.25 IPC contre 1.07 sans le loop buffer).
Moi mauvais, c'est ce qui aurait eu du sens... Mais non, c'est bien la version sans V-Cache qui se retrouve ralentie. Mystère !
Par contre attention à l'IPC, ça peut être une mesure extrêmement trompeuse suivant ce qui est calculé, particulièrement dans des programmes multithreadés et avec le SMT activé :-).