SMT et Hyperthreading expliqués : ce que le multithreading apporte vraiment au jeu et à la productivité

Le Simultaneous Multithreading (SMT) — commercialisé sous le nom d'Hyper-Threading chez Intel, simplement appelé SMT chez AMD — est l'une des spécifications les plus mal comprises sur une boîte de processeur. Il est souvent traité comme un simple doublement du nombre de cœurs, ce qu'il n'est pas, et cette incompréhension conduit à de véritables erreurs d'achat. Cet article explique ce que le SMT/Hyper-Threading fait réellement au niveau matériel, où il aide, où il n'apporte rien, et où il peut occasionnellement nuire.
Ce qui se passe réellement dans le cœur
Un cœur physique de CPU possède plusieurs unités d'exécution internes — pour le calcul entier, le calcul en virgule flottante, les accès mémoire (lecture/écriture) et la prédiction de branchement — et en fonctionnement mono-thread normal, une grande partie de ces unités reste inactive à tout instant donné, car un seul flux d'instructions ne peut pas toutes les occuper simultanément. Le SMT permet au cœur de se présenter au système d'exploitation comme deux processeurs logiques, chacun capable de planifier des instructions vers les unités d'exécution actuellement libres. Le cœur lui-même n'est pas dupliqué — il n'y a toujours qu'un seul jeu d'unités d'exécution, un seul cache L1, un seul jeu de registres physiques (même si les fichiers de registres sont généralement partitionnés ou dupliqués pour les deux threads) — mais deux flux d'instructions indépendants se disputent désormais ce matériel partagé sur les mêmes cycles d'horloge.
C'est fondamentalement différent de deux cœurs réels. Deux vrais cœurs disposent chacun de leur propre jeu complet et dédié de ressources d'exécution. Deux threads SMT sur un seul cœur partagent un unique jeu de ressources et ne bénéficient d'un gain que lorsque les temps morts d'un thread coïncident avec la demande de l'autre. En pratique, cela donne généralement un gain de débit combiné pour la paire de threads compris entre 15 % et 30 % par rapport à un seul thread sur ce cœur — bien loin des 100 % qu'apporterait un véritable second cœur.
Pourquoi le jeu vidéo y est à peine sensible
La plupart des moteurs de jeu sont construits autour d'une poignée de threads fortement chargés — typiquement un thread principal de rendu/logique plus quelques threads de support pour la physique, l'audio et le streaming d'assets — plutôt qu'autour de dizaines de threads uniformément chargés. Ces quelques threads critiques veulent quasiment monopoliser les ressources d'exécution d'un cœur ; quand le SMT place un second thread sur le même cœur, celui-ci entre en concurrence pour l'espace de cache et les ports d'exécution avec un thread dont le jeu a réellement besoin qu'il reste rapide, ce qui peut provoquer du microbégaiement plutôt qu'une accélération nette. C'est exactement pour cela que les CPU gaming haut de gamme, à tous les niveaux de prix, sont spécifiés au moins autant par leur fréquence par cœur et la taille de leur cache que par leur nombre total de threads — notre comparatif nombre de cœurs contre fréquence traite ce compromis en prenant l'Intel Core i9-14900K et l'AMD Ryzen 9 7950X comme références.
Sur le i9-14900K en particulier, l'Hyper-Threading ne s'applique qu'aux huit cœurs Performance ; les seize cœurs Efficiency sont mono-thread par conception, puisque leur vocation entière est le débit parallèle/d'arrière-plan plutôt que le travail mono-thread sensible à la latence. Cela donne 32 threads logiques au total (8×2 + 16) pour 24 cœurs physiques — un détail qui piège beaucoup d'acheteurs qui supposent que "32 threads" signifie 32 cœurs également capables.
Où le SMT justifie vraiment sa présence
Les charges de travail qui génèrent de nombreux threads indépendants, de poids à peu près égal, sont là où le SMT montre sa vraie valeur : encodage/transcodage vidéo, rendu 3D (Blender, V-Ray, Corona), compilation de code sur de gros projets, simulation scientifique/numérique et virtualisation avec plusieurs instances d'OS invités simultanées. Ces charges de travail disposent de bien plus de travail parallèle disponible qu'il n'y a de cœurs physiques, donc combler les temps morts d'exécution avec un second thread logique par cœur se traduit presque directement par des temps de traitement plus courts. Le Ryzen 9 7950X, avec le SMT activé sur ses seize cœurs physiques pour un total de 32 threads, est explicitement conçu pour ce type de charge de travail — c'est un bien meilleur choix qu'une puce orientée jeu à prix comparable pour quiconque fait régulièrement de l'export vidéo ou du rendu 3D.
Les rares cas où le désactiver aide
Un petit nombre de charges de travail sensibles à la latence et fortement optimisées — certains titres esport compétitifs, certaines chaînes de production audio et des scénarios de benchmark spécifiques — tournent parfois légèrement plus vite avec le SMT désactivé dans le BIOS, car l'ordonnanceur du système d'exploitation peut sinon placer un thread d'arrière-plan sur le cœur logique jumeau du thread critique de votre jeu et créer une contention indésirable. Cet effet reste généralement sous les 5 % et dépend fortement du titre, ce n'est donc pas quelque chose à rechercher pour lui-même ; cela concerne surtout les passionnés déjà engagés dans le réglage fin d'une configuration compétitive spécifique, pas une recommandation générale.
La note de sécurité à connaître
Les ressources d'exécution partagées du SMT ont aussi été la cause première de plusieurs vulnérabilités par canal auxiliaire (side-channel) divulguées ces dernières années, car deux threads partageant cache et ports d'exécution peuvent, dans des conditions spécifiquement construites, laisser fuiter des informations temporelles sur ce que fait l'autre thread. Les environnements serveur et de virtualisation exécutant des charges de travail non fiables de plusieurs locataires sur le même matériel physique désactivent parfois complètement le SMT en guise de mitigation, échangeant le gain de débit contre une garantie d'isolation plus forte entre charges de travail. C'est essentiellement un non-problème pour un PC de bureau ou de jeu mono-utilisateur classique où chaque thread appartient à la même personne, mais cela explique en partie pourquoi certains réglages BIOS orientés serveur livrent le SMT désactivé par défaut, alors que chaque puce de bureau grand public l'active par défaut.
Conseils d'achat pratiques
Si votre usage est très majoritairement le jeu, privilégiez la fréquence par cœur, la taille du cache (en particulier les variantes 3D V-Cache) et une solide poignée de cœurs physiques plutôt que le nombre brut de threads — une puce 8 cœurs/16 threads à hautes fréquences bat généralement une puce 16 cœurs/32 threads à fréquences plus basses dans la plupart des jeux. Si votre usage inclut du rendu, de l'encodage ou de la compilation régulièrement, le nombre de threads devient directement pertinent, et une puce à nombre élevé de cœurs physiques avec SMT activé partout est le meilleur investissement. Ne vous laissez pas influencer par le seul marketing du nombre de threads — vérifiez toujours quelle part des threads annoncés d'une puce provient de vrais cœurs et quelle part vient du doublement SMT, et adaptez cela à ce que vous faites réellement au quotidien avec la machine.