Hyper-Threading - что это? Как включить Hyper-Threading? Материнские платы с поддержкой Hyper-Threading - цены

Пользователи, которые хоть раз занимались настройкой BIOS, уже вероятно замечали, что там встречается непонятный многим параметр Intel Hyper Threading. Многие не знают, что это за технология и с какой целью она используется. Попробуем разобраться, что собой представляет Hyper Threading и как можно включить использование этой поддержки. Также постараемся разобраться, какие преимущества для работы компьютера дает данная настройка. Здесь в принципе нет ничего сложного для понимания.

Intel Hyper Threading: что это такое?
Если не лезть глубоко в дебри компьютерной терминологии, а выражаться простым языком, то данная технология была разработана для того, чтобы увеличить поток команд, обрабатываемых одновременно центральным процессором. Современные процессорные чипы, как правило, используют имеющиеся вычислительные возможности всего на 70%. Остальное остается, так сказать, про запас. Что же касается обработки потока данных, то в большинстве случаев используется всего один поток, несмотря на то, что в системе применяется многоядерный процессор.

Основные принципы работы
Для того чтобы увеличить возможности центрального процессора, была разработана специальная технология Hyper Threading. Данная технология позволяет легко разбивать один поток команд на два. Также существует возможность добавлять второй поток к уже имеющемуся. Только такой поток является виртуальным и не работает на физическом уровне. Такой подход позволяет существенно увеличить производительность процессора. Вся система, соответственно, начинает работать быстрее. Прирост производительности центрального процессора может достаточно сильно колебаться. Об этом речь еще пойдет отдельно. Однако сами разработчики технологии Hyper Threading утверждают, что до полноценного ядра она не дотягивает. В некоторых случаях использование данной технологии является оправданным на все сто. Если знать суть процессоров Hyper Threading, то результат не заставит долго ждать.

Историческая справка
Окунемся немного в историю данной разработки. Поддержка Hyper Threading впервые появилась только в процессорах Intel Pentium 4. Позже реализация данной технологии была продолжена в серии Intel Core iX (X здесь обозначает серии процессоров). Стоит отметить, что в линейке процессорных чипов Core 2 она по какой-то причине отсутствует. Правда, тогда прирост производительности был довольно слабым: где-то на уровне 15-20%. Это говорило о том, что процессор не обладал необходимой вычислительной мощностью, а созданная технология практически обогнала свое время. Сегодня поддержка технологии Hyper Threading имеется уже практически во всех современных чипах. Для увеличения мощности центрального процессора сам процесс использует всего 5% поверхности кристалла, оставляя при этом место для обработки команд и данных.

Вопрос конфликтов и производительности
Все это конечно хорошо, но при обработке данных в некоторых случаях может наблюдаться замедление работы. Это по большей части связано с так называемым модулем предсказания ветвления и недостаточным объемом кэша, когда осуществляется его постоянная перезагрузка. Если же говорить об основном модуле, то в данном случае ситуация складывается так, что в некоторых случаях первый поток может потребовать данные из второго, которые могут в этот момент оказаться не обработаны или находятся в очереди на обработку. Также не менее распространенными являются ситуации, когда ядро центрального процессора имеет очень серьезную нагрузку, а основной модуль несмотря на это, продолжает посылать не него данные. Некоторые программы и приложения, например, ресурсоемкие онлайн-игры, могут серьезно притормаживать только по тому, что в них отсутствует оптимизация под применение технологии Hyper Threading. Что же получается с играми? Пользовательская компьютерная система со своей стороны пытается оптимизировать потоки данных из приложения на сервере. Проблема в том, что игра не умеет самостоятельно распределять потоки данных, сваливая все в одну кучу. По большому счету, она может быть просто не рассчитана на это. Иногда в двухядерных процессорах рост производительности получается существенно выше, чем в 4-ядерных. Просто у последних не хватает вычислительной мощности.

Как включить Hyper Threading в BIOS?
Мы уже немного разобрались с тем, что собой представляет технология Hyper Threading, и познакомились с историей ее развития. Мы вплотную подобрались к пониманию того, что собой представляет технология Hyper Threading. Как активировать данную технологию для использования в работе процессора? Здесь все делается достаточно просто. Необходимо использовать подсистему управления BIOS. Вход в подсистему осуществляется при использовании клавиш Del, F1, F2, F3, F8, F12, F2+Del и т.д. Если вы используете ноутбук Sony Vaio, то для них предусмотрен специфичный вход при использовании специализированной клавиши ASSIST. В настройках BIOS, если используемый вами процессор поддерживает технологию Hyper Threading, должна иметься специальная строка настройка. В большинстве случаев она выглядит как Hyper Threading Technology, а иногда – как Function. В зависимости от разработчика подсистемы и версии BIOS, настройка данного параметра может содержаться либо в главном меню, либо в расширенных настройках. Чтобы задействовать данную технологию, необходимо войти в меню параметров и установить значение на Enabled. После этого необходимо сохранить выполненные изменения и осуществить перезагрузку системы.

