Beaucoup de processeurs d’ordinateur grand public modernes utilisent le simultaneous multithreading (SMT), une technologie qui date des années 1960 mais qui est apparue dans les processeurs grand public fin 2002, avec le Pentium 4 HT à 3.06 GHz. En simplifiant, elle permet à un cœur d’exécution du processeur de traiter simultanément plusieurs (2 dans les implémentations grand public) programmes en parallèle. Intel a appelé son implémentation cette technologie « HyperThreading ».
Donc si votre processeur affiche « 2 cœurs / 4 threads », votre système d’exploitation va voir 4 processeurs, alors que le processeur ne possède réellement que 2 cœurs d’exécution.
Et on arrive à la grande question :
Quelle est la performance réelle de ce processeur ? (nonobstant les effets de changements de fréquence dus à la différence de charge).
« 4 fois la performance d’un cœur seul », pensera sans doute le lecteur peu averti.
Et c’est là le drame :
Le gain en performances du SMT est de… 0 à 40 %, avec un gain moyen de 25 % (+22,5 % chez Intel, +28 % chez AMD).
Toujours en ignorant les variations de fréquence et autres effets de bord, voici la conversion en cœurs équivalents réels de la performance de différents processeurs « grand public » actuels. La performance idéale serait celle d’un SMT efficace à +100 %, et donc la puissance perçue par l’acheteur moyen. Les cœurs « perdus » sont l’équivalent des cœurs visibles par l’OS mais qui n’apportent rien en terme de performances réelle, comme s’ils n’étaient pas là mais que tous les processeurs virtuels étaient efficaces à 100 %.
Cœurs | Threads | Idéale | Min | Moyenne (Intel/AMD) | Max | Cœurs « perdus » | Modèles |
---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2,0/- | 2,0 | 0,0/- | Pentium (sauf doutes dernières séries), Celeron |
2 | 4 | 4 | 2 | 2,4/- | 2,8 | 1,6/- | Pentium (toutes dernières séries), Core i3, Core i5 et Core i7 basse consommation |
4 | 4 | 4 | 4 | 4,0/4,0 | 4,0 | 0,0/0,0 | Certains Celeron, Core i5, Ryzen 3 |
4 | 8 | 8 | 4 | 4,9/5,1 | 5,6 | 3,1/2,9 | Core i7, Ryzen 5 1400/1500X |
6 | 12 | 12 | 6 | 7,3/7,7 | 8,4 | 4,7/4,3 | Core i7, Ryzen 5 1600/1600X |
8 | 16 | 16 | 8 | 9,8/10,2 | 11,2 | 6,2/5,8 | Core i7 Extreme Edition, Ryzen 7, Threadripper 1900X |
10 | 20 | 20 | 10 | 12,2/- | 14 | 7,8/- | Core i7 Extreme Edition |
12 | 24 | 24 | 12 | -/15,4 | 16,8 | -/8,6 | Threadripper 1920X |
16 | 32 | 32 | 16 | -/20,5 | 22,4 | -/11,5 | Threadripper 1950X |
En prime, ce tableau nous montre que la gamme « Core i7 » d’Intel contient des processeurs qui n’ont absolument rien à voir les uns avec les autres, si ce n’est qu’ils sont tous très chers !
Ajoutons à ça qu’en réalité :
- Une application ne tirera pas toujours partie correctement des cœurs supplémentaires – même si c’est de moins en mois le cas, les jeux en particuliers sont maintenant capables d’utiliser bien plus de 1 ou 2 cœurs.
- Plus il y a de cœurs chargés, plus la fréquence du processeur baisse (selon des métriques assez complexes, surtout sur un PC portable où ça dépend beaucoup de la qualité du système de refroidissement).
- Selon les applications, ajouter un cœur supplémentaire, même s’il est utilisé à 100 % lui aussi, ne va pas forcément faire l’équivalent de +1 cœur en terme de performances. C’est la notion de « scalabilité », je sais que Hardware.fr avait fait un test là-dessus mais je ne retrouve plus de lien.
- Il existe des cas pathologiques dans lesquels le fait d’avoir le SMT activé diminue les performances d’un programme.
Si vous manquez de puissance, attention avant d’acheter un nouveau processeur, peut-être qu’il ne vous servira à rien. En particulier, passer de X cœurs sans SMT à X cœurs avec SMT n’apportera probablement pas grand-chose.