Отключение hyper threading что дает
Перейти к содержимому

Отключение hyper threading что дает

  • автор:

Hyper-threading — что это в биосе?

  • Описание
  • Разбираемся
  • Включать или нет?
  • Заключение

Приветствую. Данный материал опишет предназначение одной полезной функции, которая способна увеличить производительность процессора Intel.

Описание

Hyper-threading — технология многопоточности, когда одно ядро получает два потока обработки данных для более эффективной работы процессора.

Простыми словами — иногда работа ядра процессора временно приостанавливаются, например ожидаются данные, какие-то другие причины. В это время ядро запускает второй поток, чтобы дальше обрабатывать данные, когда простаивает первый.

Разбираемся

  1. Hyper-threading это технология многопоточности для процессоров Интел. Позволяет получить 2 потока на одно ядро.
  2. Эффективно увеличивает производительность, вместе с которой — нагрев, расход энергии.
  3. Включение Hyper-threading позволяет получить больше производительности.
  4. Как уже было сказано, каждое ядро получает/превращается в 2 потока. Однако Windows их видит как ядра (логические). Поэтому процессор, имеющий 8 ядер, после активации потоков в биосе — будет виден операционкой Windows как 16-ядерный.
  5. Принцип работы Hyper-threading. Обычно ядро процессора, выполняя команды, может приостановить работу: произошел промах при запросе к кэшу процессора, было неверно предсказание ветвления, ожидается результат предыдущей команды. При остановке работы передается управление второму потоку. Это разумно — пока первый поток ожидает данные, второй — обрабатывает свои поступающие команды. Таким образом достигается большая загрузка процессора, соответственно производительность — выше.
  6. На данный момент Hyper-threading — полезная технология. Раньше было мнение, что стоит отключать, связано было с тем, что раньше не все приложения были хорошо оптимизированы для многопоточной работы. Однако сегодня — ситуация намного улучшилась, многие игры поддерживают многопоточность, Windows 10 тоже более оптимизирована.

Включать или нет?

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

Также некоторые программы могут лучше работать при отключенной опции. Обычно это приложения устаревшие или специфические.

Заключение

  • Hyper-threading — опция повышения эффективности работы процессора за счет потоков.

Бенчмарки в реальных приложениях: сколько теряют (и выигрывают) процессоры Intel без многопоточности

Как известно, недавно в процессорах Intel обнаружены четыре новые аппаратные уязвимости microarchitectural data sampling (MDS), которые допускают утечку конфиденциальных данных по сторонним каналам. Наиболее серьёзная из уязвимостей получила название ZombieLoad.

В отличие от предыдущих уязвимостей с эксплуатацией спекулятивного выполнения в CPU, которые затронули практически все процессоры, MDS затрагивает только чипы Intel. В краткосрочной перспективе единственный способ уменьшить или минимизировать влияние этих уязвимостей — отключить одновременную многопоточность (SMT) которую Intel называет Hyper-Threading.

Microsoft уже выпустила обновления ОС для четырёх уязвимостей MDS, они вышли с обновлением Windows 10 1903, которое накатывается в эти дни. Но патчи не устраняют проблему полностью, для этого нужны обновления BIOS материнской платы. Как сообщается, Intel выпустила новый микрокод для производителей материнских плат. Но пока новые версии BIOS не появились в открытом доступе. Поэтому издание Techspot протестировало наихудший сценарий, отключив Hyper-Threading. Для старых платформ без возможности обновления это единственное решение.

Тестирование проводилось на процессорах Core i7-8700K и 7700K. Их производительность проверялась в ряде игр и приложений с включенной функцией Hyper-Threading и без неё. По идее, для Core i9-9900K отключение многопоточности не должно стать большой проблемой, потому что это восьмиядерная система, хотя наверняка будет некоторое отрицательное влияние. А максимальной потери производительности можно ожидать в двухъядерных процессорах.

