Нажмите "Enter", чтобы перейти к содержанию

Гипертрейдинг что это: Hyper-threading — что это в биосе?

Содержание

Изучаем влияние технологии Hyper-Threading на производительность в играх

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Прочитав комментарии к предыдущему тесту, было решено сделать дополнение. Оно касается технологии многопоточности. Сейчас посмотрим, как сильно влияет на производительность в играх отключение HT (Hyper-Threading) с разным количеством активных ядер. 

Hyper-Threading — это технология от Интел позволяющая на одном ядре процессора обрабатывать сразу два потока данных. В процессорах АМД так же присутствует подобная технология, но носит другое название — Simultaneous MultiThreading (SMT).     

Сегодня дополняем прошлое тестирование данными следующих конфигураций процессора — 8с/8t, 6c/6t и 4c/4t (ядра/потоки). Большинство результатов в режимах 8c/16t, 6c/12t и 4c/8t были взяты из прошлого теста. Они никак не изменились за эти несколько дней т.к конфигурация оборудования, игровые настройки и игровые сохранения, служившие стартом для тестирования, остались прежними. Иными словами, данные полностью актуальны. Исключением стала лишь Watch Dogs Legion. В этой игре тест пришлось полностью переделать со всеми вариантами активных ядер + HT т.к. внутри игры изменилось время суток, а вернуться в игровой момент из прошлого теста возможности не было. 

рекомендации

Предыдущий тест по ссылке — «Тест процессора Core i7-10700K с разным количеством активных ядер в играх.»

Во время тестирования частота процессора, как и в прошлом тесте, была зафиксирована на отметке 5.0 ГГц, частота кольцевой шины на отметке 4,6 ГГц. Память от G.Skill с XMP профилем 4000 МГц 19-19-19-39 1,35v работала в разгоне путем максимального возможного снижения таймингов при безопасном вольтаже для B-die чипов 1,45v. Изменяемыми параметрами сегодня были количество активных ядер — 8, 6 и 4, и включение/отключение технологии HT.     




Тестовая конфигурация и методика тестирования

Итак, приступим.

Настройки графики во всех играх подбирались таким образом, чтобы исключить упор в видеокарту.

Методика тестирования была следующая. Для теста выбирался определенный отрезок игры или игрового бенчмарка, он прогонялся не менее пяти раз, а значения 0,1%, 1% и средний fps замерялись программой MSI Afterburner. На графиках представлены средние значения по результатам всех прогонов. Я также буду выкладывать серии скриншотов из каждой игры с разным количеством активных ядер. Это нужно для того, чтобы вы могли сами оценить нагрузку на ядра в каждом случае.

Тестовая конфигурация:

  • Процессор — i7 [email protected] ГГц 1,318v
  • ОЗУ — G.Skill Trident Z 2x16GB DDR4 F4-4000C19D-32GTZKK (4000 МГц, 16-16-16-34, 1,45v)
  • Материнская плата — MSI MPG Z490 GAMING PLUS
  • Охлаждение — Noctua NH-D15S
  • Видеокарта — ASUS TUF Gaming GeForce RTX 3080 V2 OC Edition 10GB LHR
  • Накопитель — SSD WD Blue 3D NAND 1TB WDS100T2B0B
  • Блок питания — Cooler Master V1000 1000Вт
  • Операционная система — Windows 10 Pro 22h3

The Witcher 3: Wild Hunt

Первой игрой на сегодня будет Ведьмак 3. Тест будет проходить в DX11.

Настройки графики.

Разрешение 1080р, пресет «Запредельный» за исключением настройки NVIDIA HairWorks.

[email protected]  8c/16t

[email protected]  8c/8t

[email protected]  6c/12t

[email protected]  6c/6t

[email protected]  4c/8t

[email protected]  4c/4t

Результаты тестов

Хорошо видно, что в данной игре отключение HT ведет к потере производительности. В случае с шести и четырьмя ядрами к довольно существенной.

Лидером стали 8 ядер / 16 потоков, на втором месте с отставанием 2% по среднему fps оказались 6 ядер / 12 потоков и на третье место с отставанием по среднему fps в 4% вышли 8 ядер / 8 потоков. Конфигурации 6c/12t и 8с/8t показали примерно одинаковую производительность в том числе и по показателям 1% и 0,1%. 

Также почти равную производительность выдали 6 ядер / 6 потоков и 4 ядра / 8 потоков с незначительным перевесом 6c/6t.

