Когда речь заходит о производительности в играх, важно понимать, что, хотя частота кадров (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. Я запускал тест три раза для каждого режима: с SMT и без него, каждый раз перезагружая систему, чтобы обеспечить «свежие» результаты.
Кроме того, я убедился, что никакие фоновые приложения не работают, чтобы максимально приблизить ситуацию к идеальному сценарию.
Для тестирования игры я выбрал Apex Legends, поскольку эта игра известна своей многопоточной природой. Это позволило мне увидеть, как изменится поведение игры, если лишняя нагрузка исчезнет, и она сможет работать только с одним потоком на каждое ядро.
Сам тест представлял собой повторение заданий на полигоне, поскольку это контролируемая среда. Хотя это не был полноценный тест, результаты не являются 100% точными. Однако, учитывая записанные результаты и то, что действия повторялись последовательно, я на 95% уверен в воспроизводимости окончательных результатов.
Всё это было выполнено на ПК, на котором был запущен разгон PBO2 + Curve Optimizer для процессора 5600X и разогнанная видеокарта RTX 2070. Я использовал пользовательскую установку Windows под названием KernelOS (1809), что сделало мою систему уже довольно хорошо настроенной.
Тестирование с включенным SMT
Первым, что я протестировал с SMT, был LatencyMon, где результаты после 3 измерений были между 2,75 мкс и 2,8 мкс.
Эти результаты согласуются со всеми другими предыдущими тестами, которые я проводил на своей системе, что меня совсем не удивило.
В Apex я проделал 3 раза тот же набор действий, что описан в методике, при измерении и записи FPS с помощью MSI Afterburner и RivaTuner. Настройки в Apex были 1920×1080, 110 FOV, со всеми остальными настройками на низком уровне для максимального FPS.
Как видите, все результаты были в пределах погрешности, что говорит мне о том, что мой набор действий, повторяемых на полигоне, можно считать действительным эталоном.
Тестирование с выключенным SMT
После входа в BIOS моего ПК и отключения SMT я начал второй раунд тестирования с перезапусками между каждым запуском LatencyMon и всеми остальными шагами, чтобы убедиться в достоверности результатов.
В LatencyMon без запущенных фоновых приложений задержка снизилась до 2,45 мкс – 2,5 мкс по сравнению с 2,75 мкс и 2,8 мкс.
Хотя я заметил заметное снижение задержки, было интересно, что в Apex мой FPS вообще не изменился или изменения были в пределах погрешности.
Вывод здесь довольно прост – я добился меньшей задержки, не повлияв на производительность в выбранной мной игре, что, в целом, является положительным моментом.
Разумные ограничения
Ограничения моего небольшого исследования очевидны: я использовал только 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 в выбранной игре, что сделает её неиграбельной, этот совет не следует применять.