Тесты проводились на Windows 10 build 1903, с 32 ГБ памяти DDR4-3200 и GeForce RTX 2080 Ti. Игры запускались на 1080p и 1440p. Но сначала — тесты приложений.

Бенчмарки приложений

В бенчмарке Cinebench R20 при отключении многопоточности процессор Core i7-8700K показал снижение производительности на 24%. «С точки зрения производительности мы по сути превращаем 8700K в 7700K, это довольно значительная потеря», — пишет Techspot.

В то же время 7700K с отключенной гиперпоточностью становится на 26% медленнее: это как старый четырёхъядерный процессор или Core i5 поколения Kaby Lake. Для приложений, которые сильно задействуют ядра, отключение SMT/Hyper-Threading оказывает большое влияние на производительность.

WinRAR демонстрирует серьёзное снижение пропускной способности на 36% на 8700K. Очевидно, что Hyper-Threading очень хорошо подходит для этого типа рабочей нагрузки. Аналогично, мы видим массовое снижение производительности на 7700K, в данном случае падение на 39%.

В приложении для высокопроизводительного рендеринга Corona процессор 8700K с отключенной гиперпоточностью демонстрирует падение производительности на 31%, а процессор 7700K — на 33%. В обоих случаях снижение производительности очень серьёзное. Можно предположить, что аналогичный эффект проявится во многих задачах рендеринга и видеокодирования в зависимости от того, как сработают патчи.

В программе Blender падение производительности не такое большое: 25% для 8700K с отключенной функцией Hyper-Threading, что похоже на показатели Cinebench R20, хотя это всё равно значительное снижение. 7700K с меньшим количеством ядер страдает немного больше: здесь мы видим снижение производительности на 29%.

Потребляемая мощность

Тесты показывают, что отключение Hyper-Threading на 8700K снижает энергопотребление примерно на 5%, что явно не будет достойной компенсацией за снижение производительности. В 7700K ситуация чуть получше: здесь снижение составило 11%.

Игровые бенчмарки

В игре Assassin’s Creed Odyssey на разрешении 1080p с процессором 8700K средний фреймрейт упал на 13%, однако минимальный FPS практически не изменился. С другой стороны, 7700K с меньшим количеством ядер показал серьёзное падение как средней частоты кадров, так и 1% самых низких FPS. Другими словами, здесь появление лагов наиболее вероятно: падение на 23% средней частоты кадров и на 21% минимального FPS.

Хорошая новость в том, что если узким местом системы становится GPU, то практически никакого падения производительности не произойдёт. Это видно на бенчмарках с разрешением 1440p. Даже на высокопроизводительной видеокарте RTX 2080 Ti именно графика становится узким местом, поэтому фреймрейт на 8700K практически не изменяется с отключением многопоточности. Иная ситуация на более слабом процессоре 7700K, где всё-таки узким место становится CPU. При отключении Hyper-Threading средняя частота кадров упала почти на 18%.

Хотя Battlefield V очень интенсивно потребляет вычислительные ресурсы, но Techspot смогла протестировать только одиночную версию, где это не так заметно. Тестеры отмечают, что даже для одиночной версии понадобились две учётные записи Origin «благодаря восхитительной блокировке аппаратных изменений». Хорошая новость в том, что здесь большого снижения производительности не произошло, разве что на 12% в минимальном FPS на процессоре 7700K.

Увеличение разрешения до 1440p не изменило ситуацию: здесь тоже снижение производительности во всех тестах, хотя разница невелика.

А вот в игре Division 2 результаты ужасные. На процессоре 7700K с отключенной функцией Hyper-Threading средняя частота кадров снижается на 37%, а минимальная — на 38%, что близко к падению скорости архивирования WinRAR.

Снижение производительности на шестиядерном 8700K не такое значительное, а при разрешении 1440p вообще нет никакой разницы. Однако всё ещё есть падение минимального фреймрейта на 32% в системе на процессоре 7700K.

Бенчмарки Far Cry New Dawn вообще показали удивительный результат. При отключении многопоточнорсти фреймрейт увеличился на обоих процессорах. Специалисты предполагают, что игра оптимизирована для шестиядерного 9700K, где она показывает около 120 FPS в 1080р. Возможно, поэтому 6 ядер/6 потоков тут более эффективны, чем 6 ядер/12 потоков. Однако и четырёхъядерный 7700K в Far Cry New Dawn тоже ускорился при отключении многопоточности. Так что в этой игре даже рекомендуется отключать многопоточность. Вероятно, ускорение будет особенно заметно на двухъядерных процессорах.

При переходе к 1440p количество ядер вообще не влияет. Здесь явно видно, что на самом деле Hyper-Threading замедляет игру и на 7700K, и на 8700K.

В игре Hitman 2 отключение Hyper-Threading не оказывает реального влияния на 8700K, однако на четырёхъядерном 7700K падение серьёзное. Средняя частота кадров снизилась на 18%, а минимальный FPS — почти на 30%. Радует только, что минимальный фреймрейт всё равно всегда выше 60 кадров в секунду.

Четырёхъядерный процессор страдает от отключения многопоточности даже на разрешении 1440p 7700K: снижение минимального фреймрейта на 25%.

Далее была протестирована игра Rage 2: на 8700K результаты совершенно идентичные, а на 7700K средняя частота кадров практически не изменилась, но минимальный FPS упал на заметные 20%.

На разрешении 1440p в Rage 2 процессор перестаёт быть узким местом, так что отключение многопоточности никак не влияет на производительность игры.

Игра Shadow of the Tomb Raider тоже весьма требовательна к CPU, что и сказалось на результатах тестов. На процессоре 8700K зафиксировано падение производительности на 10−12% с отключённой функцией Hyper-Threading, а на 7700K — на 24%, хотя минимальный фреймрейт сравним с 8700K.

Даже на 1440p эффект значителен, по крайней мере, для 7700K.

Последняя протестированная игра — World War Z с Vulkan API. Она отлично работает на четырёх ядрах, поэтому процессор практически не страдают от выключения многопоточности, а на 1440p результаты абсолютно идентичные.

Обобщая результаты, можно сделать вывод, что четырёх- и шестиядерные процессоры Intel с отключением Hyper-Threading на самых тяжёлых приложениях могут потерять до 25−35% производительности.

Влияние на игры существенно варьируется в зависимости от игры и других факторов, таких как разрешение, настройки визуального качества и, конечно, установленный GPU. Для протестированных игр на шестиядерном процессоре обычно не происходит существенного падения FPS, хотя минимальный фреймрейт иногда снижается, что в некоторых случаях будет визуально заметно.

Ну а при отключении многопоточности на процессоре с 8 ядрами/16 потоками, как 9900K, в играх не должно быть практически никакой разницы, хотя производительность других приложений всё равно может снизиться на 25-35% без SMT. С другой стороны, на процессорах нижнего уровня, которые больше полагаются на Hyper-Threading, проявится более существенная потеря производительности в играх. Даже четырёхъядерный 7700K часто показывал серьёзное падение производительности в игровых тестах, а на двухъядерных CPU проблема станет ещё заметнее.

На данный момент пока нельзя сказать, как повлияют на производительность патчи для Windows. Наверное, произойдёт некоторое снижение производительности: особенно там, где серьёзно используется многопоточность. Phoronix провёл тесты на Linux, и там падение производительности отличается в разных приложениях: оно варьируется от незначительного до очень большого. В целом системы Intel сейчас примерно на 16% медленнее из коробки, чем это было до установки патчей для защиты от Spectre, Meltdown, Foreshadow и Zombieload. Между тем, в системах на AMD производительность снизилась только на 3%. Phoronix делает вывод, что теперь ядро i7-8700K намного ближе по производительности к более слабому Ryzen 7 2700X, а ядро i9-7980XE приблизилось к Threadripper 2990WX.

