Форум программистов, компьютерный форум, киберфорум
Наши страницы
Процессоры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/188: Рейтинг темы: голосов - 188, средняя оценка - 4.72
D'Dragon
Эксперт Hardware
826 / 331 / 10
Регистрация: 13.01.2012
Сообщений: 739
1

Hyper-threading, нюансы что это и с чем его "едят"...

19.02.2012, 15:55. Просмотров 34289. Ответов 13
Метки нет (Все метки)

Собственно сначала немного о технологии:
Hyper-threading — технология «одновременной мультипоточности» в процессорах. Расширенная форма суперпоточности, впервые появившаяся в процессорах Intel Xeon.

Принцип работы

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

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

Были представлены следующие преимущества Hyper-threading: улучшенная поддержка многопоточного кода, позволяющая запускать потоки одновременно; улучшенная реакция и время отклика; увеличенное количество пользователей, которое может поддерживать сервер.
По словам Intel, первая реализация потребовала всего 5-процентного увеличения площади кристалла, но позволяла увеличить производительность на 15—30 %.
Intel утверждает, что прибавка к скорости составляет 30 % по сравнению с идентичным процессорами Pentium 4 без технологии «Simultaneous multithreading». Однако прибавка к производительности изменяется от приложения к приложению: некоторые программы вообще несколько замедляются при включённой технологии Hyper-threading. Это, в первую очередь, связано с «системой повторения» (англ. replay) процессоров Pentium 4, занимающей необходимые вычислительные ресурсы, отчего и начинают «голодать» другие потоки.

http://ru.wikipedia.org/wiki/Hyper-threading
На данный момент из процессоров настольного сегмента наиболее распространены Core i7:
1366 - 9x0\9x0X
1155 - 2600K\2700K
2011 - 3930K\3820
и т.д.

И Core i3:
1155 - 21x0
1156 - 5x0
и т.д.

В этой теме предлагаю обсудить, что даёт HT его преимущества и недостатки...

Так же стоит обратить внимания что производительность HT напрямую зависит от оптимизации приложения производительность может как возрастать так и падать (в плохо оптимизированных играх не редко наблюдается падения FPS при использовании HT)...
В оптимизированных приложениях таких как архивирование\кодирование видео\3D моделирования производительность может увеличится примерно на 15-30%...
10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 15:55
Ответы с готовыми решениями:

Что есть Hyper Threading
Прочитал статью уважаемого Evg "Влияние конвейера на скорость исполнения кода"...

Что такое COM порт? И с чем его едят?
Пожалуйста объясните что что такое СОМ порт и как проверить его...

Everest пишет, что "Обнаружено вскрытие корпуса", что это означает?
В программе Everest пишет что ОБНАРУЖЕНО ВСКРЫТИЕ КОРПУСА что это означает???

hyper-threading и виртуализация
Выбираю между 2-мя процами i5 & i7 по большому счету разница в них в наличии у...

Обсуждение Hyper-Threading
Хотелось бы услышать мнения по процам INTEL PENTIUM с поддержкой Hyper-Threading

13
dimank666
6011 / 3759 / 176
Регистрация: 29.08.2011
Сообщений: 26,176
Записей в блоге: 1
19.02.2012, 16:14 2
Что же выложу все свои доводы

Hyper-Threading работает как виртуальный компьютер вместо одного ядра операционная система видит 2 виртуальных, следовательно на 1 ядро идут сразу 2 команды и если 1V (V-виртуальное ядро) не отсылает команду на ядро процессора то отсылаются команда со 2V ядра
А так как 3d мах нормально распараллеливается, то получается что 2V ждет своей очереди.
И получается что выполняется только 4 потока вместо 8
чтобы было понятно:
Допустим дорого имеет 8 полосное движение, а на ней стоит пост который пропускает только 4 машины

если даже развить тему то получится так
8 полосное движение, на всех 8 полосах стоят посты (виртуальные процессоры), а дальше дорога сужается до 4 полос (процессорных ядер). И получается что пока в первом посте машина стоит со второго она может выехать, и на оборот пока во 2 стоит из первого проезжает и так далее
Добавлено через 3 минуты
Цитата Сообщение от D'Dragon Посмотреть сообщение
в результате кэш-промаха, ошибки предсказания ветвлений, ожидания результата предыдущей инструкции
вот что заметил, то есть эта функция работает хорошо тогда когда конвеер интела ошибается в расчетах или предсказаниях
0
D'Dragon
Эксперт Hardware
826 / 331 / 10
Регистрация: 13.01.2012
Сообщений: 739
19.02.2012, 16:15  [ТС] 3
dimank666, исходя из твоих умозаключений процессор не может быть загружен более чем на 50%, так как в ОС видно 8 ядер и 4 из них виртуальные так?

