17

У некоторых биосов нет опции отключения Hyperthreading процессора, есть ли способ отключить его в реестре Windows 7? Или инструмент или программное обеспечение?

Я знаю о загрузочной вкладке msconfig (дополнительные параметры) и отключении там процессоров, не уверен, отключает ли она полные ядра или гиперпотоки, или как сказать.

32-битная или 64-битная Windows 7

РЕДАКТИРОВАТЬ:

Предположим, что это двухъядерный или более с гиперпоточностью.

В диспетчере устройств он показывает 4 процессора на моем процессоре Intel i5 Intel, и вы также не можете отключить их, черт возьми.

3 ответа3

3

Из таблицы технических характеристик Intel Core, том 1, стр. 38:

Технология Intel Hyper-Threading

[...] Эта функция должна быть включена с использованием BIOS и требует поддержки операционной системы.

Это происходит потому , что гиперпотоковой является актуальной физической аппаратной на кристалле процессора, и , таким образом , может быть включен / отключен только на аппаратном уровне.

Если вы знаете, какое приложение плохо работает с гиперпоточностью, вы можете использовать такой инструмент, как StartAffinity, если у вас есть XP.

Если вы используете Windows 7, есть встроенная команда start которая может сделать это. Используйте следующую команду для запуска процесса с определенной привязкой к процессору (опять же, аргумент /AFFINITY был добавлен только в Windows 7):

start /AFFINITY <mask> "C:\yourprogram.exe" 

Где <mask> должна быть заменена шестнадцатеричной маской для процессоров, которые вы хотите запустить (маска процессора - это просто двоичная маска, включающая / отключающая эту привязку, поэтому 00000101 включает CPU0 и CPU2, а 00000010 включает только CPU1).

Чтобы вычислить шестнадцатеричное значение, вы можете либо преобразовать двоичную маску, либо взять сумму 2 в степень ядер, на которых вы хотите запустить программу (начиная с 0), и преобразовать это значение в шестнадцатеричное.

Например, если у меня есть четырехъядерная система, и я хочу, чтобы процесс выполнялся только на CPU0 и CPU2, я бы добавил 2 0 + 2 2 = 1 + 4 = 5. Преобразуйте 5 в шестнадцатеричный код, что составляет всего 5, и установите его в качестве <mask> . Вы также можете просто конвертировать 00000101 в гекс. Если вы не знаете, как конвертировать эти базы, вы можете просто использовать эту таблицу преобразования .

2

Отключение Hyper-Threading - дело только в BIOS.

Я предполагаю, что вы хотели бы отключить Hyper-Threading, потому что у вас есть приложение, которое не оптимизировано для этой функции и может снизить производительность?

Если посмотреть на нумерацию ЦП, то физические ядра имеют нечетную нумерацию, поэтому в двухъядерной системе HT ядра 1 и 3 будут "настоящими" ЦП. Если вы выберете 2 ядра в msconfig, то процессоры 1 и 2 будут включены, поэтому у вас будет активен физический и логический (HT) процессор - это не поможет вам, если у вас есть проблемы с программным обеспечением, имеющим проблемы с HT.

0

В Windows наиболее простым способом является изменение сродства explorer.exe, поскольку каждый запущенный из этого процесс наследует маску сродства. Это все еще далеко от совершенства, но, по крайней мере, вы делаете это только один раз за сеанс.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .