Работоспособность технологии Hyper-Threading в играх

26 января 2010, вторник 01:56

Оглавление

  • Вступление
  • Тестовая конфигурация
  • Инструментарий и методика тестирования
  • Результаты тестов: сравнение производительности
  • Сравнение производительности процессоров
  • Заключение
  • Вступление

    Компания Intel внедрила в свои процессоры, основанные на микропроцессорной архитектуре Nehalem, много новаторских разработок. Сегодня мы рассмотрим одну из них, а именно Hyper-Threading.

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

    В современных условиях Hyper-Threading часто положительно сказывается на росте производительности процессора при кодировании видео, архивации и многих других операциях, оптимизированных под многопоточность.

    Будет интересно проверить, насколько эффективна эта технология в современных играх на примере процессора Intel Core i7 i920.

    На текущий момент большинство покупателей интересует не дорогая старшая линейка процессоров Intel Core i7 LGA 1366, а более доступные Core i5 и i7 в исполнении LGA 1156. Сегодняшнее тестирование покажет, есть ли польза от поддержки технологии Hyper-Threading двух- и четырехъядерными процессорами Intel.

    Подробно ознакомиться с технологией Hyper-Threading можно на официальном сайте Intel .

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

    Тесты проводились на следующем стенде:

    • Процессор: Intel Core i7 920 (Bloomfield, D0, L3 8 Мб), 1.18 В, Turbo Boost - on, Hyper Threading - off/on - 2660 @ 4000 МГц
    • Материнская плата: GigaByte GA-EX58-UD5, BIOS F5
    • Видеокарта: Zotac GeForce GTX 260 896 Mбайт (576/1242/2000 МГц) - 2 шт
    • Система охлаждения CPU: Cooler Master V8 (~1100 об/мин)
    • Оперативная память: 2 x 2048 Мбайт DDR3 Corsair TR3X6G1600C7 (Spec: 1528 МГц / 8-8-8-20-1t / 1.5 В) , X.M.P. - off
    • Дисковая подсистема: SATA-II 500 Гбайт, WD 5000KS, 7200 об/мин, 16 Мбайт
    • Блок питания: FSP Epsilon 700 Ватт (штатный вентилятор: 120-мм на вдув)
    • Корпус: открытый тестовый стенд
    • Монитор: 24" BenQ V2400W (Wide LCD, 1920x1200 / 60 Гц)

    Программное обеспечение:

    • Операционная система: Windows 7 build 7600 RTM x86
    • Драйвер видеокарты: NVIDIA Display Driver 195.62
    • RivaTuner 2.24c
    • MSI AFTERBURNER 1.4.2

    Инструментарий и методика тестирования

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

    Результаты тестирования на диаграммах представлены в следующей последовательности:

    • 2 ядра, технология Hyper-Threading отключена
    • 2 ядра, технология Hyper-Threading включена
    • 3 ядра, технология Hyper-Threading отключена
    • 4 ядра, технология Hyper-Threading отключена
    • 4 ядра, технология Hyper-Threading включена

    Во-первых, такая последовательность, предположительно, должна соответствовать теоретическому распределению производительности. По опыту, технология Hyper-Threading обеспечивает прирост производительности в пределах 30%. Этого явно недостаточно для победы двухъядерного процессора с включенной технологией Hyper-Threading над "честным" трёхядерным, если только не имеется ошибки в реализации программного обеспечения (например, если ядер меньше четырёх, программа работает только на двух ядрах, при этом третье не используется в принципе - в таком варианте виртуальные четыре ядра могут быть быстрее реальных трёх). Мы, однако, не будем полагаться на небрежность и возможные ошибки программистов.

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

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

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

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

    • Batman: Arkham Asylum
    • Colin McRae: DIRT 2
    • Crysis Warhead (ambush)
    • Far Cry 2 (ranch small)
    • Lost Planet: Colonies (area1)
    • Resident Evil 5 (scene 1)
    • Tom Clancy's H.A.W.X.
    • S.T.A.L.K.E.R.: Call of Pripyat (SunShafts)
    • Street Fighter 4
    • World in Conflict: Soviet Assault

    Игра, в которой производительность замерялась путем загрузки демо сцен:

    • Left 4 Dead 2

    В данных играх производительность измерялась с помощью утилиты FRAPS v3.0.3 build 10809:

    • Anno 1404
    • Bionic Commando
    • Borderlands
    • Call of Duty 4: Modern Warfare 2
    • Dragon Age: Origin
    • Fallout 3: Broken Steel
    • FUEL
    • Gears of War
    • Grand Theft Auto 4
    • Mass Effect
    • Mirrors Edge
    • Need for Speed: SHIFT
    • Operation Flashpoint: Dragon Rising
    • Overlord 2
    • Prototype
    • Race Driver: GRID
    • Red Faction: Guerrilla
    • Risen
    • Sacred 2: Fallen Angel

    Во всех играх замерялись минимальные и средние значения FPS.

    В тестах, в которых отсутствовала возможность замера min fps, это значение измерялось утилитой FRAPS.

    VSync при проведении тестов был отключен.

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

    Перейдем непосредственно к тестам.

    Сравнение производительности процессоров

    Среднегеометрическая производительность различных конфигураций процессора в тридцати играх



    Включите JavaScript, чтобы видеть графики
    минимальный и средний FPS

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

    Для составления более объективной картины рассмотрим изменение производительности процессоров после активации технологии Hyper-Threading в тридцати играх по отдельности.

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

    Сводная диаграмма производительности процессоров, с включенной и выключенной технологией Hyper-Threading (за 100% взят результат двухъядерного процессора с выключенным НТ)

    Anno 1404

    Включите JavaScript, чтобы видеть графики

    Batman: Arkham Asylum

    Включите JavaScript, чтобы видеть графики

    Bionic Commando

    Включите JavaScript, чтобы видеть графики

    Borderlands

    Включите JavaScript, чтобы видеть графики

    Call of Duty: Modern Warfare 2

    Включите JavaScript, чтобы видеть графики

    Colin McRae: DIRT 2

    Включите JavaScript, чтобы видеть графики

    Crysis Warhead

    Включите JavaScript, чтобы видеть графики

    Dragon Age: Origin

    Включите JavaScript, чтобы видеть графики

    Fallout 3: Broken Steel

    Включите JavaScript, чтобы видеть графики

    Far Cry 2

    Включите JavaScript, чтобы видеть графики

    FUEL

    Включите JavaScript, чтобы видеть графики

    Gears of War

    Включите JavaScript, чтобы видеть графики

    Grand Theft Auto 4

    Включите JavaScript, чтобы видеть графики

    Left 4 Dead 2

    Включите JavaScript, чтобы видеть графики

    Lost Planet: Colonies

    Включите JavaScript, чтобы видеть графики

    Mass Effect

    Включите JavaScript, чтобы видеть графики

    Mirrors Edge

    Включите JavaScript, чтобы видеть графики

    Need for Speed: SHIFT

    Включите JavaScript, чтобы видеть графики

    Operation Flashpoint: Dragon Rising

    Включите JavaScript, чтобы видеть графики

    Overlord 2

    Включите JavaScript, чтобы видеть графики

    Prototype

    Включите JavaScript, чтобы видеть графики

    Race Driver: GRID

    Включите JavaScript, чтобы видеть графики

    Red Faction: Guerrilla

    Включите JavaScript, чтобы видеть графики

    Resident Evil 5

    Включите JavaScript, чтобы видеть графики

    Risen

    Включите JavaScript, чтобы видеть графики

    Sacred 2: Fallen Angel

    Включите JavaScript, чтобы видеть графики

    S.T.A.L.K.E.R.: Call of Pripyat

    Включите JavaScript, чтобы видеть графики

    Street Fighter 4

    Включите JavaScript, чтобы видеть графики

    Tom Clancy: HAWX

    Включите JavaScript, чтобы видеть графики

    World in Conflict: Soviet Assault

    Включите JavaScript, чтобы видеть графики

    По диаграмме видно, что:

    • включение НТ у двухъядерного процессора не повлияло на его производительность в десяти играх
    • включение НТ у двухъядерного процессора незначительно увеличило его производительность (менее 5%) в восьми играх
    • включение НТ у двухъядерного процессора заметно повысило его производительность (более 5%), но он все равно оказался медленнее трехъядерного CPU, в десяти играх
    • включение НТ у двухъядерного процессора сделало его производительнее трехъядерного CPU в одной игре
    • включение НТ у двухъядерного процессора сделало его производительнее четырехъядерного CPU в одной игре
    • включение НТ у четырехъядерного процессора не повлияло на его производительность в двадцати пяти играх
    • включение НТ у четырехъядерного процессора повысило его производительность в одной игре
    • включение НТ у четырехъядерного процессора снизило его производительность в трех играх
    • включение НТ у четырехъядерного процессора привело к зависанию в одной игре

    Заключение

    Данное тестирование показало, что поддержка процессором технологии Hyper-Threading положительно сказывается на производительности, но не всегда. После выхода процессора Core i7 были проведены многочисленные тесты, которые показали снижение производительности в играх при включении режима Hyper-Threading. Сложно сказать, в чем конкретно была проблема, но по результатам данного тестирования видно, что включение Hyper-Threading, как правило, не ухудшает дело.

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

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

    Благодарю за помощь в подготовке материала к публикации рецензентов: rodyanin, serj, Hil, 40_degrees и donnerjack.

    Дмитрий Прилепских aka Phoenix_