Чем полезна технология Hyper Threading?
В заключение хотелось бы говорить о преимуществах, которые дает использование технологии Hyper Threading. Для чего все это нужно? Зачем необходимо увеличить мощность процессора при обработке информации? Тем пользователям, которые работают с ресурсоемкими приложениями и программами, ничего объяснять не нужно. Многие наверняка знают, что графические, математические, проектировочные пакеты программ в процессе работы требуют очень много системных ресурсов. Из-за этого вся система нагружается настолько, что начинает жутко тормозить. Чтобы этого не происходило, рекомендуется активировать поддержку Hyper Threading.

Hyper-Threading (hyper threading, ‘хайпер тридинг’ , гипер поточность — рус.) — технология разработанная компанией Intel , позволяющая ядру процессора исполнять больше потоков данных чем один (обычно два). Так как было выяснено, что обычный процессор в большинстве задач использует не более 70% всей вычислительной мощности, было решено использовать технологию, позволяющую при простое определённых вычислительных блоков — нагрузить их работой с другим потоком. Это позволяет увеличить производительность ядра от 10 до 80% в зависимости от задачи.

Представление, как Hyper-Threading работает .

Допустим процессор выполняет простые вычисления и при этом простаивает блок инструкций и SIMD расширения.

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

Естественно, виртуальный поток никак не дотягивает до полноценного ядра, но это позволяет добиться практически 100% эффективности вычислительной мощности, загрузив практически весь процессор работой, не давая ему простаивать. При всём при этом, для реализации технологии HT требуется всего около 5% дополнительного места на кристалле, а производительность иногда может добавиться на 50% . В эту дополнительную область входят дополнительные блоки регистров и предсказания ветвлений, которые потоково вычисляют, где можно использоваться вычислительные мощности в данный момент и отправляют туда данные из дополнительного блока адресации.

Впервые, технология появилась на процессорах Pentium 4 , но большого прироста производительности не получилось, так как сам процессор не обладал высокой вычислительной мощностью. Прирост составлял в лучшем случае 15-20% , да и во многих задачах процессор работал значительно медленнее чем без HT .

Замедление работы процессора из-за технологии Hyper Threading , происходит если:

  • Недостаточно кэша для всех данный и он циклически перезагружается, тормозя работу процессора.
  • Данные не могут быть правильно обработаны блоком предсказания ветвления. Происходит в основном из-за отсутствия оптимизации под определённое ПО или поддержки со стороны операционной системы.
  • Также может происходить из-за зависимости данных , когда к примеру, первый поток требует немедленных данных со второго, а они ещё не готовы, либо стоят на очереди в другой поток. Либо циклическим данным требуются определённые блоки для быстрой обработки, а они нагружаются другими данными. Вариаций зависимости данных может быть много.
  • Если ядро и так сильно нагружено, а «недостаточно умный» модуль предсказания ветвлений всё равно посылает данные, которые тормозят работу процессора (актуально для Pentium 4 ).

После Pentium 4 , Intel начала использовать технологию только начиная с Core i7 первого поколения, пропустив серию 2 .

Вычислительной мощности процессоров стало достаточно для полноценной реализации гиперпоточности без особого вреда, даже для не оптимизированных приложений. Позже, Hyper-Threading появилась на процессорах среднего класса и даже бюджетного и портативного. Используется на всех сериях Core i (i3 ; i5 ; i7 ) и на мобильных процессорах Atom (не на всех). Что интересно, двухъядерные процессоры с HT , получают больший выигрыш в производительности, чем четырёх ядерные от использования Hyper-Threading , становясь на 75% полноценными четырёх ядерными.

Где полезна технология HyperThreading?

Полезна она будет для использования вкупе с профессиональными, графическими, аналитическими, математическими и научными программами, видео и аудио редакторами, архиваторами (Photoshop, Corel Draw, Maya, 3D’s Max, WinRar, Sony Vegas & etc). Всем программам в которых используется большое количество вычислений, HT будет однозначно полезна полезна. Благо, в 90% случаев, такие программы неплохо оптимизированы для её использования.

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

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

