Hyper-threading — Википедия
Материал из Википедии — свободной энциклопедии
Hyper-threading (англ. hyper-threading — гиперпоточность, официальное название — hyper-threading technology, HTT или HT) — технология, разработанная компанией Intel для процессоров на микроархитектуре NetBurst. HTT реализует идею «одновременной многопоточности» (англ. simultaneous multithreading, SMT). HTT является развитием технологии суперпоточности (англ. super-threading), появившейся в процессорах Intel Xeon в феврале 2002 и в ноябре 2002 добавленной в процессоры Pentium 4[1]. После включения HTT один физический процессор (одно физическое ядро) определяется операционной системой как два отдельных процессора (два логических ядра). При определённых рабочих нагрузках использование HTT позволяет увеличить производительность процессора. Суть технологии: передача «полезной работы» (англ. useful work) бездействующим исполнительным устройствам (англ. execution units).
HTT не реализована в процессорах серии Core 2 («Core 2 Duo», «Core 2 Quad»).
В процессорах Core i3, Core i7 и некоторых Core i5 была реализована сходная по своим принципам технология, сохранившая название hyper-threading. При включении технологии каждое физическое ядро процессора определяется операционной системой как два логических ядра.
Также сходная технология присутствует в некоторых процессорах серий Itanium[2] и Atom[3].
Процессор, поддерживающий технологию hyper-threading:
- может хранить состояние сразу двух потоков;
- содержит по одному набору регистров и по одному контроллеру прерываний (APIC) на каждый логический процессор.
Для операционной системы это выглядит как наличие двух логических процессоров (англ. logical processor). У каждого логического процессора имеется свой набор регистров и контроллер прерываний (APIC). Остальные элементы физического процессора являются общими для всех логических процессоров.
Рассмотрим пример. Физический процессор выполняет поток команд первого логического процессора. Выполнение потока команд приостанавливается по одной из следующих причин:
Физический процессор не будет бездействовать, а передаст управление потоку команд второго логического процессора. Таким образом, пока один логический процессор ожидает, например, данные из памяти, вычислительные ресурсы физического процессора будут использоваться вторым логическим процессором[4].
Преимуществами HTT считаются:
По утверждениям компании Intel, после реализации HTT в Pentium 4 и Xeon 2001-2002 года:
- площадь кристалла и энергопотребление в первой реализации увеличились менее чем на 5 %
- в некоторых задачах производительность увеличилась на 15—30 %[7][6]
- прибавка к скорости составила 30 %[8] по сравнению с аналогичными процессорами Pentium 4, не поддерживающими HTT;
Прибавка к производительности изменяется от приложения к приложению. Скорость выполнения некоторых программ может даже уменьшиться. Это, в первую очередь, связано с «системой повторения» (англ. replay) процессоров Pentium 4, занимающей необходимые вычислительные ресурсы, отчего и начинают «голодать» другие потоки[9][10].
Информация в этой статье или некоторых её разделах устарела. Вы можете помочь проекту, обновив её и убрав после этого данный шаблон. |
- ↑ Процессоры Intel Pentium 4 3.06GHz с технологией «hyper-threading» (неопр.). X-bit labs. Дата обращения 4 июня 2014. Архивировано 31 мая 2014 года.
- ↑ Процессоры Itanium с поддержкой Hyper-threading
- ↑ Процессоры Atom с поддержкой Hyper-threading
- ↑ Техническое описание Архивировано 24 февраля 2008 года. (англ.) технологии «hyper-threading» на сайте компании Intel.
- ↑ Hyper-Threading Technology // Intel Technology Journal Volume 06 Issue 01 (February 14, 2002), ISSN 1535766X p.7 » This implementation of Hyper-Threading Technology added less than 5% to the relative chip size and maximum power requirements»
- ↑ 1 2 How to Determine the Effectiveness of Hyper-Threading Technology with an Application // Intel, April 28, 2011
- ↑ Hyper-Threading Technology // Intel Technology Journal Volume 06 Issue 01 (February 14, 2002), ISSN 1535766X p.14: «Measured performance on the Intel Xeon processor MP with Hyper-Threading Technology shows performance gains of up to 30% on common server application benchmarks for this technology. »
- ↑ Summary: In Some Cases The P4 3.0HT Can Even Beat The 3.6 GHz Version : Single CPU in Dual Operation: P4 3.06 GHz with Hyper-Threading Technology (неопр.). Tomshardware.com (14 ноября 2002). Дата обращения 5 апреля 2011.
- ↑ Керученько Я., Малич Ю., Левченко В.Replay: неизвестные особенности функционирования ядра Netburst // F-center.ru, 2005
- ↑ Ватутин Э. И., Титов В. С. Особенности реализации технологии «hyper-threading» в процессорах Intel «Pentium 4» на примере выполнения кода разного типа, 2005
Технология Intel Hyper-Threading — что это и как работает
Впервые технология Hyper-Threading (HT, гиперпоточность) появилась 15 лет назад — в 2002 году, в процессорах Pentium 4 и Xeon, и с тех пор то появлялась в процессорах Intel (в линейке Core i, некоторых Atom, в последнее время еще и в Pentium), то исчезала (ее поддержки не было в линейках Core 2 Duo и Quad). И за это время она обросла мифическими свойствами — дескать ее наличие чуть ли не удваивает производительность процессора, превращая слабые i3 в мощные i5. При этом другие говорят что HT — обычная маркетинговая уловка, и толку от нее мало. Правда как обычно по середине — местами толк от нее есть, но двухкртаного прироста ждать точно не стоит.
Техническое описание технологии
Начнем с определения, данного на сайте Intel:
Технология Intel® Hyper-Threading (Intel® HT) обеспечивает более эффективное использование ресурсов процессора, позволяя выполнять несколько потоков на каждом ядре. В отношении производительности эта технология повышает пропускную способность процессоров, улучшая общее быстродействие многопоточных приложений.
В общем понятно то, что ничего не понятно — одни общие фразы, однако вкраце технологию они описывают — HT позволяет одному физическому ядру обрабатывать одновременно несколько (обычно два) логических потока. Но как? Процессор, поддерживающий гиперпоточность:
- может хранить информацию сразу о нескольких выполняющихся потоках;
- содержит по одному набору регистров (то есть блоков быстрой памяти внутри процессора) и по одному контроллеру прерываний (то есть встроенному блоку процессора, отвечающему за возможность последовательной обработки запросов о наступлении какого-либо события, требующего немедленного внимания, от разных устройств) на каждый логический процессор.
Допустим перед процессором стоят две задачи. Если процессор имеет одно ядро, то он будет выполнять их последовательно, если два — то параллельно на двух ядрах, и время выполнения обеих задач будет равно времени, затраченному на более тяжелую задачу. Но что если процессор одноядерный, но поддерживает гиперпоточность? Как видно на картинке выше при выполнении одной задачи процессор не занят на 100% — какие-то блоки процессора банально не нужны в данной задаче, где-то ошибается модуль предсказания переходов (который нужен для предсказания, будет ли выполнен условный переход в программе), где-то происходит ошибка обращения к кэшу — в общем и целом при выполнении задачи процессор редко бывает занят больше, чем на 70%. А технология HT как раз «подпихивает» незанятым блокам процессора вторую задачу, и получается что одновременно на одном ядре обрабатываются две задачи. Однако удвоения производительности не происходит по понятным причинам — очень часто получается так, что двум задачам нужен один и тот же вычислительный блок в процессоре, и тогда мы видим простой: пока одна задача обрабатывается, выполнение второй на это время просто останавливается (синие квадраты — первая задача, зеленые — вторая, красные — обращение задач к одному и тому же блоку в процессоре):
Плюсы и минусы технологии
С учетом того, что кристалл процессора с поддержкой HT физчески больше кристалла процессора без HT в среднем на 5% (именно столько занимают дополнительные блоки регистров и контроллеры прерываний), а поддержка HT позволяет нагрузить процессор на 90-95%, то в сравнении с 70% без HT мы получаем, что прирост в лучшем случае будет 20-30% — цифра достаточно большая.
Однако не все так хорошо: бывает, что прироста производительности от HT нет вообще, и даже бывает так, что HT ухудшает производительность процессора. Это бывает по многим причинам:
- Нехватка кэш-памяти. К примеру в современных четырехядерных i5 находится 6 мб кэша L3 — по 1.5 мб на ядро. В четырехядерных i7 с HT кэша уже 8 мб, но так как логических ядер 8, то мы получаем уже только 1 мб на ядро — при вычислениях некоторым программам этого объема может не хватать, что приводит к падению производительности.
- Отсутствие оптимизации ПО. Самая основная проблема — программы считают логические ядра физическими, из-за чего при параллельном выполнении задач на одном ядре часто возникают задержки из-за обращения задач к одному и тому же вычислительному блоку, что в итоге сводит сводит прирост производительности от HT на нет.
- Зависимость данных. Вытекает из предыдущего пункта — для выполнения одной задачи требуется результат другой, а она еще не выполнена. И опять же мы получаем простой, снижение загрузки на процессор и небольшой прирост от HT.
Таких много, ибо для вычислений HT это манна небесная — тепловыделение практически не растет, процессор особо больше не становится, а при правильной оптимизации можно получить прирост до 30%. Поэтому ее поддержку быстро внедрили в те программы, где легко можно сделать распараллеливание нагрузки — в архиваторы (WinRar), программы для 2D/3D моделирования (3ds Max, Maya), программы для обрабокти фото и видео (Sony Vegas, Photoshop, Corel Draw).
Программы, плохо работающие с гиперпоточностью
Традиционно это большинство игр — их обычно бывает трудно грамотно распараллелить, поэтому зачастую четырех физических ядер на высоких частотах (i5 K-серии) более чем хватает для игр, распараллелить которые под 8 логических ядер в i7 оказывается непосильной задачей. Однако стоит учитывать и то, что есть фоновые процессы, и если процессор не поддерживает HT, то их обработка ложится на физические ядра, что может замедлить игру. Тут i7 с HT оказывается в выигрыше — все фоновые задачи традиционно имеют пониженный приоритет, поэтому при одновременной работе на одном физическом ядре игры и фоновой задаче игра будет получать повышенный приоритет, и при этом фоновая задача не будет «отвлекать» занятые игрой ядра — именно поэтому для стриминга или записи игр лучше брать i7 с гиперпоточностью.
Итоги
Пожалуй тут остается только один вопрос — так имеет ли смысл брать процессоры с HT или нет? Если вы любите держать одновременно открытыми пяток программ и при этом играть в игры, или же занимаетесь обработкой фото, видео или моделированием — да, разумеется стоит брать. А если вы привыкли перед запуском тяжелой программы закрывать все другие, и не балуетесь обработкой или моделированием, то процессор с HT вам ни к чему.
Еще раз о Hyper-Threading / Habr
Было время, когда понадобилось оценить производительность памяти в контексте технологии 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 технология, что это такое? Принцип работы HT, плюсы и минусы от использования технологии.
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 первого поколения, пропустив серию Core 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, в BIOS всегда можно отключить технологию гиперпоточности.
Что такое Hyper-Threading и Simultaneous MultiThreading?
original text by logicalincrements.com
С выходом 8 поколения процессоров Intel, у моделей Core i3 пропала технология Hyper-Threading (HT). Например, у нового Intel i3-8100 теперь 4 физических ядра и 4 потока, в то время как у i3-7100 из предыдущего поколения было всего 2 ядра и 4 потока.
Так что такое Hyper-Threading (гипертрединг), чем он отличается от своего конкурента — Simultaneous Multi-Threading (одновременная многопоточность) от AMD ?
Что лучше: двухъядерный процессор с гипертредингом или четырехъядерный без него? Обо всем по порядку!
Ты говоришь Hyper-Threading, я говорю Simultaneous MultiThreading…
Так в чем же разница между гипертредингом и одновременной многопоточностью? В принципе, ее и нет! Оба термина описывают одну технологию, которая дублирует опеределенные части физического ядра для ускорения многопоточных вычислений. Hyper-Threading — это маркетнговый бренд Intel, в то время как одновременная многопоточность является общим понятием.
Подробнее о HT/SMT?
Наличие технологии HT/SMT в процессоре не значит, что у него больше физических ядер! Тем не менее, данная технология значительно повышает их производительность, при этом уменьшая стоимость производства.
Чтобы понять принцип работы HT/SMT, необходимо сначала понять принцип работы процессора.
Для выполнения любой задачи на вашем PC (проверка почты, например), процессору необходимо обработать определенный набор инструкций.
Обычное ядро процессора не может параллельно обрабатывать несколько инструкций одновременно, только по одной за раз, да и не все инструкции одинаковы: разные инструкции обрабатываются разными частями ядра процессора.
Здесь на помощь и приходит Hyper-Threading или Simultaneous MultiThreading. С помощью данной технологии Windows видит уже не одно ядро, а два виртуальных, которые она воспринимает, как физические. Это позволяет разбивать операции на маленькие части, которые впоследствии позволяют физическому ядру обработать их более эффективно. Код, оптимизированый для SMT может выполняться в два раза быстрее на одном физическом ядре, чем обычный.
То есть гипертрединг — наш друг?
Да. Хотя, стоит заметить, что разницу в производительности вы заметите только в приложениях, оптимизированных под использование данной технологии. На фундаментальном уровне, однако, наличие большого количества физических ядер все же лучше, так как в гипертрединге виртуализируется только определенная часть ядра. Беря это во внимание, процессоры с гипертредингом стоят дешевле, чем процессоры с большим количеством ядер.
Что с восьмым поколением процесоров Intel?
Теперь гипертрединг будет только у моделей i7. У нового i7-8700K выросло количество физических ядер до 6, а количество потоков — до 12, по два логических ядра на одно физическое. У i7-7700K из прошлого поколения было только 4 ядра и 8 потоков.
Процессоры модели i5 будут иметь уже 6 физических ядер (было 4) и 6 потоков (по одному на ядро), так как у них нет Hyper-Threading.
У моделей i3 теперь 4 ядра, но отсутствует гипертрединг.
А что с AMD?
Архитектура Zen поддерживает технологию Simultaneous MultiThreading в процессорах Ryzen 5, Ryzen 7 and Threadripper. У Threadripper 1950X (название соответствует, не правда ли?) аж 16 ядер и 32 потока.
Процессоры линейки A, а также процессоры нового поколения Athlon, основаны на старой архитектуре, не поддерживающей SMT.
Вывод
HT/SMT является отличной технологией, но наличие большого количества физических ядер все же приоритетнее. Таким образом, если вы выбираете из двух процессоров одной ценовой категории, выбирайте тот, у которого больше физических ядер.
Hyper threading что это и зачем реализовано в процессорах Intel
Здравствуйте любители компов и железа.
Хотели бы вы в своем компьютере иметь высокопроизводительный процессор, молниеносно выполняющий много задач одновременно? Кто бы отказался, верно? Тогда предлагаю вам познакомиться с технологией hyper threading: что это и как действует, вы узнаете из данной статьи.
Объяснение понятия
Hyper-threading переводится с английского как «гиперточность». Такое громкое название технология получила не просто так. Ведь оснащенный ею один физический процессор операционная система принимает за два логических ядра. Следовательно, обрабатывается больше команд, а производительность при этом не падает.
Как такое возможно? Благодаря тому, что процессор:
- Сохраняет информацию сразу о нескольких выполняемых потоках;
- На каждый логический проц приходится по одному набору регистров — блоков быстрой внутренней памяти, а также по одному блоку прерываний. Последний отвечает за последовательное выполнение запросов от разных устройств.
Как это выглядит на деле? Допустим, сейчас физический процессор обрабатывает команды первого логического проца. Но в последнем произошел какой-то сбой, и ему, к примеру, нужно подождать данные из памяти. Физический CPU не будет терять время зря и сразу переключится на второй логический процессор.
О повышении производительности
КПД физического проца, как правило, составляет не более 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. В противном случае могут возникать задержки. Дело в том, что проги считают логические ядра физическими, поэтому могут посылать разные задачи одному и тому же блоку.
Ждем вас в гостях моего блога.
Удачи друзья.
Технология Hyper-Threading — что это такое? Как включить и использовать? :: SYL.ru
Еще в далеком феврале 2002 года дебютировала фирменная технология от компании «Интел» — Hyper-Threading. Что это такое и почему она получила на сегодняшний день практически повсеместное распространение? Ответ на этот вопрос и не только будет рассмотрен в данном материале.
История появления технологии HT
Первым настольным процессором с поддержкой логической многопоточности стал четвертого поколения Pentium. Hyper-Threading — технология, которая в этом случае позволяла на одном физическом ядре обрабатывать сразу два потока данных. Причем чип этот устанавливался в процессорный разъем PGA478, функционировал он в режиме 32-битных вычислений, а его тактовая частота была равна 3,06 ГГц. До этого ее можно было встретить лишь в серверных процессорных устройствах серии XEON.
После получения успешных результатов в этой нише компания «Интел» решила распространить HT и в настольный сегмент. В дальнейшем в рамках PGA478 было выпущено целое семейство таких процессоров. После того как дебютировал сокет LGA775, НТ была временно призабыта. Но с началом продаж LGA1156 она получила второе дыхание в 2009 году. С тех пор она стала обязательным атрибутом процессорных решений от «Интел», причем как в ультрапроизводительном сегменте, так в бюджетных компьютерных системах.
Концепция данной технологии
Суть технологии Intel Hyper-Threading сводится к тому, что путем минимальных изменений в компоновке микропроцессорного устройства разработчики добиваются того, что на уровне системного и программного обеспечения код обрабатывается в два потока на одном физическом ядре. Все элементы вычислительного модуля при этом остаются без изменений, добавляются лишь специальные регистры и переработанный контроллер прерываний.
Если по каким-либо причинам физический модуль вычислений начинает простаивать, то на нем запускается второй программный поток, а первый при этом дожидается получения необходимых данных или информации. То есть если раньше простои в работе вычислительной части чипов были достаточно частыми, то практически полностью исключает такую возможность Hyper-Threading. Что это за технология, рассмотрим ниже.
На аппаратном уровне
Повышенные требования выдвигаются к аппаратному обеспечению в случае использования Hyper-Threading. Материнская плата, BIOS и процессор должны поддерживать ее. По крайней мере, в рамках процессорного разъема PGA478 на подобную совместимость необходимо было обращать повышенное внимание. Не все наборы системной логики в этом случае были ориентированы на использование НТ, как и процессорные устройства. И даже если в номенклатуре системной платы присутствовала столь желанная аббревиатура, то это вовсе не означало, что чипы правильно инициировались по той причине, что необходимо было обновить BIOS.
Кардинально изменилась ситуация в этом случае начиная с LGA1156. Данная вычислительная платформа была изначально заточена под применение Hyper-Threading. Поэтому каких-либо существенных проблем с применением последней в данном случае у пользователей не возникало. Это же самое справедливо и для последующих процессорных разъемов, таких как LGA1155, LGA1151 и LGA1150.
Аналогичным отсутствием проблем с применением НТ могли похвастаться и высокопроизводительные сокеты LGA1366, LGA2011 и LGA2011-v3. В довершение к этому прямой конкурент «Интел» — компания AMD — в последнем поколении своих процессоров для АМ4 реализовала весьма схожую технологию логической многозадачности — SMT. Она использует практически идентичную концепцию. Отличие заключается лишь в названии.
Основные компоненты со стороны программного обеспечения
Нужно отметить, что даже в случае полноценной поддержки НТ со стороны аппаратных ресурсов не всегда она будет успешно работать на уровне программного обеспечения. Для начала операционная система должна уметь работать одновременно с несколькими вычислительными ядрами. В устаревших на сегодняшний день версиях системного софта MS-DOS или Windows 98 такой возможности нет. А вот в случае Windows 10 каких-либо проблем не возникает, и эта операционная система уже изначально заточена под такие аппаратные ресурсы персонального компьютера.
Теперь разберемся с тем, как включить Hyper-Threading в Windows. Для этого на компьютере должно быть установлено все необходимое управляющее прикладное программное обеспечение. Как правило, это специальная утилита с компакт-диска системной платы. В ней есть специальная вкладка, на которой можно в режиме реального времени изменить значения в БИОСе. Это, в свою очередь, приводит к тому, что уже в нем опция Hyper-Threading переходит в положение Enabled, а также активируются дополнительные логические потоки, причем даже без перезагрузки операционной системы.
Включение технологии
Многие начинающие пользователи достаточно часто на первоначальном этапе использования нового компьютера задаются одним важным вопросом относительно Hyper-Threading: как включить ее? Существует два возможных способа решения этой задачи. Один из них — это использование БИОСа. В этом случае необходимо выполнить такие действия:
- При включении ПК инициализируем процедуру входа в БИОС. Для этого достаточно при появлении тестового экрана зажать кнопку DEL (в некоторых случаях необходимо зажимать F2).
- После появления синего экрана переходим с применением навигационных клавиш на вкладку ADVANCED.
- Затем на ней находим пункт Hyper-Threading.
- Напротив него необходимо установить значение Enabled.
Ключевой недостаток данного способа — это необходимость перезагрузки персонального компьютера для выполнения данной операции. Реальной альтернативой ей является использование конфигурационной утилиты системной платы. Этот метод был детально описан в предыдущем разделе. И в этом случае заходить в БИОС совсем не обязательно.
Отключение НТ
По аналогии со способами включения НТ существует два способа дезактивации данной функции. Один из них можно выполнить лишь только в процессе инициализации компьютерной системы. Это, в свою очередь, не совсем удобно на практике. Поэтому специалисты останавливают свой выбор на втором методе, который основывается на использовании компьютерной утилиты материнской платы. В первом случае выполняются такие манипуляции:
- При загрузке электронно-вычислительной машины заходим в базовую систему ввода — вывода (второе ее название BIOS) по ранее изложенной методике.
- Перемещаемся с применением клавиш управления курсором в пункт меню Advanced.
- Далее необходимо найти пункт меню Hyper-Threading (в некоторых моделях системных плат он может обозначаться как НТ). Напротив него с помощью кнопок PG DN и PG UP устанавливаем значение Disabled.
- Сохраняем снесенные изменения с помощью F10.
- Выходим из БИОСа и перезагружаем персональный компьютер.
Во втором случае при использовании диагностической утилиты системной платы нет необходимости перезагружать ПК. Это ключевое его преимущество. Алгоритм в этом случае идентичный. Разница состоит в том, что здесь используется предустановленная специальная утилита от производителя системной платы.
Ранее были описаны два основные способа того, как отключить Hyper-Threading. Хоть и более сложным номинально считается второй из них, но он более практичный по той причине, что не требует перезагрузки компьютера.
Модели процессоров с поддержкой НТ
Изначально, как было уже отмечено ранее, поддержка Hyper-Threading была реализована лишь только в процессорных устройствах серии Pentium 4 и только в исполнении PGA478. А вот уже в рамках LGA1156 и более поздних вычислительных платформ рассматриваемая в рамках данного материала технология использовалась практически во всех возможных моделях чипов. С ее помощью процессоры Celeron превращались из одноядерного в двухпоточное решение. В свою очередь, Penrium и i3 с ее помощью могли уже обрабатывать 4 потока кода. Ну а флагманские решения серии i7 способны одновременно работать с 8 логическими процессорами.
Для наглядности приведем применение НТ в рамках актуальной вычислительной платформы от Intel – LGA1151:
- ЦПУ серии Celeron не поддерживают эту технологию и имеют всего 2 вычислительных блока.
- Чипы линейки Pentium оснащены 2 ядрами и четырьмя потоками. Как результат, НТ в этом случае поддерживается в полном объеме.
- Аналогичную компоновку имеют и более производительные процессорные устройства модельного ряда Core i3: 2 физических модуля могут работать в 4 потока.
- Как и наиболее бюджетные чипы Celeron, Core i5 не оснащены поддержкой НТ.
- Флагманские решения i7 тоже поддерживают HT. Только в этом случае вместо 2 реальны ядер есть уже 4 блока обработки кода. Они, в свою очередь, уже могут работать в 8 потоков.
Hyper-Threading — что это за технология и каково ее основное назначение? Это логическая многозадачность, которая позволяет путем минимальных корректировок аппаратного обеспечения увеличить производительность компьютерной системы в целом.
В каких случаях эту технологию наиболее оптимально использовать?
В некоторых случаях, как было отмечено ранее, НТ увеличивает быстродействие, с которым обрабатывает программный код процессор. Hyper-Threading может эффективно работать только с распаленным софтом. Типичными его примерами являются кодировщики видео и аудиоконтента, профессиональные графические пакеты и архиваторы. Также наличие такой технологии позволяет существенно улучшить быстродействие серверной системы. А вот при однопоточной реализации программного кода нивелируется наличие Hyper-Threading, то есть получается обычный процессор, который решает на одном ядре одну задачу.
Преимущества и недостатки
Есть определенные недостатки у технологии Intel Hyper-Threading. Первый из них — это возросшая стоимость ЦПУ. Но большее быстродействие и улучшенная компоновка кремниевого кристалла в любом случае увеличат цену ЦПУ. Также возросшая площадь полупроводниковой основы процессорного устройства приводит к повышению уровня потребляемой мощности и температуры. Разница в этом случае несущественная, и она не превышает 5 %, но она все-таки есть. Больше каких-либо существенных недостатков в этом случае нет.
Теперь о преимуществах. На быстродействие и производительность фирменная технология НТ от компании «Интел» не оказывает, то есть ниже определенного порога у такого компьютера опуститься не получится. Если же программное обеспечение прекрасно поддерживает распараллеленные вычисления, то будет наблюдаться определённый прирост быстродействия и, конечно же, производительности.
Как показывают тесты, в некоторых случаях прирост может достигать 20 %. Наиболее оптимизированным софтом в этом случае являются различные перекодировщики мультимедийного контента, архиваторы и графические пакеты. А вот с играми все уж не так и хорошо. Они, в свою очередь, способны работать в 4 потока, и, как результат, флагманские чипы не способны в этом случае опередить процессорные решения среднего уровня.
Современная альтернатива от AMD
Технология Hyper-Threading не единственная в своем роде на сегодняшний день. У нее есть реальная альтернатива. Компания AMD с выпуском платформы АМ4 предложила ей достойного конкурента в лице SMT. На аппаратном уровне это идентичные решения. Только вот флагман от «Интел» может обработать 8 потоков, а ведущий чип AMD — 16. Уже одно это обстоятельство указывает на то, что более перспективным является второе решение.
Поэтому компания «Интел» вынуждена в срочном порядке корректировать свои планы по выпуску продукции и предлагать совершенно новые процессорные решения, которые смогут составить достойную конкуренцию новичкам от AMD. Только вот на сегодняшний день они еще не переставлены. Поэтому если нужна доступная компьютерная платформа, то лучше выбирать LGA1151 от «Интел». Если необходим задел по производительности, то предпочтительней будет уже АМ4 от AMD.
Отзывы владельцев
Каких-либо больших и существенных недостатков за Intel Hyper-Threading в процессе эксплуатации замечено не было. По крайней мере, именно на это указывают как узкопрофильные специалисты компьютерной тематики, так обычные пользователи. А вот преимуществ у нее достаточно много. Ключевое из них — это увеличение производительности при обработке специального софта. При этом кардинальных изменений в структуре процессора не происходит, и его параметры практически не изменяются. Также еще одной важной особенностью НТ является то, что она обеспечивает определенный запас быстродействия компьютерной системы.
Заключение
Теперь подведем итоги относительно Hyper-Threading. Это что такое? Рассмотренная технология предопределила развитие компьютерных технологий на многие годы вперед. Ее появление позволило в ряде задач увеличить быстродействие путем минимальных изменений в компоновке полупроводникового кристалла центрального процессорного устройства. Еще один важный аргумент в этом случае заключается в том, что даже прямой конкурент «Интел» в лице AMD ее в какой-то степени позаимствовал.
Конечно, на просторах Всемирной паутины по сей день идут споры относительно того, кто первый до нее додумался. Некоторые патенты указывают на то, что это была AMD. Но одно дело додуматься, а другое — реализовать. И здесь все полностью на стороне «Интел». Она первой представила свой революционный «Пентиум 4» с логотипом НТ и двумя логическими ядрами. До этого подобным могли похвастаться лишь только серверы. Вот так простым переносом технологии из одной сферы в другую и совершается развитие современных компьютерных технологий.