Que ce soit à suite aux maigres annonces d'Intel au Computex ou aux fuites provenant de chez Dell concernant la dixième génération de processeurs bleue, vous avez été nombreux à être surpris (et à nous interroger !) sur un chiffre martelé par Intel : une augmentation de l'IPC de 18% par rapport à un "SKL Core".

 

Pour bien comprendre ce que cela signifie, revenons aux fondamentaux : l'IPC est le nombre d'instructions effectuées par cycles. Si, dans les débuts de l'informatique, chaque instruction prenait un cycle, le fonctionnement Out-of-Order permet de décomposer les instructions x86 complexes en micro-opérations élémentaires que le processeur peut réordonner en fonction des ressources disponibles, mais surtout traiter comme bon lui semble, ce qui se traduit par du parallélisme : plusieurs morceaux de plusieurs instructions sont exécutés en même temps. Pour quantifier l'efficacité d'un processeur à cette tâche, une nouvelle métrique a vu le jour : l'IPC, ou Instruction Par Cycle. Il est possible de la calculer - en interne chez Intel, le nombre de cycles de chaque instruction est connu et les capacités du processeur également - mais seulement pour les pires et meilleurs cas : pas terrible !

 

intel computex 2019 sunny cove ipc 650Le slide en question

 

Et puisque la théorie n'est pas toujours au rendez-vous, les programmes ayant des suites d'instructions qui ne sont ni les meilleures ni les pires pour le CPU, il faut mesurer. Mais l'IPC est une donnée architecturale, c'est-à-dire qu'elle n'est pas liée à la fréquence d'horloge. Pour schématiser, un i7 à 2,0 GHz avec un IPC de 2 exécute un programme de 4 milliards d'instructions en une seconde (4 Md d'instructions / (2.0 Md de cycles par s * 2 IPC) = 1 s), et ce même processeur à 4,0 GHz réalisera la même opération en une demi-seconde, car un cycle prendra alors deux fois moins de temps (4 Md d'instructions / (4.0 Md de cycles par s * 2 IPC) = 0,5 s). Tout cela en supposant que les autres composants (disques, RAM, cache L3) qui se sont pas synchronisés sur la fréquence principale, suivent. L'IPC n'a alors pas de raison de changer, puisqu'elle est liée à l'agencement interne de la puce, et que celui-ci n'est pas modifié en changeant la fréquence (il faut pour cela... graver une nouvelle puce !). Pour revenir à notre mesure, le principe consiste à noter le temps et le nombre d'instructions effectuées au total durant un benchmark monocœur, et bloquer la fréquence (si possible à une valeur basse pour éviter tout throttling qui rendrait le résultat faux) pour utiliser la formule IPC = nb_instructions / (fréquence * temps_execution).

 

skl vs sunnycove t [cliquer pour agrandir]

L'agencement interne de Skylake, contre Sunny Cove (réminiscence de l'Intel Architecture Day)

 

C'est bien beau de vous avoir barbé avec tout ça, mais quel est le rapport avec la choucroute ? Si vous ne l'avez pas senti venir, les deux dernières générations d'Intel (Kaby Lake et Coffee Lake) n'ont pas vu de modification de la microarchitecture : celle utilisée est toujours... Skylake. D'où l'appellation "SKL Core" dans la présentation : un "CFL Core" n'existe en fait pas (ou est identique à un SKL Core). Il en résulte que les 18% d'IPC sont par rapport au CPU que vous voulez, tant que c'est une des trois dernières générations !

 

Si la configuration de test est du plus difficile à trouver (le site renvoyé en bas de slide semble présenter un tas de machines qui semble dater du lancement de la 8ème génération), il est possible que les protections contre les dernières failles de sécurités ne soient pas actives. Qu'est-ce que cela change ? Les programmes exécutés seront plus lents, mais parce qu'ils seront constitués de davantage d'instructions (on rajoute celles vidant le cache pour éviter les lectures non autorisées par exemple). Or ces instructions sont très souvent coûteuses en cycles, ce qui fait baisser l'IPC. Puisque Ice Lake intègre des correctifs en hardware, ces instructions ne sont jamais présentes pour son test... Autant dire qu'Intel a tout intérêt à présenter un Skylake corrigé (et donc ralenti au possible) face à son nouveau bébé. Est-ce pour cela que les 18% seront au rendez-vous pour les utilisateurs ? Bien sûr que non, la simple utilisation d'une moyenne géométrique sur les benchmarks, technique retournant une valeur systématiquement supérieure à notre bonne vieille moyenne (arithmétique) en est un bon indicateur.

 

Néanmoins, les modifications instaurées par Sunny Cove (passage à 48 ko de L1D, doublement du L2, élargissement du pipeline et ajout d'unités de calcul) sont autant d'indices pointant vers un IPC particulièrement meilleur sur cette génération. Encore faut-il que les fréquences suivent, car un IPC démentiel n'est rien si votre bouzin tourne à 50 MHz !

 18% d'IPC, ça semble beaucoup ! Mais qu'est-ce que cela signifie en pratique ? Être ou ne pas être IPC, telle est la question ! 

Sur le comptoir, au même sujet

 
 
 
 
 

afficher plus de prixAffichez donc moi tout, nom de nom

Plus d'infos avec le comptoir de l'info

Voir plus de news
Les 19 Ragots
   
Les ragots sont actuellement
ouverts à tous, c'est open bar !