Если Intel не сумеет сотворить чудо и выпустить настолько эффективный патч, что он не затронет многопоточность, то это значит катастрофические последствия для тех, кто использует двух- и четырёхъядерные процессоры Intel с поддержкой Hyper-Threading. Речь идёт о Core i3 и Core i5, начиная с Clarkdale до Kaby Lake, Core i7 до Kaby Lake и Pentium семейств Kaby Lake и Coffee Lake.

Techspot пишет, что если у вас установлено старое оборудование, которое не выполняет никаких критически важных задач, то может быть лучше вообще не обновлять операционную систему и не устанавливать патчи от Intel. По крайней мере, пока не появились первые рабочие эксплоиты: «Это не наша официальная рекомендация, а альтернативный вариант действий после выхода соответствующих обновлений».

В приведённых тестах проверяется наихудший сценарий с полным отключением Hyper-Threading, когда падение производительности максимальное. Но именно такой наихудший сценарий поддерживают разработчики некоторых операционных систем. Например, Google отключила Hyper-Threading в Chrome OS, а сообщество OpenBSD рекомендует сделать то же самое. Apple выпустила патчи с частичным закрытием уязвимостей и заявила, что полная защита требует отключения Hyper-Threading. Другие вендоры, в том числе Microsoft, ещё не обозначили окончательную позицию.

  • Высокая производительность
  • Информационная безопасность
  • Работа с 3D-графикой
  • Процессоры
  • Игры и игровые консоли

Как себя чувствует 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, еще не заняли определенную позицию.

Снижение задержки ввода путём отключения SMT или Hyper-Threading

Когда дело доходит до производительности в играх, важно понимать, что, хотя FPS имеет большое значение, это не единственный показатель, на который следует обращать внимание. Другим измерением, столь же важным, как FPS (по моему субъективному мнению), является задержка или скорость, с которой ваш компьютер выполняет ввод с периферийных устройств.

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

Мы уже обсуждали способы уменьшения задержки (пользовательский ISO-образ Windows, команды CMD, схемы управления питанием и т.д.), и сегодня я протестировал ещё один метод, с помощью которого можно сократить время ожидания на несколько миллисекунд.

Что такое SMT или Hyper-Threading

SMT (AMD) и Hyper-Threading (Intel) – это технологии, которые позволяют запускать более одного потока на каждом ядре, повышая эффективность процессоров во время рабочих нагрузок. Вот почему большинство современных процессоров описываются количеством ядер и потоков (например, 5600X имеет 6 ядер и 12 потоков).

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

Это слишком упрощенная версия того, что делают эти технологии, но для целей этой статьи достаточно понять простое уравнение: SMT/Hyper-Threading ON = возможно, более высокий FPS и производительность – в то время как – SMT/Hyper-Threading OFF = лучшая задержка в играх.

По сути, мне было любопытно, насколько большой будет разница в FPS для игр и насколько измеримой будет разница в задержке, если я отключу SMT (поскольку у меня система AMD) на моём ПК.

Методология

Я тестировал латентность с включенным и выключенным SMT с помощью LatencyMon, так как это очень популярный инструмент именно для этой задачи. Я запускал тест 3 раза как для SMT, так и для выключенного, и каждый раз перезапускал систему, чтобы убедиться, что система «свежая».

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

Для тестирования игры я решил использовать Apex Legends , так как эта игра известна тем, что является «многопоточной свиньей», что позволяет мне увидеть, как будет вести себя игра, если вдруг лишние потоки исчезнут, и она сможет работать только с 1 потоком на каждое ядро.

Сам тест представлял собой повторение заданий на полигоне, поскольку это контролируемая среда. Поскольку это не был надлежащий тест, результаты не являются точными на 100%, но, учитывая результаты, которые я записал, и то, что действия повторялись последовательно, я на 95% уверен в воспроизводимости окончательных результатов.

