Certains bios n'ont pas la possibilité de désactiver l'hyperthreading du processeur, y a-t-il un moyen de le désactiver dans le registre Windows 7? Ou un outil ou un logiciel?
Je connais l'onglet de démarrage msconfig (options avancées) et la désactivation des processeurs là-bas, je ne sais pas s'il désactive les cœurs complets ou les hyperthreads, ou comment le dire.
Windows 7 32 bits ou 64 bits
ÉDITER:
Supposons qu'il s'agit d'un dual core ou plus avec hyperthreading.
Dans le Gestionnaire de périphériques, il affiche 4 processeurs sur mon processeur Intel i5, et vous ne pouvez pas non plus les désactiver, dang.
Réponses:
À partir de la fiche technique du processeur Intel Core, volume 1 , page 38:
En effet, l'hyperthreading est un matériel physique réel sur la puce du processeur et peut donc être activé / désactivé uniquement au niveau matériel .
Si vous savez quelle application ne fonctionne pas bien avec l'hyperthreading, vous pouvez utiliser un outil comme StartAffinity si vous avez XP.
Si vous utilisez Windows 7, une
start
commande intégrée peut le faire. Utilisez la commande suivante pour lancer un processus avec une affinité de processeur particulière (encore une fois, l'/AFFINITY
argument n'a été ajouté que dans Windows 7):Où
<mask>
doit être remplacé par le masque hexadécimal pour les processeurs que vous souhaitez exécuter (le masque de processeur est juste un masque binaire activant / désactivant cette affinité, donc 00000101 active CPU0 et CPU2, et 00000010 active uniquement CPU1).Pour calculer la valeur hexadécimale, vous pouvez soit convertir le masque binaire, soit prendre la somme de 2 à la puissance des cœurs sur lesquels vous souhaitez exécuter le programme (à partir de 0), et convertir cette valeur en hexadécimal.
Par exemple, si j'ai un système à quatre cœurs et que je souhaite uniquement que le processus s'exécute sur CPU0 et CPU2, j'ajouterais 2 0 + 2 2 = 1 + 4 = 5. Convertissez 5 en hexadécimal, ce qui n'est que 5, et définissez cela comme votre
<mask>
. Vous pouvez également convertir simplement 00000101 en hexadécimal. Si vous ne savez pas comment convertir ces bases, vous pouvez simplement utiliser cette table de conversion .la source
La désactivation de l'hyper-threading est une affaire réservée au BIOS.
Je suppose que vous souhaitez désactiver l'hyper-threading parce que vous avez une application qui n'est pas optimisée pour cette fonctionnalité et peut avoir des performances réduites?
En ce qui concerne la numérotation des CPU, les cœurs physiques sont impairs - donc dans un système HT à double cœur, les cœurs 1 et 3 seraient les "vrais" CPU. Si vous sélectionnez 2 cœurs dans msconfig, les processeurs 1 et 2 seraient activés pour que vous ayez un processeur physique et logique (HT) actif - cela ne vous serait pas avantageux si vous rencontrez des problèmes avec un logiciel qui a des problèmes avec HT.
la source
Sous Windows, le moyen le plus simple consiste à modifier l'affinité d'Explorer.exe, car chaque processus lancé à partir de celui-ci héritera du masque d'affinité. C'est encore loin d'être parfait mais au moins vous ne faites cela qu'une seule fois par session.
la source