что такое гипертрейдинг процессора

Технология Intel Hyper-Threading — что это и как работает

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Впервые технология Hyper-Threading (HT, гиперпоточность) появилась 15 лет назад — в 2002 году, в процессорах Pentium 4 и Xeon, и с тех пор то появлялась в процессорах Intel (в линейке Core i, некоторых Atom, в последнее время еще и в Pentium), то исчезала (ее поддержки не было в линейках Core 2 Duo и Quad). И за это время она обросла мифическими свойствами — дескать ее наличие чуть ли не удваивает производительность процессора, превращая слабые i3 в мощные i5. При этом другие говорят что HT — обычная маркетинговая уловка, и толку от нее мало. Правда как обычно по середине — местами толк от нее есть, но двухкртаного прироста ждать точно не стоит.

Техническое описание технологии

Начнем с определения, данного на сайте Intel:

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Допустим перед процессором стоят две задачи. Если процессор имеет одно ядро, то он будет выполнять их последовательно, если два — то параллельно на двух ядрах, и время выполнения обеих задач будет равно времени, затраченному на более тяжелую задачу. Но что если процессор одноядерный, но поддерживает гиперпоточность? Как видно на картинке выше при выполнении одной задачи процессор не занят на 100% — какие-то блоки процессора банально не нужны в данной задаче, где-то ошибается модуль предсказания переходов (который нужен для предсказания, будет ли выполнен условный переход в программе), где-то происходит ошибка обращения к кэшу — в общем и целом при выполнении задачи процессор редко бывает занят больше, чем на 70%. А технология HT как раз «подпихивает» незанятым блокам процессора вторую задачу, и получается что одновременно на одном ядре обрабатываются две задачи. Однако удвоения производительности не происходит по понятным причинам — очень часто получается так, что двум задачам нужен один и тот же вычислительный блок в процессоре, и тогда мы видим простой: пока одна задача обрабатывается, выполнение второй на это время просто останавливается (синие квадраты — первая задача, зеленые — вторая, красные — обращение задач к одному и тому же блоку в процессоре):

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

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

Плюсы и минусы технологии

С учетом того, что кристалл процессора с поддержкой HT физчески больше кристалла процессора без HT в среднем на 5% (именно столько занимают дополнительные блоки регистров и контроллеры прерываний), а поддержка HT позволяет нагрузить процессор на 90-95%, то в сравнении с 70% без HT мы получаем, что прирост в лучшем случае будет 20-30% — цифра достаточно большая.

Программы, плохо работающие с гиперпоточностью

Традиционно это большинство игр — их обычно бывает трудно грамотно распараллелить, поэтому зачастую четырех физических ядер на высоких частотах (i5 K-серии) более чем хватает для игр, распараллелить которые под 8 логических ядер в i7 оказывается непосильной задачей. Однако стоит учитывать и то, что есть фоновые процессы, и если процессор не поддерживает HT, то их обработка ложится на физические ядра, что может замедлить игру. Тут i7 с HT оказывается в выигрыше — все фоновые задачи традиционно имеют пониженный приоритет, поэтому при одновременной работе на одном физическом ядре игры и фоновой задаче игра будет получать повышенный приоритет, и при этом фоновая задача не будет «отвлекать» занятые игрой ядра — именно поэтому для стриминга или записи игр лучше брать i7 с гиперпоточностью.

Итоги

Пожалуй тут остается только один вопрос — так имеет ли смысл брать процессоры с HT или нет? Если вы любите держать одновременно открытыми пяток программ и при этом играть в игры, или же занимаетесь обработкой фото, видео или моделированием — да, разумеется стоит брать. А если вы привыкли перед запуском тяжелой программы закрывать все другие, и не балуетесь обработкой или моделированием, то процессор с HT вам ни к чему.

Источник

Еще раз о Hyper-Threading

Было время, когда понадобилось оценить производительность памяти в контексте технологии Hyper-threading. Мы пришли к выводу, что ее влияние не всегда позитивно. Когда появился квант свободного времени, возникло желание продолжить исследования и рассмотреть происходящие процессы с точностью до машинных тактов и битов, используя программное обеспечение собственной разработки.

Исследуемая платформа

Объект экспериментов – ноутбук ASUS N750JK c процессором Intel Core i7-4700HQ. Тактовая частота 2.4GHz, повышаемая в режиме Intel Turbo Boost до 3.4GHz. Установлено 16 гигабайт оперативной памяти DDR3-1600 (PC3-12800), работающей в двухканальном режиме. Операционная система – Microsoft Windows 8.1 64 бита.

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора
Рис.1 Конфигурация исследуемой платформы.

Процессор исследуемой платформы содержит 4 ядра, что при включении технологии Hyper-Threading обеспечивает аппаратную поддержку 8 потоков или логических процессоров. Эту информацию Firmware платформы передает операционной системе посредством ACPI-таблицы MADT (Multiple APIC Description Table). Поскольку платформа содержит только один контроллер оперативной памяти, таблица SRAT (System Resource Affinity Table), декларирующая приближенность процессорных ядер к контроллерам памяти, отсутствует. Очевидно, исследуемый ноутбук не является NUMA-платформой, но операционная система, в целях унификации, рассматривает его как NUMA-систему с одним доменом, о чем говорит строка NUMA Nodes = 1. Факт, принципиальный для наших экспериментов – кэш память данных первого уровня имеет размер 32 килобайта на каждое из четырех ядер. Два логических процессора, разделяющие одно ядро, используют кэш-память первого и второго уровней совместно.

Исследуемая операция

Исследовать будем зависимость скорости чтения блока данных от его размера. Для этого выберем наиболее производительный метод, а именно чтение 256-битных операндов посредством AVX-инструкции VMOVAPD. На графиках по оси X отложен размер блока, по оси Y – скорость чтения. В окрестности точки X, соответствующей размеру кэш-памяти первого уровня, ожидаем увидеть точку перегиба, поскольку производительность должна упасть после того, как обрабатываемый блок выйдет за пределы кэш-памяти. В нашем тесте, в случае многопоточной обработки, каждый из 16 инициируемых потоков, работает с отдельным диапазоном адресов. Для управления технологией Hyper-Threading в рамках приложения, в каждом из потоков используется API-функция SetThreadAffinityMask, задающая маску, в которой каждому логическому процессору соответствует один бит. Единичное значение бита разрешает использовать заданный процессор заданным потоком, нулевое значение – запрещает. Для 8 логических процессоров исследуемой платформы, маска 11111111b разрешает использовать все процессоры (Hyper-Threading включен), маска 01010101b разрешает использовать по одному логическому процессору в каждом ядре (Hyper-Threading выключен).

На графиках используются следующие сокращения:

MBPS (Megabytes per Second)скорость чтения блока в мегабайтах в секунду;

CPI (Clocks per Instruction)количество тактов на инструкцию;

TSC (Time Stamp Counter)счетчик процессорных тактов.

Примечание.Тактовая частота регистра TSC может не соответствовать тактовой частоте процессора при работе в режиме Turbo Boost. Это необходимо учитывать при интерпретации результатов.

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

Опыт №1. Один поток

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора
Рис.2 Чтение одним потоком

Максимальная скорость 213563 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт.

Опыт №2. 16 потоков на 4 процессора, Hyper-Threading выключен

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора
Рис.3 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно четырем

Hyper-Threading выключен. Максимальная скорость 797598 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт. Как и ожидалось, по сравнению с чтением одним потоком, скорость выросла приблизительно в 4 раза, по количеству работающих ядер.

Опыт №3. 16 потоков на 8 процессоров, Hyper-Threading включен

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора
Рис.4 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно восьми

Hyper-Threading включен. Максимальная скорость 800722 мегабайт в секунду, в результате включения Hyper-Threading почти не выросла. Большой минус – точка перегиба имеет место при размере блока около 16 килобайт. Включение Hyper-Threading немного увеличило максимальную скорость, но падение скорости теперь наступает при вдвое меньшем размере блока – около 16 килобайт, поэтому существенно упала средняя скорость. Это не удивительно, каждое ядро имеет собственную кэш-память первого уровня, в то время, как логические процессоры одного ядра, используют ее совместно.

Источник

Что такое Hyper-Threading?

Основные моменты:

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

Технология Intel® Turbo Boost.

Новейшие процессоры Intel® Core™.

Процессоры Intel® Core™ i9.

Вот почему технология Intel® Hyper-Threading (технология Intel® HT) помогает процессорам выполнять больше задач одновременно.time. 1

Вот почему технология Intel® Hyper-Threading (технология Intel® HT) помогает процессорам выполнять больше задач одновременно.time. 1

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

Однако преимущества большого количества ядер не всегда подчеркиваются. В чем отличие между однопоточными и многопоточными приложениями? Что представляет собой технология Hyper-Threading, и чем она отличается от обычной многопоточности?

Чтобы лучше понять преимущества дополнительных ядер и технологии Intel® Hyper-Threading, рассмотрим их применимо к играм и регулярно используемым приложениям.

Что такое многопоточность?

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

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

Источник

Повышенная производительность для многих бизнес-приложений

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

Технология Intel® Hyper-Threading реализована в новейших процессорах Intel® Core™ vPro™, семействе процессоров Intel® Core™, семействе процессоров Intel® Core™ M и семействе процессоров Intel® Xeon®. При использовании одного из этих процессоров Intel® вместе с набором микросхем, а также операционной системы и BIOS с поддержкой технологии Intel® Hyper-Threading можно получить следующие преимущества.

Превосходная графика без компромиссов

Технология Intel® Hyper-Threading позволяет энтузиастам мультимедийных технологий создавать, редактировать и кодировать файлы с большим объемом графических данных при параллельной работе нескольких фоновых приложений, таких как антивирусные программы, без ущерба для производительности системы.

Чем больше задач, тем выше эффективность работы

Процессоры с одновременной поддержкой технологий Intel® Hyper-Threading и Intel® Turbo Boost (или Intel® Turbo Boost 2.0, реализованной в новейших процессорах Intel® Core™ i5 и более производительных процессорах), обеспечивают более высокую производительность и увеличивают скорость выполнения задач. Такое сочетание технологий позволяет одновременно обрабатывать несколько потоков, динамически адаптироваться к нагрузке и автоматически отключать неактивные ядра. Это повышает тактовую частоту процессора в задействованных ядрах, обеспечивая еще большую производительность для многопоточных приложений.

Благодаря технологии Intel® Hyper-Threading предприятия получают следующие возможности:

Оценка готовности системы

Технология Intel® Hyper-Threading используется в различных ноутбуках, настольных ПК, серверах и рабочих станциях. Выбирайте системы с логотипом технологии Intel® Hyper-Threading, который подтверждает, что производитель вашей системы использовал технологию Intel® Hyper-Threading.

Источник

Что такое SMT (Hyper-Threading) — плюсы и минусы

Пока я радую свои графоманские пристрастия написанием детальной технической статьи про «Windows Performance Station», захотелось поделиться своими мыслями о том, что хорошего и плохого приносит SMT в процессоры «AMD» и «Intel», и как тут поможет «Windows Performance Station».

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Тем, кому интересна данная тема, добро пожаловать под кат…

Итак, для начала давайте определимся, что такое SMT.

Как говорит нам википедия, SMT (от англ. simultaneous multithreading) это одновременная многопоточность, т.е. несколько потоков выполняются одновременно, а не последовательно, как это происходит во «временной многопоточности».

Многие знают эту технологию под названием «Intel Hyper-Threading», про неё уже всё давно написано, но до сих пор я сталкиваюсь с тем что многие разработчики, и, тем более, обыватели не понимают в чём основная суть «одновременного» выполнения нескольких команд одним ядром процессора и какие проблемы это несёт.

Для начала поговорим про временную многопоточность.

До реализации технологии SMT в виде «Hyper-Threading» использовалась технология «временной многопоточности».

Тут всё просто, представим, что у нас есть один конвейер и один рабочий (Ядро ЦП), который выполняет операции над числами и записывает результат. Предположим, для этих операций ему нужна отвёртка и гаечный ключ. Операционная система (ОС) складывает нашему рабочему на конвейер по порядку одну операцию для отвёртки, а за ней одну операцию для гаечного ключа. Один рабочий в один момент времени может оперировать или только гаечным ключом или только отвёрткой. Таким образом, выкладывая разное количество разных блоков, ОС определяет приоритет выполнения тех или иных операций от разных приложений. Пропорцию одних блоков к другим мы можем указывать внутри ОС, когда указываем приоритет процесса. Именно это и делают все диспетчеры задач в т.ч. и «Windows Performance Station». Это приоритизирование распространяется далее на механизмы SMT и всю работу с конвейерами.

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

С появлением SMT ситуация становится чуть сложнее.

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

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

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Исходя из этого, когда на конвейере находится операция (A и B) с одной стороны и (D и E) с другой стороны — всё отлично, но при распараллеливании цепочки вычислений могут получиться две проблемы:

1. С одной стороны конвейера оказалось действие (A и B) = С, а с другой (D и E) = C,

т.е. нужно записать сначала одно значение C, а потом второе значение C, но не одновременно (конфликт по управлению).

2. С одной стороны конвейера оказалось действие (A и B) = C, а с другой (A и C) = D,

т.е. нужно сначала посчитать C, а потом посчитать D, но не одновременно (конфликт по данным).

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

Предсказатель переходов, как понятно из названия, осуществляет предсказание 🙂

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

В свою очередь, кэш процессора, необходим для быстрого решения второй проблемы, когда мы останавливаем решение выражения (A и C) = D и пишем в кэш результат выполнения (A и B) = C, после чего сразу вычисляем (A и C) = D.

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

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Все эти пляски вокруг угадывания процессором того, как распараллелить текущие операции, приводят к серьёзным потерям энергии и к ощутимым фризам, когда происходит голодание разнотипных задач на ядрах с SMT.

Вообще, стоит держать в уме, что «Intel» разработала «Hyper-Threading» одновременно с созданием своих первых многоядерных процессоров «Xeon» и, по сути, эту технологию можно считать эдаким компромиссом когда ставится двойной конвейер на одно ядро.

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

Примечательно, что на сайте «Intel» в рекламном ролике показывается скорее двухядерность, нежели «Hyper-Threading», тот кто дочитал до этого момента, наверняка уже догадался почему 🙂

Изображение из видео:

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Более точное изображение:

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Какой вывод можно здесь сделать и что улучшить?

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

Вот тут как раз нам и поможет управление задачами в ОС.

Как я и написал ранее, мы можем сортировать блоки, выкладываемые на конвейер, ещё на этапе обработки задач ядром ОС. С помощью приоритетов и разделения процессов по ядрам процессора, можно выкладывать определённые блоки на конвейер в нужном количестве и класть разнотипные блоки для разных виртуальных ядер, чтобы не наступало голодание разнотипных задач. Именно для этой задачи динамического анализа в «Windows Performance Station» мы объединили нейросеть и диспетчер задач. В итоге, нейросеть анализирует задачу и раскладывает её в зависимости от полученных данных по разным правилам, благодаря чему, каждое ядро в паре SMT выполняет разные задачи.

что такое гипертрейдинг процессора. Смотреть фото что такое гипертрейдинг процессора. Смотреть картинку что такое гипертрейдинг процессора. Картинка про что такое гипертрейдинг процессора. Фото что такое гипертрейдинг процессора

Благодаря такому подходу, процессоры с SMT в Windows могут более эффективно работать с многозадачностью и многопоточными процессами. И именно поэтому нас весьма порадовало появление SMT в новых процессорах «AMD Ryzen».

Приложение «Windows Performance Station» бесплатное и не содержит рекламы, его можно скачать с нашего сайта: winperst*ru

Большое спасибо всем, кто осилил данный текст 🙂

Источник

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

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