Всё это было выполнено на ПК, на котором запущен разгон PBO2 + Curve Optimizer на 5600X и разогнан RTX 2070. Я запускал пользовательскую установку Windows под названием KernelOS (1809), поэтому моя система уже довольно сильно настроена.

Тестирование с включенным SMT

Первым, что я протестировал с SMT, был LatencyMon, где результаты после 3 измерений были между 2,75 мкс и 2,8 мкс.

Проверка задержки в играх при включенном SMT – первый результат

Проверка задержки в играх при включенном SMT – второй результат

Проверка задержки в играх при включенном SMT – второй результат

Эти результаты согласуются со всеми другими предыдущими тестами, которые я проводил на своей системе, что меня совсем не удивило.

В Apex я проделал 3 раза тот же набор действий, что описан в методике, при измерении и записи FPS с помощью MSI Afterburner и RivaTuner. Настройки в Apex были 1920×1080, 110 FOV, со всеми остальными настройками на низком уровне для максимального FPS.

Тестирование FPS в Apex с включенным SMT

Как видите, все результаты были в пределах погрешности, что говорит мне о том, что мой набор действий, повторяемых на полигоне, можно считать действительным эталоном.

Тестирование с выключенным SMT

После входа в BIOS моего ПК и отключения SMT я начал второй раунд тестирования с перезапусками между каждым запуском LatencyMon и всеми остальными шагами, чтобы убедиться в достоверности результатов.

В LatencyMon без запущенных фоновых приложений задержка снизилась до 2,45 мкс – 2,5 мкс по сравнению с 2,75 мкс и 2,8 мкс.

Первый результат тестирования задержки с выключенным SMT

Третий результат тестирования задержки с выключенным SMT

Хотя я заметил заметное снижение задержки, было интересно, что в Apex мой FPS вообще не изменился или изменения были в пределах погрешности.

Результаты тестирования FPS в Apex при выключенном SMT

Вывод здесь довольно прост – я добился меньшей задержки, не повлияв на производительность в выбранной мной игре, что, в целом, является положительным моментом.

Разумные ограничения

Ограничения моего небольшого исследования здесь очевидны – я использовал только LatencyMon для измерения изменений задержки и использовал только одну игру (по 3 запуска каждой, чтобы получить среднее значение). Более того, поскольку в моей системе работает процессор AMD, я не тестировал аналог от Intel.

В то же время мои выводы согласуются с выводами большинства других специалистов по настройке ПК, которые экспериментировали с этой темой на разных платформах.

Общий вывод заключается в том, что для игр отключение SMT/Hyper-Threading может привести к небольшой потере FPS (в зависимости от игрового движка и оптимизации), а для рабочих задач это приведет к существенной потере производительности.

Поскольку меня интересуют игры, я бы сказал, что отключение SMT/Hyper-Threading и снижение задержки стоит того, чтобы потерять немного FPS, особенно если после выполнения некоторых тестов вы не потеряете ни одного кадра, как в случае с Apex.

Выводы

Хотя отключение SMT/Hyper-Threading может снизить производительность в рабочих задачах, если вы, как и я, являетесь конкурентоспособным геймером, и вам нужна максимально низкая задержка, отключение SMT/Hyper-Threading – это шаг в правильном направлении.

Снижение задержки очевидно, в то время как падение FPS и производительности будет зависеть от отдельных игр и оптимизаций. В то же время, как отмечают другие авторитетные источники, «в играх, в целом, не заметно разницы между SMT On и SMT Off, однако некоторые игры могут показывать различия в сценариях с ограниченным процессором», что соответствует моему выводу.

Как конкурентоспособный геймер, вы должны отключить виртуализацию ядра для снижения задержки. Единственный случай, когда этот совет не должен применяться, – это когда вы получаете огромную разницу в FPS в выбранной вами игре, что делает её неиграбельной.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *