Еще раз про Hyper-Threading.

3 марта 2008, понедельник 03:13
для раздела Блоги
Исследование влияния на производительность
процессора Pentium IV технологии Hyper-Threading
в различных режимах работы.


Вступление, методика тестирования и тестовая конфигурация.

Несомненно, обзор запоздал как минимум на 4 года. Однако такового именно на http://people.overclockers.ru, увы, нет. Спешу собственными силами восполнить данный пробел. Результаты моей работы в течение трех вечеров перед вами. В настоящем тестировании принимали участие:

ПроцессорPentium IV 2.4 Northwood 2.400 MHz с технологией Hyper-Threading, разогнанный до частоты 3093 fsb, частота fsb 258 (1031)
Материнская платаAsRock P4i65G mATX на основе чипсета i865G
Оперативная память256Mb DDR PC3200 Kingston + 256Mb DDR PC3200 Spectek Dual Channel mode (2,5-3-3-7, clock 412 MHz) dual channel
ВидеокартаSapphire Radeon 9600Pro 128 Mb ViVo (400/600 MHz)
«Таймер»Nokia 3310

Описание и принцип работы технологии Hyper-Threading (далее по тексту HT) не раз были описаны в статьях:
•Обзор процессора Pentium 4 3.06 с технологией Hyper-Threading. За двумя зайцами погонишься (Ф-Центр)
http://www.fcenter.ru/cgi-bin/sitemanager/redirecturl.cgi?urlid=3190
•Pentium 4 3.06 с технологией Hyper-Threading в 3ds max 5 (Ф-Центр)
http://www.fcenter.ru/cgi-bin/sitemanager/redirecturl.cgi?urlid=3202
•Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading (iXBT)
http://www.ixbt.com/cpu/pentium4-3ghz-ht.shtml
•Рендеринг сцен в 3ds max 5.1 — Часть 3: Многопроцессорные системы и Hyper-Threading (iXBT)
http://www.ixbt.com/cpu/intel-amd-cpu-roundup-3dsmax-3.shtml
•Pentium IV 3.60 w/out HT против Pentium IV 3.0 with HT (чрезвычайно интересное видео с качественной озвучкой, размер ~10 Mb от Tom’s Hardware Guide)
http://www4.tomshardware.com/images/thg_video_5_p4_ht.zip

Предназначение HT достаточно хорошо описано в статье Обзор процессора Pentium 4 3.06 с технологией Hyper-Threading. За двумя зайцами погонишься на сайте Ф-Центра, из которого я приведу небольшую выдержку:

«Pentium 4 и содержит четыре параллельных блока для операций с целыми числами, два блока для работы с вещественными числами и два блока для работы с памятью, одновременно все эти ресурсы практически никогда не используются. В подавляющем большинстве случаев существенная часть процессора простаивает либо в ожидании данных, либо из-за их ненужности при исполнении очередной операции. Если с простоями при отсутствии данных еще можно как-то бороться, наращивая объем кеш-памяти, то загрузить весь процессор целиком при существующей концепции последовательных вычислений никак не получится. Например, если программа выполняет сложение целых чисел, блоки операций с вещественными числами задействованы не будут ни при каком раскладе. В итоге, получаем достаточно печальную картину: большинство существующих x86 программ использует одновременно не более 35% исполнительных устройств процессора Pentium 4.

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

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

2-й выглядел следующим образом – в качестве «фонового процесса» использовался WanRar 3.70 с выключенной оптимизацией под многопоточность. Прогонялся приведенный ниже набор тестов также с включенной технологией Hyper-Threading и с отключенной.

Тестовый пакет включал в себя:

1. Sisoft Sandra Lite ver. 2008.12.34 (синтетика)
2. WinRar 3.70 (архивирование)
3. SuperPI mod 1.5 /XS (эмуляция математических расчетов)
4. 3DMark 2001 (производительность в «игровых приложениях», синтетика)
5. Windows Movie Maker ver. 5.1 (конвертирование видео-контента)
6. Serious Sam II (игровое приложение)
7. Скорость загрузки операционной системы

Результаты перед Вами, мои комментарии прошу обсуждать/комментировать/дополнять в соответствующей ветке форума.
http://forums.overclockers.ru/viewtopic.php?p=4753764#4753764

Первый этап тестирования.





В синтетике преимущество режима с включенным HT очевидно. Выигрыш в тесте FPU (результат Multi – Media Ffloat x4) – 37%, в тесте ALU (Whetestone iSSE2) – 63%. Достаточно большая диффернсация выигрышей в разных тестах одного пакета. Не буду заниматься теоретикой, а обращу внимание на интересный факт. Во время прохождения теста ALU анимированный курсор в режиме HT off полностью замирал, а при HT on продолжал вращаться без малейшего намека на торможение. Теперь тесты реальных приложений.



Первые результаты и первые более чем оптимистичные выводы. Технология Hyper-Threading в WinRar’е демонстрирует впечатляющий прирост производительности на уровне 22,4% «из воздуха», то есть благодаря лишь только параллельному задействованию разнородных исполнительных устройств единственного «физического» процессорного ядра. По всей видимости, WinRar 3.70 в процессе работы в многопоточном режиме использует неоднородные потоки, использующие примерно в равной степени и ALU и FPU.

[center]

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

[center]

А вот цифры, демонстрируемые Windows Movie Maker’om, говорят о следующем – прирост от использования технологии Hyper-Threading достиг 9,68%. Не так уж и много на фоне теста в WinRar’e. Но если продолжительность конвертируемого фильма составит не 28 минут, а 4 часа 28 минут? В некоторых ситуациях даже таким приростом производительности пренебрегать не стоит.

[center]


В 3DMark 2001 различия результатов составили 11346 «попугаев» в режиме HT on против 11325 в режиме HT off. На 21 «попугай» вида 3Дэмарковых можно не обращать внимания. Радует то обстоятельство, что в двух предыдущих тестов производительность не упала, вопреки моим ожиданиям.

[center]


Небольшое улучшение наблюдается и в скорости загрузки WindowsXP. Прирост составил 4,87%.

Второй этап тестирования.





Результаты говорят сами за себя. Итог - 34,43% прироста.




Вклад технологии Hyper-threading сложно переоценить, этом режим лидирует с внушительным отрывом в 37,15%.




Результаты просто шокируют. Победа «виртуальной многоядерности» выразилась впечатляющим выигрышем на 113,87%, то есть более чем двукратным. Сложилось странное впечатление, что сравнивались двух- и одно-ядерный процессор.




Второй результат, который откровенно порадовал и удивил. На этот раз выигрыш благодаря использованию Hyper-threading’a составил 93,58%.




Serious Sam II тестировался только в многопоточном режиме, поскольку результаты в однопотоке практически полностью повторяют таковые в 3DMark 2001. Скорость загрузки системы же в «многопотоке» сравнивать не пришлось. Различные фоновые процессы будь то включенный телевизор или бурлящий чайник никакого влияния на её «результаты» никакого влияния оказать не могут из принципиальных соображений .

Что касается данного теста. Играть во чтобы то ни было с параллельно запущенным WinRar’om совершенно невозможно. Каждую дисциплину в отдельности комментировать не буду, т. к. обо всем будет сказано в выводах. Ибо момент абсолютно принципиальный – can I play the game or not?

Выводы.


В неоптимизированном ПО в однопоточном окружении выигрыша от использования HT практически нет. Даже наблюдается небольшой прирост, т.к. системные процессы также используют часть вычислительных ресурсов процессора. ПО, имеющее соответствующую оптимизацию, способно продемонстрировать от небольшого 10-типроцентоного до внушительного 25-типроцентного прироста производительности. Как мы видим, обещания компании Intel оказались вполне обоснованными и конкретными. Однако выигрыш значителен далеко не всегда и не везде. Впрочем, большего нам и не гарантировали. Формулировка «до 30%» вполне уместна.

Совсем иным образом обстоит дело в процессе работы нескольких приложений одновременно. Прирост производительности может достигать невероятной величины. Тем более, что значительно улучшается отзывчивость системы. В частности я сделал одно интересное наблюдение. При одновременной игре в 3D-шутер и работающем в фоне ресурсоёмком приложении в режиме HT off играть совершенно невозможно. Из-за постоянных (с интервалом в 1-2 секунды) провалов fps. Игрушка превращается в полнейшее слайд-шоу. При использовании HT поведение игры меняется радикально. Что, как я считаю, является огромным преимуществом Pentium’a IV HT перед конкурирующими с ним решениями как внутри собственной процессорной линейки на основе архитектуры Netburst, так и над прямыми конкурентами от AMD. И его значимость переоценить просто нельзя.

Можно ли считать виртуальную многоядерность достаточной альтернативой физической? Ответ – нет. Так как падение скорости исполнения фонового процесса, при использовании «настоящего» многоядерного CPU несоизмеримо меньше. Поскольку речь не идет о параллельном задействовани нескольких исполнительных устройств, а о фактически удвоении их количества благодаря появлению второго ядра. Кроме того при использовании HT увеличивается конкуренция за доступный объем кэш-памяти. Т. е. SMP и SMT моменты принципиально разные. Существенный прирост производительности при активации Hyper-threading’a получает только активный процесс. А хорошим подспорьем для эффективного увеличения производительности в некоторых ситуациях? Несомненно, да. Выводы делать только вам.

Алексей aka AlexiS
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают