Перейти к содержимому

Smt mode в биосе что это

  • автор:

Виртуальное ядро процессора — что это?

  • Разбираемся
  • Принцип работы
  • Вывод

Всем привет. Виртуальное ядро? Что это? Виртуальное, значит вроде как ненастоящее что ли? Сегодня я постараюсь простыми словами рассказать что это значит, надеюсь понятно будет каждому начинающему пользователю))

Виртуальное ядро процессора — что это?

Дело в том, что процессор работает неидеально. Но сделать идеально — значит начинать все заново, не просто выпустить новый процессор, а вообще все заново, то что начинали лет 20-30 назад.

Поэтому создают технологии, которые ускоряют работу процессора. Одна из них — виртуальные ядра, они же потоки и они же технология Hyper-Threading (HT), это у Intel, а у AMD технология называется SMT (от англ. simultaneous multithreading).

Именно эта технология делает так, что одно физическое ядро представляется в системе как два виртуальных или два потока. Таких два потока — быстрее одного ядра, но медленнее двух настоящих ядер.

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

Виртуальное ядро процессора — как работает?

На самом деле все просто. Процессор работает себе, трудится, все хорошо. Но в работе могут быть паузы, например:

  1. Произошел промах при запросе к кэшу.
  2. Неверное предсказание события.
  3. Ожидание результата предыдущей инструкции.

Это примерные причины, по которым процессор может простаивать доли секунды, скорее всего они вам непонятны, но вы не обращайте внимание)) Даже доли секунды в процессорном времени — это значительно, особенно если таких простоев много. Что делать? Все просто. Изначально все что выше написано — делается на одном ядре, а точнее на одном потоке. Но при наличии технологии виртуальных ядер — процессор не будет останавливаться, а просто в это время передаст управление другому потоку, который тоже выполняет определенную работу.

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

На практике в некоторых программах, например сжатие данных — результат хорошо заметен. В некоторых играх например эффекта нет, а иногда даже хуже. Почему? Потому что потоки система видит как ядра, ну это хорошо, но только 1 поток слабее 1 ядра. Если задача нетребовательная — то лучше чтобы она выполнялась ядрами, а не потоками. С потоками хорошо умеют работать современные игры.

Вот примерный принцип как работают потоки:

Также технология потоков увеличивает нагрев процессора именно по той причине что он может теперь больше обрабатывать данные. Насколько? Ну примерно на 30-50%. Но в современных процессорах это значение может быть выше.

Кстати, используя простую бесплатную утилиту CPU-Z можно узнать сколько в процессоре ядер и потоков:

Написано все внизу в графах Cores и Threads. CPU-Z это бесплатная крошечная утилита, нет рекламы и кажется можно даже не устанавливать, классная вещь, показывает краткую инфу о проце и про оперативную память (например год выпуска планки).

Потоки вообще можно отключить в биосе, вот например опция Hyper-threading:

У АМД все также, только опция называется SMT Mode (или немного иначе, зависит от материнки). PS: чтобы активировать опцию — нужно выбрать Enabled, ну а чтобы отключить — Disabled.

Заключение

Надеюсь выяснили — виртуальное ядро процессора, это поток. Когда проц поддерживает потоки — значит на 1 ядро идет 2 потока. Windows эти потоки видит как ядра. 4 ядерный процессор с потоками операционкой виден как 8 ядерный.

1 поток слабее 1 ядра. Но 2 потока — быстрее 1 ядра, но слабее 2 ядер. Результат — процессор с потоками или такими вот виртуальными ядрами начинает работать попросту быстрее.

Кстати потоки эти появились еще в Пентиум 4, а до этого были только в серверных процах.

Ребята, я надеюсь эта информация была полезной. Удачи вам и добра, берегите себя и до новых встреч!

Снижение задержки ввода путём отключения 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 в выбранной вами игре, что делает её неиграбельной.

SMT Mode — что это в биосе?

Приветствую. Сегодня я постараюсь простыми словами рассказать про одну функцию, которая позволяет повысить производительность процессора. Она давно уже существует в процах Intel и только относительно недавно появилась у AMD.

