У некоторых биосов нет опции отключения Hyperthreading процессора, есть ли способ отключить его в реестре Windows 7? Или инструмент или программное обеспечение?
Я знаю о загрузочной вкладке msconfig (дополнительные параметры) и отключении там процессоров, не уверен, отключает ли она полные ядра или гиперпотоки, или как сказать.
32-битная или 64-битная Windows 7
РЕДАКТИРОВАТЬ:
Предположим, что это двухъядерный или более с гиперпоточностью.
В диспетчере устройств он показывает 4 процессора на моем процессоре Intel i5, и их тоже нельзя отключить, черт побери.
Ответы:
От Техническое описание процессора Intel Core, том 1 , стр. 38:
Это связано с тем, что гиперпоточность является фактическим физическим оборудованием на кристалле ЦП и поэтому может быть включена / отключена. на аппаратном уровне только ,
Если вы знаете, какое приложение плохо работает с гиперпоточностью, вы можете использовать такой инструмент, как StartAffinity если у вас есть XP.
Если вы используете Windows 7, есть встроенный
start
Команда, которая может сделать это. Используйте следующую команду для запуска процесса с определенной привязкой к процессору (опять же,/AFFINITY
аргумент был добавлен только в Windows 7):куда
<mask>
следует заменить шестнадцатеричной маской для процессоров, которые вы хотите запустить (маска процессора - это просто двоичная маска, включающая / отключающая эту привязку, поэтому 00000101 включает CPU0 и CPU2, а 00000010 включает только CPU1).Чтобы вычислить шестнадцатеричное значение, вы можете преобразовать двоичную маску, или же возьмите сумму 2, равную мощности ядер, на которых вы хотите запустить программу (начиная с 0), и преобразуйте это значение в шестнадцатеричное.
Например, если у меня есть четырехъядерная система, и я хочу, чтобы процесс выполнялся только на CPU0 и CPU2, я бы добавил 2 0 + 2 2 = 1 + 4 = 5. Преобразуйте 5 в гекс, то есть всего 5, и установите это как
<mask>
, Вы также можете просто конвертировать 00000101 в гекс. Если вы не знаете, как конвертировать эти базы, вы можете просто использовать эта таблица преобразования ,источник
Отключение Hyper-Threading - дело только в BIOS.
Я предполагаю, что вы хотели бы отключить Hyper-Threading, потому что у вас есть приложение, которое не оптимизировано для этой функции и может снизить производительность?
Если посмотреть на нумерацию ЦП, то физические ядра имеют нечетную нумерацию, поэтому в двухъядерной системе HT ядра 1 и 3 будут «настоящими» ЦП. Если вы выберете 2 ядра в msconfig, то процессоры 1 и 2 будут включены, поэтому у вас будет активен физический и логический (HT) процессор - это не поможет вам, если у вас возникнут проблемы с программным обеспечением, имеющим проблемы с HT.
источник
В Windows наиболее простым способом является изменение сродства explorer.exe, поскольку каждый запущенный из этого процесс наследует маску сродства. Это все еще далеко от совершенства, но, по крайней мере, вы делаете это только один раз за сеанс.
источник