на главную страницуна главную страницуна главную страницу

Новости | 3D-Видео, тюнеры и LCD | iT-Среда | MacLife | Мобильные устройства | Ноутбуки | Носители информации | Платформа ПК | Приложения и утилиты | Принтеры и периферия | ProAudio | Проекторы и ТВ | Сети и серверы | Цифровой звук | Цифровое видео | Цифровое фото | Карта сайта | Поиск


Влияние различных характеристик на быстродействие процессоров современных архитектур. Часть 4: Intel Core i7, Hyper-Threading «в чистом виде»


Установите себе проигрыватель Flash для отображения графического оформления статьи

Часть 1: AMD Phenom II, количество ядер
Часть 2: AMD Phenom II, подсистема памяти
Часть 3: Intel Core i7, технологии Turbo Boost и Hyper-Threading

Как мы и обещали, в этом достаточно кратком материале, мы остановимся более подробно на исследовании, пожалуй, одной из самых любопытных технологий, применяемых в процессорах Intel Core i7 — Hyper-Threading. Нас интересовал очень простой вопрос: хорошо, когда ядер 4 штуки, да на каждое по HT-блоку, которое делает из него 2 логических, итого 8 процессоров в системе — в такой ситуации даже ОС может «заблудиться в ядрах». Тем более что исследованность вопроса взаимодействия десктопной ОС Windows Vista x64 Ultimate с восемью процессорами — явно недостаточная. Резонно предположить, что в Microsoft Висту «по-серьёзному» для этого не готовили. Поэтому предыдущий материал, хоть и дал некоторую почву для размышлений, но удовлетворил наше любопытство относительно HT не в полной мере: слишком много всего было — физических ядер, логических ядер, исследуемых технологий...

Как нам сделать так, чтобы никто не мешал Hyper-Threading проявить себя? Мы решили воспользоваться самым простым способом. Действительно: 2 ядра — это не 8, с двумя-то ядрами сейчас подавляющее большинство ПО научилось работать. Стало быть, в ситуации, когда средствами Hyper-Threading будет эмулироваться не 8 ядер, а всего 2, плюсы и минусы данной технологии должны проявиться наиболее явно, «выпукло». Поэтому в этот раз мы не будем пытаться воспроизвести некую достаточно близкую к реальности ситуацию, а сделаем наоборот: создадим для Hyper-Threading идеальные условия, чтобы она могла показать себя во всей красе. Мы сделали это следующим образом: для начала запретили на Core i7 с помощью BIOS все ядра, кроме одного, запретили использование Turbo Boost (чтобы зафиксировать частоту на одном уровне). После этого мы измерили быстродействие системы при выключенной поддержке Hyper-Threading (в этом случае ОС рассматривала наш процессор как одноядерный), и с включенной поддержкой Hyper-Threading (в этом случае ОС видела два ядра, но физически работало всё равно одно). Затем, мы разрешили в BIOS использование 2-х ядер, отключили Turbo Boost и Hyper-Threading, и снова провели тесты. Таким образом, мы получили возможность проанализировать полезность Hyper-Threading в практически идеальной ситуации, причём с двух сторон сразу: при сравнении с «честной одноядерной» системой (без поддержки HT), мы сможем увидеть, сколько пользы приносит собственно технология Hyper-Threading. А при сравнении HT-системы с «честной двухъядерной» — мы увидим, насколько «виртуальная» многоядерность оказывается хуже реальной.

Кроме того, в данном случае мы тестируем не только технологию Hyper-Threading, но и в некоторой мере, само программное обеспечение: готово ли оно использовать «виртуальные» ядра? Может ли утилизировать их возможности? Или, хотя бы, не замедлиться?

Тестирование

Конфигурация тестового стенда

  • Процессор: Intel Core i7 950;
  • Кулер: ASUS Triton 81;
  • Системная плата: ASUS P6T SE (чипсет Intel X58);
  • Память: 3 модуля по 2 ГБ Corsair DDR3-1800 в режиме DDR3-1600;
  • Видеокарта: Palit GeForce GTX 275
  • БП: Cooler Master Real Power M1000.

Традиционно, мы даём любознательным читателям ссылку на таблицу в формате Microsoft Excel, в которой приведены все результаты тестов в самом подробном виде, а также для удобства их анализа присутствует дополнительная закладка — «Compare». На ней, как и в таблицах, присутствующих в статье, произведено сравнение рассматриваемых ситуаций в процентном отношении. Раскраска таблиц в статье традиционна: ярко-голубой цвет фона означает некое выдающееся положительное достижение (в данном случае мы считали таким достижением прирост производительности в 10 и более процентов), красный цвет фона сигнализирует о недостатках: там, где должен был быть прирост (или хотя бы ничего) — наблюдается падение производительности. Процент прироста производительности везде считается относительно крайней левой (одноядерной, без HT) системы.

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

3D-визуализация


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
3ds max ↑* 16,36 16,93 3% 16,45 1%
Lightwave ↓ 14,52 13,7 6% 12,85 13%
Maya ↑ 3,59 4,17 16% 4,08 14%
SolidWorks ↓ 54,39 53,81 1% 52,64 3%
Pro/ENGINEER ↓ 1065 1056 1% 998 7%
UGS NX ↑ 2,99 3,14 5% 2,84 -5%
Group Score ↑ 132 139 5% 139 5%

* — здесь и далее в таблицах стрелочкой вверх (↑) помечены те тесты, где лучшим является больший результат, стрелочкой вниз (↓) — тесты, где лучшим является меньший результат.

Maya и Lightwave и в предыдущем тестировании были чемпионами (правда, в ином порядке), отличились они и в этом. А SolidWorks, который на 4-ядерной системе отреагировал на включение HT падением производительности, в данном случае к этой технологии более благосклонен. К слову, мы ещё не раз увидим похожую ситуацию.

Трёхмерный рендеринг


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
3ds max ↑ 4,71 6,02 28% 9,17 95%
Lightwave ↓ 332,32 275,89 20% 182,23 82%
Maya ↑ 10:35 08:25 26% 05:22 97%
Group Score ↑ 40 50 25% 77 93%

На 4-ядерной системе средний прирост от включения HT в группе трёхмерного рендеринга составил 21%, в данном случае, на одноядерной — 25%. Вроде бы формально больше, но мы, честно говоря, ожидали более яркого контраста.

Научные и инженерные расчёты


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
Maya ↑ 7,1 7,44 5% 8,89 25%
SolidWorks ↓ 40,06 40,2 0% 35,39 13%
Pro/ENGINEER ↓ 1632 1622 1% 1526 7%
UGS NX ↑ 5,47 5,66 3% 5,47 0%
MAPLE ↑ 0,2185 0,2193 0% 0,2194 0%
Mathematica ↑ 2,5295 2,5555 1% 2,9533 17%
MATLAB ↓ 0,071984 0,061414 17% 0,049676 45%
Group Score ↑ 117 121 3% 134 15%

А в группе научных и инженерным расчётов ситуация весьма забавная: в прошлом тестировании, Hyper-Threading «забраковали» три пакета из семи (почти половина) — они снижали производительность при включении HT. В данном тестировании мы ничего подобного не наблюдаем, даже наоборот: падение производительности в MATLAB сменилось весьма ощутимым ростом.

Растровая графика


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
ACDSee ↓ 06:53 05:34 24% 04:42 46%
Paint.NET ↓ 01:06 00:54 22% 00:34 94%
PaintShop Pro ↓ 09:20 09:14 1% 09:05 3%
PhotoImpact ↓ 06:53 06:29 6% 06:20 9%
Photoshop ↓ 10:49 09:48 10% 07:13 50%
Group Score ↑ 87 97 11% 118 36%

И опять похожая картина: в прошлом тесте на включение HT отреагировала отрицательно подавляющая часть пакетов: 4 из 5. На одноядерной системе картина кардинально противоположная: три пакета из пяти демонстрируют уверенный рост производительности.

Сжатие данных без потерь


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
7-Zip ↓ 05:01 04:16 18% 03:49 31%
WinRAR ↓ 01:42 01:29 15% 01:17 32%
Group Score ↑ 105 122 16% 139 32%

И снова рост совершенно другого порядка: в среднем, 16% против весьма скромных 3% в прошлом тесте. Впрочем, здесь как раз всё объяснимо: именно два ядра архиваторы и умеют максимально задействовать, так что превосходства системы с включенной HT над честной одноядерной следовало ожидать.

Компиляция


Вполне сопоставимый с картиной на 4-ядерной системе результат.

Кодирование аудио


Аналогично: поведение у 1-ядерной и 4-ядерной системы в данной группе тестов примерно одинаково.

Кодирование видео


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
Canopus ProCoder ↓ 03:43 03:34 4% 03:14 15%
DivX ↓ 06:08 05:59 3% 04:33 35%
Mainconcept ↓ 15:45 13:00 21% 09:08 72%
x264 ↓ 27:11 22:58 18% 15:13 79%
XviD ↓ 05:05 04:51 5% 03:33 43%
Group Score ↑ 71 78 10% 104 46%

И снова присутствующие в предыдущем тестировании «красные карточки» (напомним —HT получила их от Canopus ProCoder и DivX) куда-то исчезли, а средний прирост от HT по группе в 2 раза больше.

Java

21% прироста от включения HT — весьма неплохой результат. Заметим, что Java-бенчмарк по поведению в различных ситуациях стабильно напоминает компиляцию.

Трёхмерные игры


  1 core
HT OFF
1 core
HT ON
2 core
HT OFF
STALKER: Clear Sky ↑ 58 60 3% 61 5%
Devil May Cry 4 ↑ 189 199 5% 203 7%
Far Cry 2 ↑ 28 36 29% 50 79%
Grand Theft Auto 4 ↑ 24 36 50% 58 142%
Lost Planet ↑ 43 43 0% 43 0%
Unreal Tournament 3 ↑ 104 95 -9% 152 46%
Crysis: Warhead ↑ 45 47 4% 56 24%
World in Conflict ↑ 37 29 -22% 40 8%
Group Score ↑ 82 87 6% 109 33%

Grand Theft Auto 4 и тут сработала в своём фирменном стиле, отреагировав на включение HT 50%-ным приростом, а на второе ядро — так и вовсе 142%-ным. Создаётся такое впечатление, что у этой игры где-то есть встроенный переключатель: если одно ядро — работать медленно, если два или больше — сразу ускоряться! Неплохо относящаяся к увеличению количества физических ядер Far Cry 2 вполне благосклонна и к HT, а еще две игры, отличающиеся хорошей многопоточной оптимизацией, — Unreal Tournament 3 и World in Conflict — данную технологию единодушно забраковали. Косвенно это подтверждает тот простой тезис, что по-настоящему хорошо SMP-оптимизированное ПО выгоды от виртуальной многоядерности получить не может — на то оно и «хорошо оптимизированное». Даже по своей концепции (задействование простаивающих исполнительных блоков), HT должна быть более благосклонна к «сырому», «неряшливому» коду. В целом, по игровой группе прирост от HT составляет 6% — прямо скажем, отнюдь не рекорд.

Заключение


Итак, что мы видим? Второе физическое ядро даёт нам прирост в среднем 39%, включение Hyper-Threading — около 12%. Это ответ на вопрос о соотношении: получается, что виртуальное ядро — это примерно 1/3 физического.

Для ответа на вопрос о масштабируемости технологии Hyper-Threading даже не нужно дополнительного исследования комбинации «2 core HT ON», так как мы можем сравнить прирост от включения HT на одном ядре (данный материал) с приростом от включения HT на 4-х ядрах (предыдущая серия) — и этого вполне достаточно. Почему достаточно? Да потому что на одном ядре прирост составляет ~11,8%, а на четырёх ядрах — ~10,2%. Разница, соответственно, — 1,6%, то есть говорить не о чем: от 1 до 4 физических ядер, HT масштабируется практически идеально, а 6-ядерных десктопных CPU в планах Intel вроде пока не значится (экстремальные версии мы десктопными не считаем — как никто не считает «Ламборджини» — «легковыми автомобилями»).

Другое дело, что мы, конечно, надеялись на большее. Увидев 10,2% прироста даже на четырёхъядернике, мы, честно говоря, рассчитывали, что на 1 ядре прирост будет как минимум процентов 20. Увы — не сложилось. Уже зная результаты тестов, бессмысленно рассуждать о том, хорошо это или плохо — факты не бывают хорошими или плохими. Жаль разве что мечты: если бы эффективность HT при снижении количества ядер существенно возрастала, можно было бы надеяться в самом скором будущем увидеть, например, двухъядерные CPU от Intel с поддержкой HT, позиционируемые как альтернативу дешёвым «честным» четырёхъядерникам AMD. Учитывая, в целом, более высокую производительность нового ядра Intel в пересчёте на мегагерц — почему бы нет?

Однако 10-11% превосходства, которые, как выяснилось, обеспечивает HT, для конкуренции «виртуального» четырёхъядерника с «реальным» — всё-таки, маловато. Поэтому, с точки зрения обеспечения реального преимущества в производительности, существенного стимула для продвижения технологии Hyper-Threading в low-end сегмент десктопных процессоров — у Intel, объективно, нет. Не тот прирост даёт HT, чтобы это могло помочь дорогим (относительно двухъядерников AMD) двухъядерным процессорам Intel стать вровень с дешёвыми (относительно четырёхъядерников Intel) четырёхъядерниками AMD. Впрочем, бессмысленность, с практической точки зрения, вовсе не означает, что вездесущие маркетологи не попытаются задействовать данный ресурс.

Однако есть и ещё один вывод, к которому нас подталкивают результаты нынешнего тестирования. Действительно: 11 «красных флажков», свидетельствующих о снижении производительности в тестировании HT с 4-мя физическими ядрами, волшебным образом сменились всего двумя при тестировании с одним ядром. А ведь технология и принципы её реализации явно остались теми же: ведь процессор не менялся. Вывод, соответственно, будет довольно оптимистичен: вполне возможно, вовсе не в аппаратной реализации Hyper-Threading дело. Резонно предположить, что Windows Vista, обнаружив, что запущена на десктопе с 8-ю процессорами, была настолько ошеломлена этим чудом, что её планировщик задач просто не смог справиться с такой бездной новых возможностей. По крайней мере, нам такое объяснение множества «провалов» HT именно на 8-процессорной (с точки зрения ОС) системе кажется наиболее логичным. А стало быть, если принять данную гипотезу в качестве рабочей — дело лишь в системном ПО, и ситуация может быть скорректирована без вмешательства в аппаратную часть (читай: «Intel не виновата»).

Впрочем, несмотря на все вышеописанные проблемы, нам кажется, что где-то в глубине души, разработчиков из R&D-отдела AMD наверняка «душит жаба» по поводу Hyper-Threading. Судите сами: даже опуская чисто маркетинговый аспект (увеличение количества ядер с точки зрения пользователя в 2 раза), всё равно — изящно, элегантно, судя по всему, недорого, и, в среднем, как минимум плюс 10% к реальной производительности, не наращивая ни количество физических ядер, ни кэш, ни частоту! Просто не может не душить... И, как всегда в подобных случаях, мы придерживаемся принципа рационального оптимизма: раз уж SMT (частным случаем которой является HT, а сама концепция придумана, кстати, вовсе не Intel) доказала своё право на жизнь — значит, скорее всего, рано или поздно её освоят все ведущие производители современных x86(-64) CPU. Было бы глупо «из принципа» мимо практически бесплатных бонусов гордо ходить, не так ли?

P.S. Напоследок, любопытным читателям, интересующимся историей развития современных x86 CPU, мы можем предложить окунуться в атмосферу 2002 года, когда это всё начиналось.

Следующая статья серии: Intel Core i7, количество ядер

Модули памяти для тестовых стендов предоставлены российским представителством Corsair Memory
Процессор Intel Core i7 950 и плата ASUS P6T SE
предоставлены компанией Ulmart

Станислав Гарматюк (nawhi@ixbt.com)
Опубликовано — 2 октября 2009 г.
 



Новости | 3D-Видео, тюнеры и LCD | iT-Среда | MacLife | Мобильные устройства | Ноутбуки | Носители информации | Платформа ПК | Приложения и утилиты | Принтеры и периферия | ProAudio | Проекторы и ТВ | Сети и серверы | Цифровой звук | Цифровое видео | Цифровое фото | Карта сайта | Поиск

Copyright © by iXBT.com, 1997—2012. Produced by iXBT.com