Тогда как объяснишь этот скрин:
Hyper-threading, нюансы что это и с чем его "едят"...

Исходя из твоей логики 100% загрузка процессора невозможна, но это не так

Цитата Сообщение от D'Dragon Посмотреть сообщение
улучшенная поддержка многопоточного кода, позволяющая запускать потоки одновременно
На это обрати внимание...

Так что повторюсь корректнее такой пример:
Есть 4 поста (ядра) и 8 дорого (потоки), 4 поста делит машины (операции) на 8 дорог, а как делит и с какой скоростью машины поедут зависит от машин и качества дороги (оптимизации)...
Тоже не лучшее объяснение, но всё же точнее чем у тебя...
0
POWE®FULL
Чувак с пакетом на голове
561 / 382 / 5
Регистрация: 15.03.2011
Сообщений: 1,466
Записей в блоге: 1
19.02.2012, 17:19 4
Цитата Сообщение от D'Dragon Посмотреть сообщение
Так что повторюсь корректнее такой пример:
Есть 4 поста (ядра) и 8 дорого (потоки), 4 поста делит машины (операции) на 8 дорог, а как делит и с какой скоростью машины поедут зависит от машин и качества дороги (оптимизации)...
Тоже не лучшее объяснение, но всё же точнее чем у тебя...
А я приведу свой пример с дорогой(раз уж о ней заговорили):
Сходятся Две четырёхполосные(если проц 4х ядерный) дороги в одну(тоже четырёхполосную). и вместо стандартного светофора стоит такая штука которая ставит машины со второй дороги в свободные промежутки между машинами с первой в том же ряду, когда они(эти промежутки) есть, тем самым уплотняя движение на дальнейшем участке дороге.
Вот это и есть "Hyper Threading".
1
dimank666
6011 / 3759 / 176
Регистрация: 29.08.2011
Сообщений: 26,176
Записей в блоге: 1
19.02.2012, 17:24 5
может такой варит понятние
Единственное можно сравнить с рабочим на стройке
допустим 4 рабочих (4 ядра)
А бригадиров которые отдают команды целых 8 штук (виртуальные ядра) и получается за одним рабочим бегают 2 бригадира. как рабочий освобождается один из бригадиров дает ему новые указания.
а смысел втом что бригадирам надо бегать сверятся с чертежами. и пока один побежал смотреть другой дает команду рабочему
0
POWE®FULL
Чувак с пакетом на голове
561 / 382 / 5
Регистрация: 15.03.2011
Сообщений: 1,466
Записей в блоге: 1
19.02.2012, 17:26 6
Цитата Сообщение от dimank666 Посмотреть сообщение
может такой варит понятние
Ага! Один бригадир отдаёт команды левой руке рабочего а другой в это же время правой.
Так вернее будет!
0
D'Dragon
Эксперт Hardware
826 / 331 / 10
Регистрация: 13.01.2012
Сообщений: 739
19.02.2012, 17:29  [ТС] 7
dimank666, по твоим вариантам как не крути процессор выше 50% не загрузить так как половина, потоков просто простаивает...
Как тогда процессор может быть загружен на 100%?
0
dimank666
6011 / 3759 / 176
Регистрация: 29.08.2011
Сообщений: 26,176
Записей в блоге: 1
19.02.2012, 17:43 8
Цитата Сообщение от POWE®FULL Посмотреть сообщение
Ага! Один бригадир отдаёт команды левой руке рабочего а другой в это же время правой!
Так вернее будет!!!
не рабочий может выполнять только 1 команду от одного бригадира и пока он ее не выполнит от другова он взять ее не сможет.
Ну можем добавить в эту схему еще как бы брегадира-выберателя который выбирает какую работу и от какого бригадира выполнять первой но рабочий все равно один и выполняет одну инструкцию за такт

Добавлено через 5 минут
Цитата Сообщение от D'Dragon Посмотреть сообщение
dimank666, по твоим вариантам как не крути процессор выше 50% не загрузить так как половина, потоков просто простаивает...
Как тогда процессор может быть загружен на 100%?
Так если ты ему дашь 4 потока он и будет загружен на 100% так как все ядра будут заняты.