На материнских платах, которые поддерживают HT , в всегда можно отключить технологию гиперпоточности.

20 января 2015 в 19:43

Еще раз о Hyper-Threading

  • Тестирование IT-систем ,
  • Программирование

Было время, когда понадобилось оценить производительность памяти в контексте технологии 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, даже в этих условиях дало негативный эффект, при небольшой прибавке пиковой скорости, имеет место существенный проигрыш в скорости обработки блоков, размер которых находится в диапазоне от 16 до 32 килобайт.

Всем привет Поговорим сегодня о таком как Hyper-threading, я постараюсь доступно рассказать что это такое и для чего это нужно. В принципе, честно говоря рассказывать особо и нечего. Hyper-threading это технология потоков в процессорах Intel, сами потоки не являются ядрами, однако таки увеличивает производительность процессора. Хотя некоторые продвинутые юзеры считают что никакого положительного эффекта нет, я же замечал совсем обратное.

Эти потоки появились еще в процах Pentium 4 на 478 сокете. Если вы не знаете что это за сокет, то я вам скажу, это очень старый сокет, и наверно не все знаю о нем, хотя это первый сокет, где были процессоры Intel с одним ядром, но двумя потоками. На одно ядро может быть только два потока, вообще эти потоки пришли из семейства серверных процессоров Xeon.

Сама Windows не понимает что такое потоки, она их видит как ядра, поэтому вы можете себе представить, что такое Pentium 4 на 478 сокете, который в виндовсе определялся как двухядерный. Что-то я совсем не написал, что 478 сокет был особо актуален в 2002-2004 годах, ну примерно в это время. Мой первый компьютер был именно на этом сокете

Кстати, Windows 10 в диспетчере задач уже показывает и количество ядер и количество потоков! Если что, то это вкладка Производительность в диспетчере, там выбираете раздел ЦП, и там будет написано сколько ядер и сколько потоков, при этом потоки там обозначаются как логические процессоры.

Что еще интересно, что в процессорах на 775-том сокете, я имею ввиду не Pentium 4 или Pentium D, а те которые новее, то там технология Hyper-threading отсутствовала вообще. Например в Q9650 и близких к нему процессорах не было потоков, хотя Q9650 можно назвать наверно самым мощным процессором на 775-тый сокете. Нет, ну есть конечно еще и QX9770, но он куда горячее и прожорливее..

Нужны ли потоки? Увеличивается ли на самом деле производительность с ними? Я думаю что конечно увеличивается, не даром же эту технологию сперва внедрили, а потом, то есть уже к сегодняшнему времени кардинально доработали, но название менять не стали, так и осталось Hyper-threading.

Сегодня Hyper-threading присутствует в процессорах серии Core i3/i7, есть редкие модели i5, где есть тоже потоки, но там два ядра. Обычно в i5 идет четыре ядра. Это все я пишу без учета сокета, я просто не помню на каком именно сокете идет i5 с потоками, но вроде бы это не 1150 и не 1155 сокет, а старее, вроде 1156.. Еще в ноутбуках есть i5 с потоками, но двумя ядрами. Что мы имеем на деле, например i3 имеет два ядра, но четыре потока, соответственно винда видит i3 как четырехядерный. В i7 уже четыре ядра, но так как есть потоки, то винда соответственно видит его восьмиядерным.

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

Блин, но вот самое главное я не написал, что вообще такое эти потоки? В общем не буду вдаваться в термины всякие, напишу так. Процессор с потоками обрабатывает сразу не один поток, а два. И если есть какой-то простой в потоке, ну мало ли, там может ошибка какая-то, или ожидание данных, то в это время второй поток не останавливается. Это позволяет загрузить процессор максимально, чем без потоков. То есть все это на деле позволяет оптимизировать работу процессора.

По тестам наличие потоков не всегда улучшает производительность, почему так я не знаю, да и вообще в интернетах есть приличный спор на эту тему. Некоторые уверены что с Hyper-threading только хуже и даже рекомендуют его отключать. Может эти слухи пошли со старых процессоров, ну например Pentium 4 или Pentium D (модели D955, D965), в те времена программы не особо были оптимизированы на многопоточную работу.

Но лично мое мнение, что Hyper-threading таки улучшает производительность. Ну смотрите сами, вот у меня стоит Pentium G3220. Добавить к нему потоки и уже будет уже как Core i3, а он дороже нааамного, но при этом и производительнее. Ведь основное отличие i3 от Pentium это именно потоки, это из-за них и цена настолько отличается, все остальное ведь почти одинаково, даже TDP почти такое же. Разве что у i3 немного лучше встроенное видео, но главное, как мне кажется это таки потоки. Сравнивая, я имел ввиду Pentium G3220 и i3-4130, второй дороже почти в два раза.. Ну это как пример.. Так что такие дела ребята

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

16.11.2016

Здравствуйте любители компов и железа.

Хотели бы вы в своем компьютере иметь высокопроизводительный процессор, молниеносно выполняющий много задач одновременно? Кто бы отказался, верно? Тогда предлагаю вам познакомиться с технологией hyper threading: что это и как действует, вы узнаете из данной статьи.


Объяснение понятия

Hyper-threading переводится с английского как «гиперточность». Такое громкое название технология получила не просто так. Ведь оснащенный ею один физический процессор операционная система принимает за два логических ядра. Следовательно, обрабатывается больше команд, а производительность при этом не падает.

Как такое возможно? Благодаря тому, что процессор:

  • Сохраняет информацию сразу о нескольких выполняемых потоках;
  • На каждый логический проц приходится по одному набору регистров - блоков быстрой внутренней памяти, а также по одному блоку прерываний. Последний отвечает за последовательное выполнение запросов от разных устройств.

Как это выглядит на деле? Допустим, сейчас физический процессор обрабатывает команды первого логического проца. Но в последнем произошел какой-то сбой, и ему, к примеру, нужно подождать данные из памяти. Физический не будет терять время зря и сразу переключится на второй логический процессор.

О повышении производительности

КПД физического проца, как правило, составляет не более 70 %. Почему? Часто некоторые блоки просто не нужны для осуществления той или иной задачи. К примеру, когда CPU выполняет банальные вычислительные действия, блок инструкций и SIMD расширения не задействованы. Бывает, что происходит сбой в модуле предсказания переходов или при обращении к кэшу.

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

Появление и реализация

Можно считать, что Hyper-threading уже отметила 15-летний юбилей. Ведь она разработана на базе технологии суперпоточности (англ. super-threading), которая выпущена в 2002 году и впервые начала работу в продуктах Xeon, затем в том же году была интегрирована в Pentium 4. Авторское право на эти технологии принадлежит компании Intel.

HT реализована в процессорах, работающих на микроархитектуре NetBurst, которая отличается высокими тактовыми частотами. Поддержка технологии внедрена в модели семейств Core vPro, M и Xeon. Однако в сериях Core 2 («Duo», «Quad») не интегрирована. Схожая по принципу действия технология реализована в процах Atom и Itanium.

Как включить ее? У вас должен быть не только один из вышеперечисленных процессоров, но также поддерживающая технологию операционная система и биос, в котором есть опция включения и выключения HT. Если ее нет, обновите BIOS.

Плюсы и минусы Hyper-threading

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

  • Стабильное действие нескольких программ параллельно;
  • Уменьшенное время отклика в процессе интернет-серфинга или работы с приложениями.

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

  • Недостаточно кеш-памяти. Например, в 4-ядерных процессорах i7 кэша 8 Мб, но и логических ядер столько же. Получаем всего 1 Мб на ядро, чего для выполнения вычислительных задач большинству программ не хватает. Из-за этого производительность не просто стоит на месте, а даже падает.

  • Зависимость данных. Допустим, первый поток незамедлительно требует информацию со второго, но она еще не готова или стоит в очередь в другой поток. Также бывает, что циклическим данным нужны определенные блоки для быстрого выполнения задачи, но они уже заняты другой работой.
  • Перегрузка ядра. Случается, что ядро может быть уже чрезмерно нагружено, но, несмотря на это, модуль предсказания все равно посылает ему данные, вследствие чего компьютер начинает тормозить.

Где нужна Hyper-threading?

Технология будет полезна при использовании ресурсоемких программ: аудио-, видео- и фоторедакторов, игр, архиваторов. К ним можно отнести Photoshop, Maya, 3D’s Max, Corel Draw, WinRar и пр.

Важно, чтобы ПО было оптимизировано для работы с Hyper-threading. В противном случае могут возникать задержки. Дело в том, что проги считают логические ядра физическими, поэтому могут посылать разные задачи одному и тому же блоку.

Ждем вас в гостях моего блога.