Хочу отметить, что 4 ядра / 4 потока не просто показали худший результат, игра на четырех потоках постоянно и очень сильно фризила. Это хорошо видно по показателю 1% и 0,1%, а также по графику времени кадров на скриншоте.

Расстановка сил между всеми конфигурациями следующая. (За 100% здесь и далее будет браться результат 8c/16t)

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

В случае с 8-ми активными ядрами отключение HT понизило средний fps всего на 4%. На 6-ти и 4-х ядрах падение больше — в районе 20%.


Horizon Zero Dawn

Следующей игрой в тесте будет Horizon Zero Dawn. Несмотря на то, что тестирование в этой игре проводилось во встроенном бенчмарке, данные я собирал с помощью MSI Afterburner. Делалось это для того, чтобы все показатели во всех играх были получены при помощи одного и того же средства.

Настройки графики.

Разрешение 1080р, пресет «Приоритет качества»

[email protected]  8c/16t

[email protected]  8c/8t

[email protected]  6c/12t

10700K@5. 0  6c/6t

[email protected]  4c/8t

[email protected]  4c/4t

Результаты тестов

В данной игре 8 ядер без HT показали лучшую производительность опередив 8 ядер / 16 потоков по среднему fps на 4%. 

Видимо Horizon Zero Dawn не слишком требовательна к количеству ядер/потоков процессора (во всяком случае в бенчмарке) и все конфигурации показали хороший результат по среднему fps. Немного портит картину лишь результат 4c/8t и 4c4t по 0,1%. С 4-мя ядрами как с HT так и без в бенчмарке наблюдались редкие фризы, их-за чего показатель 0,1% откровенно плох. 

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

Стоит отметить, что отключение HT ведет к более существенному снижению 1% и 0,1%, чем среднего fps.

 

Посмотрим в процентах, как отключение HT повлияло на производительность в Horizon Zero Dawn.

В этой игре в случае с 8-ми активными ядрами отключение HT повысило средний fps на 4%. На 6-ти и 4-х ядрах уже наблюдается падение производительности, на 3% и 11%. 


Cyberpunk 2077 

Это первая игра на сегодня с трассировкой лучей, соответственно в ней будет два теста — RT on и RT off. 

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

Настройки графики.

1. Разрешение 1080р, пресет «Средний», плотность толпы «Высокая».

2. Разрешение 1080р, пресет «Средний», плотность толпы «Высокая»  + RT ультра + DLSS производительность.


[email protected]  8c/16t

[email protected]  8c/16t  RT + DLSS

[email protected]  8c/8t

[email protected]  8c/8t  RT + DLSS

[email protected]  6c/12t

[email protected]  6c/12t  RT + DLSS

[email protected]  6c/6t

[email protected]  6c/6t  RT + DLSS

[email protected]  4c/8t

[email protected]  4c/8t  RT + DLSS

[email protected]  4c/4t

[email protected]  4c/4t  RT + DLSS

Результаты тестов

Без RT бесспорным лидером стали 8 ядер с технологией HT, т. е. со всеми 16-ю потоками. На втором и третьем месте расположились 6 ядер / 12 потоков и 8 ядер / 8 потоков, отставание по среднему фпс составило 10% и 13% соответственно. Как видно из теста, Киберпанк любит потоки, предпочитая 6 ядер с HT чистым 8-ми ядрам.

Похожую производительность показали конфигурации 6c/6t и 4с/8t. По среднему fps немного вперед вышли 6 ядер без технологии многопоточности, хотя показатели 1% и 0,1% примерно равны.   

4 ядра без HT ожидаемо показали худший результат. 

Хочется отметить, что на конфигурациях 4c/4t и 4c/8t наблюдались микрофризы. Особенно в первом случае. 

Переходим к тесту с RT

После включения технологии трассировки лучей расстановка сил не изменилась. По-прежнему лидирует полноценная версия процессора, 6 ядер / 12 потоков на втором месте, на третьем 8 ядер / 8 потоков, а на 4-х ядрах опять наблюдаются микрофризы как с HT, так и без. 

Похожую производительность показали конфигурации 6c/6t и 4с/8t с небольшим преимуществом первой.  

Общий результат выглядит так. 


Отключение HT, как c RT так и без, только снижает производительность процессора в этой игре с любым количеством ядер.

Посмотрим на снижение производительности по среднему fps после отключения HT для 8-ми, 6-ти и 4-х ядер в процентах.

Как видно на графике, в Cyberpunk 2077 чем меньше активных ядер у процессора, тем сильнее снижается его производительность после отключения технологии Hyper-Threading. На 8-ми ядрах fps, как с RT так и без, снизился на 13%, на 6-ти — 18% и 15%, на 4-х — 28% и 23%. При этом стоит отметить, без RT снижение получилось чуть больше.


Watch Dogs Legion

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

В данной игре был выбран тестовый отрезок вместо внутриигрового бенчмарка.

Настройки графики.

1. Разрешение 1080р, пресет «Очень высокий».

2. Разрешение 1080р, пресет «Очень высокий» + RT + DLSS качество.

[email protected]  8c/16t

[email protected]  8c/16t  RT + DLSS

[email protected]  8c/8t

[email protected]  8c/8t  RT + DLSS

[email protected]  6c/12t

[email protected]  6c/12t  RT + DLSS

[email protected]  6c/6t

[email protected]  6c/6t  RT + DLSS

[email protected]  4c/8t

[email protected]  4c/8t  RT + DLSS

[email protected]  4c/4t

[email protected]  4c/4t  RT + DLSS

Результаты тестов

В данной игре отключение HT негативно повлияло на производительность во всех случаях. 

В тесте без трассировки лидером стали 8 ядер с HT, что вполне ожидаемо. А вот между конфигурациями процессора 8c/8t и 6c/12t, а также 6c/6t и 4c/8t получилась интересная картина. Производительность каждой пары оказалась идентична, разница на уровне погрешности. 

А теперь посмотрим на результат теста с RT.

Тест с трассировкой лучей полностью повторяет результат теста без трассировки, за исключением просевшей производительности от дополнительной нагрузки. Лидер остался прежний, а между 8c/8t и 6c/12t, а также 6c/6t и 4c/8t, практически полный паритет.

Нужно отметить, что на 4-х ядрах / 8-ми потоках были редкие микрофризы, а на 6-ти ядрах без HT, несмотря на равную производительность, этого не наблюдалось. На 4-х ядрах без HT фризы были достаточно сильные. 

Общая картина выглядит так.


Теперь посмотрим на снижение производительности по среднему fps после отключения HT для 8-ми, 6-ти и 4-х ядер в процентах.

Наименьшее падение производительности после отключения HT было на 8-ми ядрах — 7-9%, а на 6-ти и 4-х ядрах падение оно уже больше — 21-24%.


Shadow of the Tomb Raider

Последней игрой сегодня будет Shadow of the Tomb Raider.

Для теста использовался третий отрезок внутриигрового бенчмарка, замер проводился с помощью MSI Afterburner.

Настройки графики.

1. Разрешение 1080р, пресет «Низкий».

2. Разрешение 1080р, пресет «Низкий» + RT + DLSS производительность.


[email protected]  8c/16t

[email protected]  8c/16t  RT + DLSS

[email protected]  8c/8t

[email protected]  8c/8t  RT + DLSS

[email protected]  6c/12t

[email protected]  6c/12t  RT + DLSS

[email protected]  6c/6t

[email protected]  6c/6t  RT + DLSS

[email protected]  4c/8t

[email protected]  4c/8t  RT + DLSS

[email protected]  4c/4t

[email protected]  4c/4t  RT + DLSS

Результаты тестов

В данной игре лучший результат по среднему fps показали 8 ядер с отключенной технологией HT, хотя по 1% и 0,1% наблюдается небольшое отставание от 8 ядер с HT. На втором месте конфигурация 8c/16t, на третьем 6c/12t. В противостоянии 6c/6t и 4c/8t по среднему fps побеждают 6 ядер. 

Посмотрим на результат теста с RT.

После активации RT поменялся лидер, теперь это 8 ядер, но уже с включенной технологией HT, а 8 ядер / 8 потоков показывают производительность близкую к 6 ядрам / 12 потокам.  

После отключения HT, в отличие от теста без RT, производительность снизилась во всех случаях.  

На 4 ядрах / 4 потоках наблюдались редкие микрофризы с включенным RT.

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


Если рассмотреть противостояния 8c/8t vs 6c/12t и 6c/6t vs 4c/8t, то можно заметить, что несмотря на более высокий средний фпс у первых, у них т то же время сильнее просадка по 1% и 0,1%. Это говорит о том, что хоть в целом кадров было больше, но они были менее стабильными.  

Посмотрим, как повлияло отключения HT на производительность 8-ми, 6-ти и 4-х ядер в процентах.

Как и в Cyberpunk 2077, чем меньше активных ядер у процессора, тем сильнее снижается его производительность после отключения технологии HT. Исключением стали лишь 8 ядер / 8 потоков в тесте без RT. Там производительность немного подросла. 

На 8-ми ядрах средний fps без RT увеличился на 1%, c RT упал на 5%. На 6-ти упал на 8% и 12%, на 4-х упал на 20% и 25%. Здесь, в отличие от Киберпанка, в тесте без RT снижение получилось меньше, чем с RT.



Выводы

Можно однозначно сказать, что отключение HT в более новых и действительно тяжелых для процессора играх, только снижает производительность. Это и не удивительно, ведь эти игры создавались уже с расчетом на многопоток. В более старых играх ситуация немного другая и отключение HT может слегка поднять производительность по среднему fps. Но есть один момент, при этом весьма вероятно снижение показателей редких и очень редких событий и мы имеем картину, когда в среднем кадров больше, но они менее стабильны. При этом ядер в любом случае должно быть не менее восьми, иначе, как показали тесты, после отключения HT производительность только снизится. Я не буду говорить о действительно старых или более легких для процессора играх, там все может быть иначе. 

Интересно, что 8 ядер / 8 потоков в целом показывают близкую производительность к 6 ядрам / 12 потокам. В двух играх fps был примерно равен, в двух 8 ядер / 8 потоков немного быстрее и в одной слегка медленнее. Однако стоит отметить, что медленнее 8 ядер оказались как раз в самой тяжелой для процессора игре — Cyberpunk 2077. А это значит, что потоки действительно важны для тяжелых проектов.

Не менее интересно противостояние 6 ядер / 6 потоков и 4 ядер / 8 потоков. Производительность довольна близка, но перевес все же оказался на стороне 6 ядер. 

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Технология Hyper-Threading от Intel / Процессоры и память

В прошлом мы рассказывали о технологии одновременной многопоточности (Simultaneous Multi-Threading — SMT), которая применяется в процессорах Intel. И хотя первоначально она создавалась под кодовым именем «технология Джексона» (Jackson Technology) как возможный, вероятный вариант, Intel официально анонсировала свою технологию на форуме IDF прошлой осенью. Кодовое имя Jackson было заменено более подходящим Hyper-Threading. Итак, для того чтобы разобраться, как работает новая технология, нам нужны кое-какие первоначальные знания. А именно, нам нужно знать, что такое поток, как выполняются эти потоки. Почему работает приложение? Как процессор узнает, какие операции и над какими данными он должен совершать? Вся эта информация содержится в откомпилированном коде выполняемого приложения. И как только приложение получает от пользователя какую-либо команду, какие-либо данные, – процессору сразу же отправляются потоки, в результате чего он и выполняет то, что должен выполнить в ответ на запрос пользователя. С точки зрения процессора, поток – это набор инструкций, которые необходимо выполнить. Когда в вас попадает снаряд в Quake III Arena, или когда вы открываете документ Microsoft Word, процессору посылается определенный набор инструкций, которые он должен выполнить.

Процессор точно знает, где брать эти инструкции. Для этой цели предназначен редко упоминаемый регистр, называемый счетчиком команд (Program Counter, PC). Этот регистр указывает на место в памяти, где хранится следующая для выполнения команда. Когда поток отправляется на процессор, адрес памяти потока загружается в этот счетчик команд, чтобы процессор знал, с какого именно места нужно начать выполнение. После каждой инструкции значение этого регистра увеличивается. Весь этот процесс выполняется до завершения потока. По окончании выполнения потока, в счетчик команд заносится адрес следующей инструкции, которую нужно выполнить. Потоки могут прерывать друг друга, при этом процессор запоминает значение счетчика команд в стеке и загружает в счетчик новое значение. Но ограничение в этом процессе все равно существует – в каждую единицу времени можно выполнять лишь один поток.

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

