Как себя чувствует Intel без Hyper-Threading?
Как стало недавно известно, были обнаружены четыре новых аппаратных уязвимости, затрагивающие процессоры Intel. Эти новые «дыры» позволяют злоумышленникам получить доступ к данным пользователя, используя уязвимости стороннего канала – MDS (Microarchitectural Data Sampling), наиболее серьёзной из которых является, наверное, «ZombieLoad».
В отличие от предыдущих ошибок, основанных на спекулятивном исполнении команд, частично затронувших AMD и Arm-процессоры, ошибки MDS относятся исключительно к чипам Intel. Свести риск от этих уязвимостей можно не дожидаясь патчей и обновлений, отключив одновременную многопоточность (SMT), она же – «Hyper-Threading» у Intel.
В настоящее время Microsoft готовит обновление Windows 10 1903, которое призвано устранить четыре уязвимости MDS. Но полностью это проблему не решает, нужны также обновления в BIOS и, как сообщается, Intel уже выпустила новый микрокод для партнеров-производителей материнских плат. Однако на момент написания этой статьи не было выпущено ни одной новой версии BIOS. Мы решили протестировать худший вариант сценария, отключив Hyper-Threading. Это может оказаться единственным решением для старых компьютеров, поскольку вряд ли производители выпустят патчи для всех моделей.
Сегодня мы посмотрим, как влияет отключение Hyper-Threading на процессоры Intel, поддерживающие эту функцию. Мы уже делали это в прошлом, и это интересный тест, но теперь у нас есть повод взглянуть на результаты более критично, учитывая, что новая уязвимость безопасности в процессорах Intel связана с SMT.
Для теста мы выбрали процессоры Core i7-8700K и 7700K, протестировав их работу в ряде игр и приложений при включенной и отключенной функции Hyper-Threading. Восьмиядерный i9-9900K мы не стали брать, поскольку в нем недостающие потоки не приведут к потере производительности в играх, хотя в приложениях всё-таки соответствующее негативное влияние будет заметно в той же степени, как у 8700K и 7700K.
Если бы у нас было больше времени (мы сейчас готовимся к Computex 2019, так что следите за нашими обновлениями), мы бы хотели также протестировать некоторые двухъядерные процессоры Intel с поддержкой Hyper-Threading, поскольку в них влияние этой функции, несомненно, будет наиболее значительным. Хотя, можно обойтись результатами наших предыдущих тестов этой технологии.
Все тесты выполнялись на компьютере, оснащенном 32 ГБ памяти DDR4-3200, видеокартой GeForce RTX 2080 Ti (чтобы предотвратить боттлнеки на GPU) и Windows 10 build 1903. Игровые тесты проводились как в разрешении 1080p, так и в 1440p, но начнём мы с тестов приложений.
Тесты приложений
Прежде всего, мы получили результаты Cinebench R20 и, глядя на Core i7-8700K, видим снижение производительности на 24% при отключенной Hyper-Threading. Разумеется, такое снижение производительности не останется незамеченным. Более того, мы тем самым фактически превратили 8700K в 7700K по части производительности.
Между тем 7700K становится на 26% медленнее с отключенной Hyper-Threading, и теперь у нас есть старый четырехъядерник или Core i5 поколения Kaby Lake. Для приложений, которые активно используют все ядра, отключение SMT/Hyper-Threading сильно влияет на производительность.
WinRAR ощущает значительную потерю производительности – на 36% у 8700K. Очевидно, что Hyper-Threading отлично себя показывает в этом типе рабочей нагрузки. Столь же сильное падение мы видим и у 7700K – 39%.
Corona – высокопроизводительный рендер, и здесь 8700K показал снижение производительности на 31% при отключении Hyper-Threading, в то время как у 7700K – 33%. В обоих случаях снижение производительности велико, и это позволит нам оценить работу устраняющих уязвимость обновлений, при выполнении задач рендеринга и кодирования.
Blender также испытывает серьёзную потерю производительности при отключении Hyper-Threading, хоть и несколько меньше, чем Corona – на 25% для 8700K, т.е. примерно как Cinebench R20. Из-за меньшего количества ядер, 7700K страдает несколько больше, и здесь мы видим снижение производительности на 29%.
Потребляемая мощность
Прежде чем перейти к играм, мы бы хотели отметить общее энергопотребление системы. Да, мы не видим потребление отдельно процессоров, поэтому трудно что-то говорить об эффективности, но, как вы можете видеть, отключение Hyper-Threading на 8700K не приводит к весомой экономии энергии, уменьшая общее энергопотребление системы лишь на ~5%. В то же время отключение Hyper-Threading на 7700K приводит уже к 11% экономии энергии, и мы это связываем с тем, что четырёхядерный 7700K использует данную функцию более активно, чем шестиядерный 8700K.
Тестирование в играх
Начнём с результатов Assassin’s Creed: Odyssey на разрешении 1080p. На 8700K значение средней частоты кадров сократилось лишь на 13%, а минимальной (1%) – не изменилось. С другой стороны, 7700K показал значительное падение как средней частоты кадров, так и 1%-минимальной – 23% и 21% соответственно. Владельцы четырёхъядерных процессоров гораздо сильнее ощутят снижение производительности при отключении Hyper-Threading.
А теперь мы видим, что если на 1440p приоритет управления у вас берет на себя видеокарта, 8700K отлично справляется с отключенной функцией Hyper-Threading, как раз благодаря RTX 2080 Ti. Для четырехъядерных и, не дай бог, двухъядерных процессоров, любое ограничение Hyper-Threading приведет к потере производительности.
Battlefield V – весьма требовательная к ресурсам процессора игра, правда нам удалось протестировать только однопользовательский режим, да и то потребовалось два аккаунта Origin из-за системы блокировки аккаунтов при изменении конфигурации. Возвращаясь к теме, мы опять же не видим значительного снижения производительности здесь. Наибольший спад составил 12%, если смотреть на 1%-минимальное значение FPS у 7700K.
Увеличение разрешения до 1440p не улучшило ситуацию с минимальным FPS, и мы видим, что в обоих случаях отключение Hyper-Threading действительно снижает производительность, хотя этот разрыв уже не так велик, как при рабочих нагрузках.
У Division 2 результаты – жесть. Взгляните, как упала производительность у 7700K при отключении Hyper-Threading. Средняя частота кадров снижается на 37%, а минимальная 1% – на 38%, что близко к результатам, показанным WinRAR.
Да, влияние на производительность 6-ядерного 8700K не столь велико, но даже при этом падение минимального FPS на 13% большинство игроков не оценят. Переходим на 1440p, и теперь 8700K даже с отключенным Hyper-Threading не является фактором ограничения производительности, его теперь берёт на себя RTX 2080 Ti. Однако мы по-прежнему наблюдаем падение производительности на треть у 7700K, глядя на минимальный 1% FPS у него.
Небольшая ремарка. Far Cry New Dawn чувствует себя лучше на 9700K, чем на 8700K. Средняя частота кадров на 9700K достигает ~120 при 1080p. Но мы бы хотели заметить, что когда мы отключаем Hyper-Threading у 8700K, он соответствует 9700K в этом тесте, из чего следует, что количество потоков не идёт на пользу этой игре, так что 6 ядер/6 потоков для неё в целом более эффективен, чем 6 ядер/12 потоков. Но подобных игр очень немного.
Как видим, 7700K с меньшим количеством ядер не страдает такой проблемой при включении Hyper-Threading, хотя он всё-ж был чуточку быстрее с отключенным. Так что, это одна из немногих игр, для которых отключение Hyper-Threading вообще не проблема, и на самом деле идёт на пользу. При условии, если у вас не двухядерный процессор, конечно.
Переключаемся на 1440p, и видим, что количество ядер здесь вообще ничего не решает, а Hyper-Threading лишь замедляет оба процессора.
Далее у нас Hitman 2, и здесь мы видим, что отключение Hyper-Threading не оказывает существенного влияния на 8700K, однако для четырехъядерного 7700K оно сокрушительно. Средняя частота кадров снизилась на 18%, но гораздо хуже, что 1%-минимальный FPS упал почти на 30%. Конечно, мы все еще видим стабильные 60+ кадров в секунду, но для тех, кто любит большой FPS, такой удар по производительности является жёстким.
Даже переключение на 1440p не помогло 7700K справиться с этим ударом, так как мы все еще наблюдаем падение минимального FPS более чем на 25%.
Следующей игрой идёт Rage 2, где отключение Hyper-Threading практически не оказывает влияния на 8700K. У 7700K средняя частота кадров также почти не меняется, но зато минимальный 1% FPS падает весьма значительно – на 20%.
Стоит только увеличить разрешение до 1440p в Rage 2, и процессор перестаёт быть компонентом, ограничивающим производительность. По крайней мере, если смотреть на 7700K без Hyper-Threading. Так что в данном случае отключение Hyper-Threading не оказывает влияния на производительность.
Мы с вами уже убеждались ранее, насколько Shadow of the Tomb Raider может быть требовательным, и здесь мы в этом убедимся ещё раз. У 8700K наблюдаем падение среднего FPS на 10-12% при отключении Hyper-Threading, а у 7700K – вдвое большее, на 24%. Однако ухудшение значения минимального 1% FPS для обоих процессоров одинаковое. В любом случае отключение SMT оказывает сильное влияние на эту игру.
Даже при переходе на 1440p негативный эффект значительный, по крайней мере для 7700K. У 8700K все еще наблюдается небольшое снижение производительности, но это ничто по сравнению с 20%-м падением у 7700K.
Ну и напоследок – World War Z, использующая низкоуровневый API Vulkan. Эта игра прекрасно работает с 4 ядрами, поэтому ни один из процессоров не страдает при отключении Hyper-Threading. Нечто подобное мы видим и при разрешении 1440p, поскольку оба процессора способны извлечь максимальную производительность из RTX 2080 Ti.
Резюме
Мы теперь имеем неплохое представление о том, как 4- и 6-ядерные процессоры Intel работают с включенной Hyper-Threading по сравнению с отключенной. Если кратко, то производительность приложений при выполнении основных ресурсоемких операций обычно снижалась от 25 до 35%.
Влияние на производительность в играх может существенно различаться в зависимости от самой игры и других факторов, таких как разрешение, настройки графики и, конечно, установленная видеокарта. В тестируемых нами играх, 6-ядерный процессор Intel демонстрирует в основном минимальное влияние на свою производительность, хотя минимальный 1% FPS иногда заметно страдает, и при игре с высокой частотой обновления падение производительности будет весьма ощутимым.
Владельцы процессоров с топологией 8/16, таких как 9900K, практически не заметят никакого влияния Hyper-Threading во время игр, но падение производительности приложений по-прежнему будет сильным – на 25-35% без SMT. С другой стороны, наиболее существенное снижение производительности испытают на себе менее мощные процессоры, которые в гораздо большей степени полагаются на Hyper-Threading. Даже наш четырехъядерный 7700K зачастую демонстрировал значительную потерю производительности в игровых тестах, и это означает, что для владельцев двухъядерных процессоров с поддержкой SMT отключение Hyper-Threading будет еще более болезненным.
На данный момент трудно с уверенностью сказать, какое влияние на производительность окажут программные средства для смягчения риска от четырёх уязвимостей MDS на компьютерах под управлением Windows, но мы можем ожидать, что будут определенные потери, особенно там, где Hyper-Threading оказывает наибольшее влияние. Phoronix протестировал эти программные средства в Linux, и показатели потери производительности варьируются от незначительных до огромных. Кроме того, Phoronix обнаружил, что системы Intel теперь на ~16% медленнее, чем раньше, до установки программного смягчения воздействий Spectre, Meltdown, Foreshadow и Zombieload. В то время как системы AMD показали снижение производительности всего на 3%. Они также утверждают, что таких мер по уменьшению риска достаточно, чтобы приблизить Core i7-8700K к Ryzen 7 2700X и Core i9-7980XE к Threadripper 2990WX.
Если Intel не вытащит кролика из шляпы и не предоставит действительно эффективных программных решений, таких, чтобы можно было бы не отключать Hyper-Threading, то владельцев двух- и четырехъядерных процессоров Intel с поддержкой Hyper-Threading могут ожидать неутешительные последствия. В списке таких процессоров: Core i3 и Core i5 – от Clarkdale до Kaby Lake; все Core i7 вплоть до Kaby Lake; а также процессоры Kaby Lake и Coffee Lake семейства Pentium.
Тем, кто довольствуется более старым оборудованием и не выполняет никаких критически важных задач, до момента явного обнаружения атаки на MDS-эксплойтах, лучшим вариантом сохранить производительность будет, вероятно, отказ от установки обновлений против таких атак. Это не является нашей официальной рекомендацией, а лишь интересная мысль по поводу того, какими могут быть альтернативные пути решения проблемы после выпуска соответствующих обновлений.
В этой статье мы провели интересное исследование того, где функция Hyper-Threading оказывает наибольшее влияние. В ней мы отразили последствия наихудшего сценария, когда SMT приходится полностью исключить, но в свою очередь мы наблюдаем и некоторые движения в направлении не допустить такого сценария. Google отключил Hyper-Threading в Chrome OS, сообщество OpenBSD рекомендует сделать то же самое, в то время как Apple частично пропатчила системы средствами снижения риска проникновения эксплойтов и сообщила, что для полного устранения риска от уязвимостей необходимо отключить Hyper-Threading. Другие производители, такие как Microsoft, еще не заняли определенную позицию.
Отключение Hyper-Threading debian 8
Гугл ничего толкового про отключение HT не дает. Отключить в биосе не предлагать, сервер арендованный. Можно ли это сделать как то программно?
serj_sar
25.06.17 00:10:05 MSK
нет, только в биосе
Harald ★★★★★
( 25.06.17 00:10:41 MSK )
Нет, тк в этом нет смысла. Осиль taskset.
anonymous
( 25.06.17 00:47:29 MSK )
HT нельзя, можно через sysfs выключить лишние ядра.
anonymous
( 25.06.17 01:05:34 MSK )
Арендодатель не умеет входить в биос и отключать HT ?
Infra_HDC ★★★★★
( 25.06.17 11:53:25 MSK )
Ответ на: комментарий от anonymous 25.06.17 01:05:34 MSK
Можно посмотреть какие 2 проца живут на одном ядре и отключить один из них, например:
echo 0 > /sys/devices/system/node/node0/cpu1/online
echo 0 > /sys/devices/system/node/node0/cpu3/online
Или автоматизировать это like Jack Perdue’s script
cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | awk -F, » | sort -n | uniq | ( while read X ; do echo $X ; echo 0 > /sys/devices/system/cpu/cpu$X/online ; done )
sigurd ★★★★★
( 26.06.17 12:46:50 MSK )
Последнее исправление: sigurd 26.06.17 12:49:56 MSK (всего исправлений: 3)
Deleted
( 26.06.17 12:56:18 MSK )
Ответ на: комментарий от Deleted 26.06.17 12:56:18 MSK
Топикстартеру я бы посоветовал ткнуть арендодателя носом в данную ссылку, т.к. если программное окружение может быть уязвимо к выполнению произвольного кода на уровне CPU, то можно говорить об опасности для целостности данных в системе и других сюрпризах. Просто ткните носом в соответствующий пункт договора о качестве оказываемых услуг.
Ну заставьте вы ихнего инженера выключить галочку HT в серверном BIOS-е )).
Infra_HDC ★★★★★
( 26.06.17 18:16:06 MSK )
Передать ядру параметр noht в загрузчике пробовал?
Pinkbyte ★★★★★
( 26.06.17 18:17:26 MSK )
Ответ на: комментарий от Infra_HDC 26.06.17 18:16:06 MSK
Deleted
( 26.06.17 19:05:36 MSK )
Ответ на: комментарий от Deleted 26.06.17 19:05:36 MSK
Насколько помню, технология HT еще со времен Pentium 4 Socket 478 показала себя не лучшим образом, то есть уже там были уязвимости.
Infra_HDC ★★★★★
( 26.06.17 19:12:32 MSK )
Всем спасибо за ответы. Виртуальные ядра отключал, ожидаемого эффекта это не принесло. Пока забил. Цель была отключить виртуальные ядра и софт посадить, на 2 полноценных ядра, что бы им ничего не мешало. Но производительность осталась на прежнем уровне, посему забил на это дело. В Hetzer’e не охотно как то отвечают на просьбы сделать что-нибудь с железом. Поэтому биос изначально не рассматривал. Был бы конечно скайлейк или кабилейк можно было бы, пруфы привести которые вы скинули, но увы машины на 3770.
1С и Linux
Пишу для себя, чтобы не забыть как делал. 95 % рабочее. На комментарии отвечаю, когда увижу.
четверг, 13 сентября 2018 г.
Отключение технологии Intel Hyper-Threading
1. Выключить в BIOS режим HT (Hyperthreading) процессора
2. Выключить в BIOS режимы энергосбережения процессора «Intel SpeedStep» и «C-State»
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
.
.
$ lscpu —extended
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4200,0000 800,0000
1 0 0 1 1:1:1:0 yes 4200,0000 800,0000
2 0 0 2 2:2:2:0 yes 4200,0000 800,0000
3 0 0 3 3:3:3:0 yes 4200,0000 800,0000
4 0 0 0 0:0:0:0 yes 4200,0000 800,0000
5 0 0 1 1:1:1:0 yes 4200,0000 800,0000
6 0 0 2 2:2:2:0 yes 4200,0000 800,0000
7 0 0 3 3:3:3:0 yes 4200,0000 800,0000
#!/bin/bash
for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d, -f2- | tr ‘,’ ‘\n’ | sort -un)
do
echo 0 > /sys/devices/system/cpu/cpu$cpunum/online
done
sudo sh htdisable.sh
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4200,0000 800,0000
1 0 0 1 1:1:1:0 yes 4200,0000 800,0000
2 0 0 2 2:2:2:0 yes 4200,0000 800,0000
3 0 0 3 3:3:3:0 yes 4200,0000 800,0000
4 — — — . no 4200,0000 800,0000
5 — — — . no 4200,0000 800,0000
6 — — — . no 4200,0000 800,0000
7 — — — . no 4200,0000 800,0000
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-3
Off-line CPU(s) list: 4-7
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
$ echo 0 | sudo tee /sys/devices/system/cpu/cpu3/online
$ echo 0 | sudo tee /sys/devices/system/cpu/cpu2/online
$ echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online
$ echo 1 | sudo tee /sys/devices/system/cpu/cpu3/online
$ echo 2 | sudo tee /sys/devices/system/cpu/cpu2/online
$ echo 3 | sudo tee /sys/devices/system/cpu/cpu1/online
Как отключить hyper threading?
отключение hyper-threading
Ребята, как отключить ету опцию в биосе. В биосе ее нет, значить она скрыта. Мне нужно отключить.
Как выключить Hyper-Threading?
извиняюсь..можно ли выключить Hyper-Threading? Тип ЦП Intel Pentium 4 524, 3066 MHz (23 x 133) .
Функция Hyper-Threading
Вопрос про полезность данной функции и про потребления питания процессором с включенной.
hyper-threading и виртуализация
Выбираю между 2-мя процами i5 & i7 по большому счету разница в них в наличии у последнего.
23610 / 13301 / 2312
Регистрация: 23.11.2016
Сообщений: 66,658
Записей в блоге: 31
заходите в биос.
ищете то ли в адвансед. то ли в павер пункт Hyper-Threading Technology
отключаете.
http://www.probios.ru/options/. ology.html
6265 / 3703 / 312
Регистрация: 13.02.2014
Сообщений: 13,669
Сообщение от kumehtar
ищете то ли в адвансед. то ли в павер пункт Hyper-Threading Technology
отключаете.
И где он возьмет на амд, да ещё и на фуфыксе Hyper Threading?)
5074 / 2523 / 510
Регистрация: 09.09.2017
Сообщений: 9,382
BadKarma, На AMD-платформах нет hyper threading, но может быть SMT ( Simultaneous Multithreading).
Вряд ли эту технологию поддерживают процы старше zen.
23610 / 13301 / 2312
Регистрация: 23.11.2016
Сообщений: 66,658
Записей в блоге: 31
Загуглил тему.
Получается я написал вариант для интел, а у ТС-а амд.
BadKarma, походу пост №2 вам не поможет, потому что я недочитался.
Я загуглил пару биосов других матерей на ам3+ и не нашел в биосе ни одного упоминания про отключение многопоточности на этом сокете. Видимо имеется в виду особенность архитектуры FX, при котором там технически — и не многопоточность, и не многоядерность, а эти спаренные 2-ядерные блоки. или как их там, и отключать по сути нечего. Просто конструкция ядра предусматривает такую целостную архитектуру.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Обсуждение Hyper-Threading
Хотелось бы услышать мнения по процам INTEL PENTIUM с поддержкой Hyper-Threading
Что есть Hyper Threading
Прочитал статью уважаемого Evg "Влияние конвейера на скорость исполнения кода" у него в блоге.
Конвейеры и Hyper Threading (SMT)
Здравствуйте! В процессоре Pentium была реализована суперскалярность: к основному конвейеру u.
Hyper Threading Intel Pentium 4
Совершенно недавно узнал, что это такое. А проблема, собственно, вот в чем: некоторые игры очень.
Технология Hyper Threading на процессоре i7
i7 950 — это 4-х ядерный процессор с hyper threading. На компе работает 3 многопоточных сервера и.
В продолжении старой темы про Hyper-Threading
Начальная тема, сподвигнувшая меня зайти по той же ссылке на википедию, и сам не помню как увидеть.