SMT Mode — что это такое?

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

  1. Для эффективной работы необходима не только поддержка SMT на аппаратном уровне, но и поддержка операционкой и софтом.
  2. При выставлении Activated могут быть проблемы с платой, поэтому лучше ставить Auto, тогда SMT все равно будет работать, но проблемы с платой будут минимизированы.
  3. По факту — 2 потока на ядро, как в технологии Intel Hyper-Threading. 1 поток слабее чем 1 ядро. Но 2 потока могут дать больше производительности, чем 1 ядро. Такие потоки Windows воспринимает как реальные ядра.

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

Для примера — посмотрите некоторые характеристики процессоров Ryzen, где видим, на одно ядро приходится два потока:

И опция SMT Mode именно активирует работу этих потоков. Нет смысла ее отключать.

SMT Mode — включать или нет?

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

В интернете есть информация, что SMT стоит отключать для игр, в итоге повышается FPS. С чем связано? Смотрите, 6 ядер процессора — это 6 настоящих ядер, полноценных. Быстрых. А 12 потоков — это уже не полноценные ядра, могут выполнять больше работы, но не быстрее, потому что каждый такой поток работает медленнее одного ядра. Но суммарно 12 потоков смогут за одно время выполнить больше работы, чем 6 ядер и это при условии что софт оптимизирован под многопоточность. Но многим играм и правда достаточно 6 настоящих ядер (особенно если высокая частота), чем 12 потоков. Но повторюсь — все зависит от игры и от ее оптимизации.

Если игра оптимизирована под многопоточность, то отключение потоков только снизит FPS.

Кстати, что интересно.. у процессоров AMD FX по сути тоже присутствуют потоки. Хоть компания и представила их как 8-ядерные, там по сути 4 ядра и 8 потоков. Но отключить там потоки нельзя.

Когда только вышел Ryzen, то отключение потоков дало плюс в производительности. Но это было раньше. Сейчас уже все оптимизировали, в том числе и планировщик Windows.

Но при разгоне процессора SMT Mode стоит отключать.

Название раздела BIOS содержащий функцию зависит от производителя. Например на плате ASUS Prime X370 Pro функция SMT расположена здесь:

И имеет два варианта значений — Auto/Disabled. В тоже время на плате AsRock B450 Pro4 функция расположена здесь:

OC Tweaker/CPU Configuration

Значения опции — Enabled/Disabled.

Чтобы проверить отключена ли опция или нет, советую использовать CPU-Z — смотрим сколько ядер (Cores) и сколько потоков (Threads):

Если SMT Mode отключено — количество потоков будет равно количеству ядер.

Настройка в материнке MSI (раздел Overclocking\Параметры CPU):

Заключение

  1. SMT Mode — активация технологии потоков в процессоре AMD.
  2. Позволяет увеличить производительность, особенно если софт/игра оптимизирована под многопоточность.

Как старая Windows 10 портит жизнь новому Core i9-12900K и почему Windows 11 лучше

Появление семейства Alder Lake встряхнуло весь процессорный мир, изголодавшийся по реальной конкуренции. Новые чипы стали лучше предшественников по всем статьям: они перешли на современный техпроцесс, получили заметные микроархитектурные усовершенствования, нарастили число вычислительных ядер и даже получили улучшения, связанные с теплоотводом. Но это далеко не всё. Вместе с удвоением количества вычислительных ядер и рывком в производительности Alder Lake принесли с собой огромное количество новых особенностей, подробно разбираться с которыми нам придётся ещё долго. Вычислительные ядра двух типов и гибридное строение, поддержка DDR5 и PCIe 5.0 – это лишь первые строки в перечне нововведений, по каждому пункту которого нужно провести отдельное исследование. И такие исследования мы непременно будем делать, однако начать изучение нюансов применения новой платформы Intel хотелось бы с несколько другой стороны – не аппаратной, а программной.

Первоначальное тестирование старшего представителя в семействе Alder Lake, процессора Core i9-12900K, было проведено нами в новой операционной системе Windows 11. На первый взгляд это логичный выбор – многие пользователи с обновлением аппаратной платформы наверняка захотят освежить и программную среду: Windows 11, как и Alder Lake, вполне можно отнести к числу горячих новинок этой осени. К тому же к использованию новой операционной системы прямо подталкивает и Intel, говоря об особых оптимизациях в работе планировщика. По риторике компании можно даже предположить, что Windows 11 – чуть ли не необходимое условие применения Alder Lake, поскольку только в этой операционной системе обещана поддержка технологии Thread Director, гарантирующей корректное распределение потоков по разнотипным процессорным ядрам.

Однако есть и другая позиция. По статистике Steam, операционная система Windows 11 в настоящее время используется менее чем в 2 % игровых систем, в то время как большинство геймеров отдают предпочтение Windows 10 – её доля составляет чуть менее 90 %. То есть переход на новую ОС лишь начинается, и его скорость пока не только не позволяет делать какие-то прогнозы относительно её массового принятия, но и даёт твёрдую уверенность, что компьютеры на базе Alder Lake в реальном мире будут чаще работать под Windows 10.

Поэтому ограничиться испытаниями Core i9-12900K исключительно в Windows 11 было бы неверно, и проверку его производительности нужно повторить и в Windows 10. Тем более что результаты тестов в этом случае наверняка будут отличаться. И это касается не только Alder Lake, с гибридными особенностями которых планировщик Windows 10 знаком гораздо хуже, чем планировщик Windows 11. Очевидно, что и процессоры AMD работают в разных версиях ОС вовсе не одинаково, тем более что отношения Ryzen с Windows 11 не заладились с самого начала. За примерами далеко ходить не надо. За прошедшие с момента выхода Windows 11 пару месяцев инженерам AMD и Microsoft пришлось в спешном порядке исправлять как минимум две неприятности с Ryzen – замедленную работу L3-кеша и некорректный выбор планировщиком предпочтительного ядра для однопоточных нагрузок. Естественно, нет никаких гарантий, что эти проблемы были единственными, и это тоже может обуславливать различия в относительной производительности CPU в Windows 11.

Впрочем, центральный вопрос, которому в этой статье будет уделено наибольшее внимание, всё-таки касается совместимости Alder Lake и Windows 10. Из того, что мы узнали про технологию Thread Director непосредственно перед анонсом процессоров Core 12-го поколения, следовало, что работают они в новой ОС совсем не так, как в старой, и из-за этого в Windows 10 можно ожидать разного рода накладок как с производительностью, так и с неработоспособностью различных программ (в первую очередь игр). Поэтому основной сюжетной линией дальнейшего рассказа станет практическое сравнение работы Core i9-12900K в Windows 10 и Windows 11.

⇡#Ещё раз о Thread Director

Принципиальное преимущество Windows 11 перед Windows 10 с точки зрения процессоров Alder Lake заключается в том, что новая ОС знакома с технологией Thread Director, и её планировщик использует возможности данной технологии для распределения нагрузки по процессорным ядрам, в том числе разнотипным . Говоря простым языком, в Windows 10 работа планировщика с разнотипными ядрами строится исключительно на основании данных об их производительности, в то время как в Windows 11 всё происходит хитрее. В ней планировщик не только различает ядра по быстродействию, но и получает от процессора обратную связь – интерактивную информацию о типах исполняемого кода и сведения о состоянии, текущих температурах и энергопотреблении ядер.

На низком уровне Thread Director представляет собой встроенный в Alder Lake микроконтроллер, который с наносекундной дискретностью собирает данные о функционировании процессорных ядер, анализирует их и с миллисекундной дискретностью передаёт планировщику операционной системы. Телеметрия, с которой имеет дело микроконтроллер, — это тепловое состояние и потребление каждого из ядер плюс показатели их загрузки, включая информацию о типах исполняемых инструкций. Такой набор собираемых данных в конечном итоге позволяет принимать обоснованные решения о целесообразности перемещения тех или иных процессов с производительных ядер (P-ядер) на энергоэффективные (E-ядра) и обратно.

В процессе совместной работы Thread Director и планировщик Windows 11 подразделяют все исполняемые процессы на три базовых класса: фоновые, то есть такие, скорость исполнения которых от производительности процессора не зависит; обычные процессы переднего плана; и ресурсоёмкие процессы, задействующие те или иные наборы AVX-инструкций. Общая логика работы планировщика в Windows 11 такова, что фоновые процессы или процессы, которые основное время проводят в ожидании поступления данных, отправляются на E-ядра, а те процессы, для работы которых действительно важна производительность, – на P-ядра. При этом процессы, использующие AVX-инструкции, считаются более приоритетными, а по мере того, как свободных P-ядер у процессора не остаётся, менее требовательные потоки вытесняются на E-ядра.

Такое разделение потоков по классам планировщику Windows 10 недоступно, он про их специфику ничего не знает и просто отправляет потоки, отнимающие большее количество процессорного времени, на более производительные ядра. Если говорить о производительности ресурсоёмких многопоточных приложений, то она в Windows 10 и Windows 11, очевидно, окажется одинакова. Однако в сложных сценариях нагрузки более чувствительная стратегия планировщика, реализованная в Windows 11, может положительно сказаться на скорости выполнения задач. Но самое главное преимущество Thread Director лежит в плоскости энергоэффективности. Перед планировщиком Windows 11 стоит задача не только добиться от процессора максимального быстродействия, но и сделать это с минимальными затратами энергии, как можно больше (но без ущерба для производительности) привлекая к работе E-ядра. При этом в Windows 10 вопрос энергопотребления не рассматривается вообще.

Но нужно понимать, что даже в Windows 11 технология Thread Director играет роль вспомогательного инструмента. Планировщик ОС в управлении потоками не обязан руководствоваться теми рекомендациями, которые выдаёт Thread Director. Например, они могут не учитываться в том случае, когда у исполняемых процессов выставлены разные приоритеты или когда у пользователя на рабочем столе развёрнуто приложение, которое с точки зрения Thread Director не является приоритетным. Тем не менее взаимодействие между оборудованием и ОС на низком уровне, которое есть в Windows 11, позволяет задействовать гибридную архитектуру Alder Lake более выигрышно.

⇡#Энергопотребление Alder Lake: Windows 11 против Windows 10

Итак, планировщик Windows 11 вместе с Thread Director борется за эффективность. На словах всё это звучит очень логично: зная, каковы текущие запросы исполняемых потоков, планировщик новой операционной системы может отправлять нетребовательные процессы на E-ядра, которые имеют более простую микроархитектуру и более низкие частоты. И проверить, даёт ли это какой-то результат, несложно – достаточно взглянуть на потребление Alder Lake при выполнении одних и тех же задач в разных ОС.

Для опытов мы воспользовались системой на базе процессора Core i9-12900K, укомплектованной 32 Гбайт DDR5-4800, на которой сняли показания энергопотребления в идентичных сценариях в Windows 10 и Windows 11. Первая проверка – рендеринг в Cinebench R23. Эта задача характерна тем, что в рендеринге работой загружаются все доступные ядра, а значит, Thread Director здесь вряд ли чем-то поможет: планировщик просто должен разместить 24 потока, создаваемые приложением, по имеющимся у процессора в наличии 24 ядрам (включая виртуальные).

Именно это мы и видим на графике потребления. Core i9-12900K при рендеринге в Windows 10 и Windows 11 показывает практически идентичное потребление – здесь Thread Director никакого выигрыша не даёт.

Однако такая картина наблюдается не всегда. Случаев, когда в работе Alder Lake под Windows 10 и под Windows 11 есть существенная разница, немало. Самый распространённый – это игры. Современные игровые приложения стараются распараллеливать нагрузку, и многие из них создают значительное количество потоков. Однако специфика этих потоков в том, что они в большинстве своём неравноправные. Один-два потока обычно играют роль ведущих, в то время как остальные носят вспомогательный характер, по мере необходимости выполняя второстепенные расчёты либо ожидая реакции игрока или каких-то иных событий. И это – прекрасная почва, на которой Thread Director и планировщик Windows 11 могут развернуться с полной силой.

Для примера мы взяли игру Horizon Zero Dawn, которая активно использует многопоточность и на восьмиядерных процессорах легко загружает все имеющиеся 16 виртуальных ядер. И как показало тестирование, потребление Core i9-12900K в разных ОС действительно различается.

Среднее потребление Core i9-12900K на протяжении тестового прохода в Horizon Zero Dawn составило 103 Вт в Windows 11 и 109 Вт в Windows 10. То есть технология Thread Director за счёт аккуратной расстановки потоков по ядрам позволяет добиться примерно 6 % экономии электричества.

Но ещё более интересную картину можно увидеть, если заглянуть в диспетчер задач. В Windows 11 во время игры оказывается ниже и загрузка процессора, причём на довольно весомую величину в 10 %.

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

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