При нем возникает множество других проблем. С некоторыми, вы уже, вероятно, знакомы. Во-первых, несколько процессоров всегда дороже, чем один. Во-вторых, управлять двумя процессорами тоже не так-то просто. Кроме того, не стоит забывать о разделении ресурсов между процессорами. Например, до появления чипсета AMD 760MP, все x86 платформы с поддержкой многопроцессорности разделяли всю пропускную способность системной шины между всеми имеющимися процессорами. Но основной недостаток в другом – для такой работы и приложения, и сама операционная система должны поддерживать многопроцессорность. Способность распределить выполнение нескольких потоков по ресурсам компьютера часто называют многопоточностью. При этом и операционная система должна поддерживать многопоточность. Приложения также должны поддерживать многопоточность, чтобы максимально эффективно использовать ресурсы компьютера. Не забывайте об этом, когда мы будем рассматривать ещё один подход решения проблемы многопоточности, новую технологию Hyper-Threading от Intel.

Производительности всегда мало

Об эффективности всегда много говорят. И не только в корпоративном окружении, в каких-то серьезных проектах, но и в повседневной жизни. Говорят, homo sapiens лишь частично задействуют возможности своего мозга. То же самое относится и к процессорам современных компьютеров.

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

Чтобы проиллюстрировать ситуацию, давайте вообразим себе процессор с тремя исполнительными устройствами: арифметико-логическим (целочисленным – ALU), устройством для работы с плавающей точкой (FPU), и устройством загрузки/хранения (для записи и чтения данных из памяти). Кроме того, предположим, что наш процессор может выполнять любую операцию за один такт и может распределять операции по всем трем устройствам одновременно. Давайте представим, что к этому процессору на выполнение отправляется поток из следующих инструкций:

1+1
10+1
Сохранить предыдущий результат

Рисунок ниже иллюстрирует уровень загруженности исполнительных устройств (серым цветом обозначается незадействованное устройство, синим – работающее устройство):

Итак, вы видите, что в каждый такт используется только 33% всех исполнительных устройств. В этот раз FPU остается вообще незадействованным. В соответствии с данными Intel, большинство программ для IA-32 x86 используют не более 35% исполнительных устройств процессора Pentium 4.

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

И снова загруженность исполнительных устройств составляет лишь на 33%.

Хорошим выходом из данной ситуации будет параллелизм на уровне инструкций (Instruction Level Parallelism — ILP). В этом случае одновременно выполняются сразу нескольких инструкций, поскольку процессор способен заполнять сразу несколько параллельных исполнительных устройств. К сожалению, большинство x86 программ не приспособлены к ILP в должной степени. Поэтому приходится изыскивать другие способы увеличения производительности. Так, например, если бы в системе использовалось сразу два процессора, то можно было бы одновременно выполнять сразу два потока. Такое решение называется параллелизмом на уровне потоков (thread-level parallelism, TLP). К слову сказать, такое решение достаточно дорогое.

Какие же ещё существуют способы увеличения исполнительной мощи современных процессоров архитектуры x86?

Hyper-Threading

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

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

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

Hyper-Threading – это название технологии, существовавшей и ранее вне x86 мира, технологии одновременной многопоточности (Simultaneous Multi-Threading, SMT). Идея этой технологии проста. Один физический процессор представляется операционной системе как два логических процессора, и операционная система не видит разницы между одним SMT процессором или двумя обычными процессорами. В обоих случаях операционная система направляет потоки как на двухпроцессорную систему.

Далее все вопросы решаются на аппаратном уровне.

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

Официально технология была объявлена на форуме Intel Developer Forum прошлой осенью. Технология демонстрировалась на процессоре Xeon, где проводился рендеринг с помощью Maya. В этом тесте Xeon с Hyper-Threading показал на 30% лучшие результаты, чем стандартный Xeon. Приятный прирост производительности, но больше всего интересно то, что технология уже присутствует в ядрах Pentium 4 и Xeon, только она выключена.

Технология пока ещё не выпущена, однако те из вас, кто приобрел 0,13 мкм Xeon, и установил этот процессор на платы с обновленным BIOS, наверняка были удивлены, увидев в BIOS опцию включения/отключения Hyper-Threading.

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

Остается очень интересный вопрос, почему Intel хочет оставить эту опцию выключенной?

Углубляемся в технологию

Помните те два потока из предыдущих примеров? Давайте на этот раз предположим, что наш процессор оснащен Hyper-Threading. Посмотрим, что получится, если мы попытаемся одновременно выполнить эти два потока:

Как и ранее, синие прямоугольники указывают на выполнение инструкции первого потока, а зеленые — на выполнение инструкции второго потока. Серые прямоугольники показывают незадействованные исполнительные устройства, а красные — конфликт, когда на одно устройство пришло сразу две разных инструкции из разных потоков.

Итак, что же мы видим? Параллелизм на уровне потоков дал сбой – исполнительные устройства стали использоваться ещё менее эффективно. Вместо параллельного выполнения потоков, процессор выполняет их медленнее, чем если бы он выполнял их без Hyper-Threading. Причина довольно проста. Мы пытались одновременно выполнить сразу два очень похожих потока. Ведь оба они состоят из операций по загрузке/сохранению и операций сложения. Если бы мы параллельно запускали «целочисленное» приложение и приложение, работающее с плавающей точкой, мы бы оказались куда в лучшей ситуации. Как видим, эффективность Hyper-Threading сильно зависит от вида нагрузки на ПК.

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

На рабочих же станциях возможностей для увеличения производительности у Hyper-Threading больше. Но с другой стороны, все зависит от конкретного использования компьютера. Рабочая станция может означать как high-end компьютер для обработки 3D графики, так и просто сильно нагруженный компьютер.

Наибольший же прирост в производительности от использования Hyper-Threading наблюдается в серверных приложениях. Главным образом это объясняется широким разнообразием посылаемых процессору операций. Сервер баз данных, использующих транзакции, может работать на 20-30% быстрее при включенной опции Hyper-Threading. Чуть меньший прирост производительности наблюдается на веб-серверах и в других сферах.

Максимум эффективности от Hyper-Threading

Вы думаете, Intel разработала Hyper-Threading только лишь для своей линейки серверных процессоров? Конечно же, нет. Если бы это было так, они бы не стали впустую тратить место на кристалле других своих процессоров. По сути, архитектура NetBurst, использующаяся в Pentium 4 и Xeon, как нельзя лучше подходит для ядра с поддержкой одновременной многопоточности. Давайте ещё раз представим себе процессор. На этот раз в нем будет ещё одно исполнительное устройство – второе целочисленное устройство. Посмотрим, что случится, если потоки будут выполняться обоими устройствами:

С использованием второго целочисленного устройства, единственный конфликт случился только на последней операции. Наш теоретический процессор в чем-то похож на Pentium 4. В нем имеется целых три целочисленных устройства (два ALU и одно медленное целочисленное устройство для циклических сдвигов). А что ещё более важно, оба целочисленных устройства Pentium 4 способны работать с двойной скоростью – выполнять по две микрооперации за такт. А это, в свою очередь, означает, что любое из этих двух целочисленных устройств Pentium 4/Xeon могло выполнить те две операции сложения из разных потоков за один такт.

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

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

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

Выводы

Хотя мы все были крайне обрадованы, когда до нас дошли слухи об использовании Hyper-Threading в ядрах всех современных Pentium 4/Xeon, все же это не будет бесплатной производительностью на все случаи жизни. Причины ясны, и технологии предстоит преодолеть ещё многое, прежде чем мы увидим Hyper-Threading, работающую на всех платформах, включая домашние компьютеры. А при поддержке разработчиков, технология определенно может оказаться хорошим союзником Pentium 4, Xeon, и процессорам будущего поколения от Intel.

При существующих ограничениях и при имеющейся технологии упаковки, Hyper-Threading кажется более разумным выбором для потребительского рынка, чем, например, подход AMD в SledgeHammer – в этих процессорах используется целых два ядра. И до тех пор, пока не станут совершенными технологии упаковки, такие как Bumpless Build-Up Layer, стоимость разработки многоядерных процессоров может оказаться слишком высокой.

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

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

Что такое гиперпоточность? – Объяснение технологии гиперпоточности Intel

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

Содержание

  1. Что означает гиперпоточность?
  2. Происхождение гиперпоточности
  3. Как работает технология гиперпоточности?
  4. Как можно активировать гиперпоточность?
  5. Каковы преимущества гиперпоточности?
  6. Многоядерные процессоры против виртуальных ядер: что логичнее?
  7. Разница между многопоточностью и гиперпоточностью
  8. Практические примеры процедуры гиперпоточности

Зарегистрируйте доменное имя

Создайте свой бренд на отличном домене, включая SSL и личного консультанта!

Частная регистрация

Поддержка 24/7

Электронная почта

Что означает гиперпоточность?

То, что может звучать как научная фантастика, на самом деле является не чем иным, как старой мудростью о том, что четыре руки могут сделать больше, чем две: гиперпоточность. Метод гиперпоточности Intel берет свое начало из серверного сектора, где обычно одновременно используется несколько физических процессоров для повышения производительности компьютера. С другой стороны, при гиперпоточности имеется только один физический процессор, но он ведет себя как два процессора . Это стало возможным благодаря тому, что процессор разделился на два виртуальных ядра , также известных как ядро, которые обрабатывают потоки параллельно. Это позволяет одновременно обрабатывать несколько очередей инструкций в виде гиперпотока, распределять процессы между виртуальными ядрами и улучшать загрузку ЦП.

Происхождение гиперпоточности

Технология гиперпоточности (HT) обязана производителю процессоров и ЦП Intel. Пользователи частных компьютеров наслаждаются гиперпоточностью Intel с 14 ноября 2002 года. Intel вывела на рынок свою технологию гиперпоточности с Pentium-4 с ядром Northwood-B . В последующих моделях, Pentium D и Core-2-Duo, Intel снова отказалась от гиперпоточности и вместо этого использовала двухъядерные основные процессоры.

Как работает технология гиперпоточности?

Принцип работы технологии гиперпоточности был и остается прежде всего инновационным. Это дает одному ядру процессора возможность вести себя как два физических ядра процессора и обрабатывать больше потоков, т. е. больше очередей инструкций, параллельно без простоев . Когда гиперпоточность включена, два контекста выполнения управляются и обрабатываются для каждого ядра ЦП. Ядро разделено на два виртуальных логических ядра, которые разделяют вычислительную мощность процессора. Hyperthreading всегда применяет на физическое ядро ​​ . Итак, если есть десятиядерный процессор с включенной гиперпоточностью, десять физических ядер ведут себя как 20 виртуальных и обрабатывают даже больше потоков.

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

Как можно активировать гиперпоточность?

Если вы впервые слышите о гиперпоточности, то можете подумать, что эта технология должна быть в каждом процессоре. К счастью, гиперпоточность активна по умолчанию в ядрах ЦП, если они поддерживают HT. Тем не менее, гиперпоточность можно включать и выключать в BIOS в разделе « Технология гиперпоточности » с помощью «Включить» и «Отключить». В процессорах, не поддерживающих гиперпоточность, физическое ядро ​​обрабатывает лишь несколько логических процессов последовательно, т.е. один за другим. Вы можете проверить, активна ли гиперпоточность или поддерживается ли она в Диспетчер устройств . Например, если у вас есть компьютер с двумя ядрами ЦП, но вы видите четыре процессора в разделе «Процессоры», значит, активна гиперпоточность .

Каковы преимущества гиперпоточности?

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

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

Многоядерные процессоры и виртуальные ядра: что логичнее?

Преимущество многоядерных процессоров заключается в том, что физическому ядру не нужно совместно использовать свои ресурсы. Например, процессоры с десятью физическими ядрами в основном будут иметь преимущество перед пятью физическими ядрами с гиперпоточностью, поскольку каждое ядро ​​может использовать все доступные ресурсы для обработки процессов. Виртуальные ядра, в свою очередь, используют ту же вычислительную мощность, что и физические ядра, для управления параллельными наборами регистров . 0004 . В наше время имеет смысл работать с CPU с как минимум двумя и более физическими ядрами .

Разница между многопоточностью и гиперпоточностью

Многопоточность и гиперпоточность на первый взгляд очень похожи: обе задачи предназначены для эффективного распределения и обработки потоков в ядрах ЦП. Однако гиперпоточность является подкатегорией многопоточности и также называется одновременной многопоточностью (SMT) . Чтобы понять многопоточность, важно знать, что потоки — это очереди инструкций, которые обрабатываются по-разному в зависимости от аппаратного и программного обеспечения.

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

Практические примеры процедуры гиперпоточности

Когда речь заходит о гиперпоточности, часто возникает вопрос, действительно ли функция имеет преимущества по сравнению с многоядерными процессорами без гиперпоточности. Ответ: это зависит. Например, очень важно, какое оборудование доступно и для чего оно используется. Тот факт, что гиперпоточность может оптимизировать обработку потоков с помощью отдельных конвейеров и параллельных наборов регистров , неоспорим. Например, суперкомпьютер Cray MTA способен управлять впечатляющими 128 потоками всего с одним ядром ЦП.

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

Выделенный сервер от IONOS

Оборудование и облако: выделенный сервер с облачной интеграцией и поминутной оплатой, включая личного помощника!

Поддержка 24/7

Безлимитный трафик

SSL-сертификат

  • 9 0140 23.12.2021
  • Ноу-хау
  • Время загрузки
  • Системы хранения
  • Операционные системы

Статьи по теме

Информация какого типа хранится в файле журнала?

  • Веб-аналитика

Файлы журналов содержат ряд сведений о системных процессах, программах и службах. Будь то операционная система, база данных или антивирусное программное обеспечение: вся эта информация о соответствующих процессах хранится в каждом соответствующем файле журнала. Это обеспечивает обширное восстановление данных и позволяет пользователям находить быстрое решение при возникновении задач по устранению неполадок; это также помогает с настройкой программного обеспечения.…

Какой тип информации хранится в файле журнала?

Как обновить BIOS

  • Конфигурация

Вы недавно купили и установили новый процессор, но ваш компьютер все еще не работает? Возможно, вам придется сначала обновить BIOS или (U)EFI. Программное обеспечение обеспечивает доступность всех важных компонентов при загрузке системы. Но это не так просто, как обновить биос. Какие шаги необходимо предпринять для обновления BIOS?

Как обновить BIOS

Что такое удаленный прямой доступ к памяти (RDMA)?

  • Ноу-хау

Технология удаленного прямого доступа к памяти позволяет передавать данные с максимальной скоростью, с очень низкой задержкой и без нагрузки на ЦП. Процесс передачи RDMA не использует ни процессор компьютера, ни его операционную систему, что приводит к значительно более быстрой передаче данных. Узнайте, как это работает, в этой статье.

Что такое удаленный прямой доступ к памяти (RDMA)?

cpu — В чем разница между многопоточностью и гиперпоточностью?

Многопоточность относится к общей задаче запуска более чем одного потока выполнения в операционной системе. Многопоточность в более общем смысле называется «многопроцессорной обработкой», которая может включать несколько системных процессов (простым примером в Windows может быть, например, одновременный запуск Internet Explorer и Microsoft Word), или она может состоять из одного процесса, который имеет несколько потоков внутри него.

Многопоточность (или, лучше сказать, многопроцессорность) — это концепция программного обеспечения . Практически любой ЦП, полный по Тьюрингу, может выполнять многопоточность, даже если компьютер имеет только одно ядро ​​​​ЦП, и это ядро ​​​​не поддерживает гиперпоточность. Чтобы поддерживать многопроцессорность, ЦП будет чередовать выполнения различных потоков выполнения, выполняя один, затем другой, затем третий, где операционная система разделит доступное время на «фрагменты» и даст примерно равное количество времени. время для каждого потока (время не обязательно должно быть равным, но обычно это делается именно так, если только процесс не запрашивает более высокий приоритет).

Обратите внимание, что всякий раз, когда имеется больше программных потоков выполнения, пытающихся выполниться в любой момент времени, чем доступно аппаратных (одновременных) потоков выполнения, тогда эти программные потоки будут «перемежаться» между доступными ядрами. В случае «однопроцессорного» (одно ядро ​​ЦП без гиперпоточности), если у вас более одного программного потока, они будут чередоваться всегда . Если у вас 4-ядерный ЦП с гиперпоточностью, это 8 «аппаратных потоков», то есть ЦП может выполнять 8 одновременных потоков выполнения в один и тот же момент, поэтому, если у вас было 8 программных потоков, пытающихся запуститься, все они могли бы работать одновременно. ; но если бы у вас было 9программных потоков, один из аппаратных потоков должен будет чередоваться с парой потоков (точная выбранная пара потоков будет зависеть от реализации планировщика операционной системы).


Hyperthreading, с другой стороны, относится к очень специфической аппаратной технологии, созданной Intel, которая позволяет одному ядру процессора более эффективно чередовать несколько потоков выполнения. Другими словами, ЦП с гиперпоточностью будет обеспечивать производительность, которая несколько выше, чем ЦП, который в остальном такой же, но без гиперпоточности, потому что ЦП с гиперпоточностью сможет одновременно балансировать два (иногда больше, но гиперпоточность обычно 2-3). путь) потоков выполнения на заданном ядре.

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

Возьмем следующий пример, где предполагается, что «1 ядро» работает одинаково во всех примерах:

Пример 1: 2 ядра, без гиперпоточности.
Пример 2: 4 ядра, без гиперпоточности.
Пример 3: 2 ядра с гиперпоточностью.
Пример 4: 4 ядра с технологией Hyper-Threading.

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

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

Ваш комментарий будет первым

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

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