По твоей логике получается что ели на операцию нужно 100 команд то 1 ядерный на это затратит 100 секунд (допустим) 4 ядерный плучается 25 секунд а 8 виртуальных по идее 12,5
0
D'Dragon
Эксперт Hardware
826 / 331 / 10
Регистрация: 13.01.2012
Сообщений: 739
19.02.2012, 17:47  [ТС] 9
Цитата Сообщение от dimank666 Посмотреть сообщение
Так если ты ему дашь 4 потока он и будет загружен на 100% так как все ядра будут заняты.
Бррр... 4 ядра 8 потоков, если ты ему дашь 4 потока он будет загружен на 50%...
Цитата Сообщение от dimank666 Посмотреть сообщение
По твоей логике получается что ели на операцию нужно 100 команд то 1 ядерный на это затратит 100 секунд (допустим) 4 ядерный плучается 25 секунд а 8 виртуальных по идее 12,5
Виртуальные на то и виртуальные, это как человеку поручить 2 задания одновременно писать и читать, человек 1 задания 2, соответственно 2 задания он будет делать медленнее 1, но и быстрее чем если бы делал их по очереди...
А в извращённых случаях, ум за разум будет заходить и он 2 задания будет делать медленнее чем их же по очереди...

Тут и проявляется оптимизация, какие и как задания ему дают...
0
dimank666
6011 / 3759 / 176
Регистрация: 29.08.2011
Сообщений: 26,176
Записей в блоге: 1
19.02.2012, 17:48 10
D'Dragon, если у тебя такой процессор ради эксперимента запусти LinX и поставь в нем 4 потока
запиши результат производительности, затем 8 потоков и тоже глянь результат и скрены пожалуйста в студию
0
D'Dragon
Эксперт Hardware
826 / 331 / 10
Регистрация: 13.01.2012
Сообщений: 739
19.02.2012, 18:15  [ТС] 11
Цитата Сообщение от dimank666 Посмотреть сообщение
D'Dragon, если у тебя такой процессор ради эксперимента запусти LinX и поставь в нем 4 потока
6 потоков пойдёт
Цитата Сообщение от dimank666 Посмотреть сообщение
запиши результат производительности, затем 8 потоков и тоже глянь результат и скрены пожалуйста в студию
Hyper-threading, нюансы что это и с чем его "едят"...

Hyper-threading, нюансы что это и с чем его "едят"...
0
POWE®FULL
Чувак с пакетом на голове
561 / 382 / 5
Регистрация: 15.03.2011
Сообщений: 1,466
Записей в блоге: 1
19.02.2012, 18:26 12
Dimank666, D'Dragon,
Hyper-threading, нюансы что это и с чем его "едят"...
Hyper-threading, нюансы что это и с чем его "едят"...
Hyper-threading, нюансы что это и с чем его "едят"...
Hyper-threading, нюансы что это и с чем его "едят"...


Неужели я здесь: http://www.cyberforum.ru/post2505801.html всё не описал???
2
dimank666
6011 / 3759 / 176
Регистрация: 29.08.2011
Сообщений: 26,176
Записей в блоге: 1
19.02.2012, 18:32 13
вот мой скрин

и самое главное разница между 6 и 12 потоками 2 гфлопса это меньше это 3 % где 15-30 процентов

POWE®FULL, спасибо за инфу, стало более понятно что есть возможность задействовать сразу несколько блоков цпу, то есть в обычных тестах нет смысла тестировать, так как нужны потоки с разными данный.

Прирост есть, но чтобы он появился нужно чтобы были соблюдены определенные условия,
1) Должны быть команды арифметически и с плавающей запятой
2) Их должно быть одинаковое количество
3) Приложение должно быть оптимизировано к много поточности
4) И само приложение должно быть оптимизировано чтобы одновременно выдавать запросы арифметически и с плавающей запятой
А это очень редко, то прирост не значителен. Возможно в будущем когда приложения будут лучше оптимизированы и будут делаться с заделом на 10 и более ядер прирост будет больше.
Но тогда и процесоры будут другие

D'Dragon,
к ста-те протестируй свой проц
FluidMark_1.4.0
вот тут как на скринах 1 и 2 проведи тесты
http://www.cyberforum.ru/post2237608.html
0
Миниатюры
Hyper-threading, нюансы что это и с чем его "едят"...  
D'Dragon
Эксперт Hardware
826 / 331 / 10
Регистрация: 13.01.2012
Сообщений: 739
20.02.2012, 19:49  [ТС] 14
Без HT:
Hyper-threading, нюансы что это и с чем его "едят"...

Цитата Сообщение от dimank666 Посмотреть сообщение
FluidMark_1.4.0
Ок...
0
20.02.2012, 19:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2012, 19:49

Функция Hyper-Threading
Вопрос про полезность данной функции и про потребления питания процессором с...

Как выключить Hyper-Threading?
извиняюсь..можно ли выключить Hyper-Threading? Тип ЦП Intel Pentium 4 524,...

Технология Hyper Threading на процессоре i7
i7 950 - это 4-х ядерный процессор с hyper threading. На компе работает 3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru