Компания 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 .
Тесты проводились на следующем стенде:
Программное обеспечение:
Сегодня будет проверена работоспособность Hyper-Threading у двух- и четырехъядерных процессоров. Двухъядерный процессор был получен путем отключения двух ядер у CPU i920 через БИОС материнской платы. Таким же путем был съэмулирован трехъядерный процессор, чтобы получить полную картину производительности двух-, трех- и четырехъядерных процессоров с отключенным Hyper-Threading и двух- и четырехъядерных CPU с включенным Hyper-Threading, в разных играх.
Результаты тестирования на диаграммах представлены в следующей последовательности:
Во-первых, такая последовательность, предположительно, должна соответствовать теоретическому распределению производительности. По опыту, технология Hyper-Threading обеспечивает прирост производительности в пределах 30%. Этого явно недостаточно для победы двухъядерного процессора с включенной технологией Hyper-Threading над "честным" трёхядерным, если только не имеется ошибки в реализации программного обеспечения (например, если ядер меньше четырёх, программа работает только на двух ядрах, при этом третье не используется в принципе - в таком варианте виртуальные четыре ядра могут быть быстрее реальных трёх). Мы, однако, не будем полагаться на небрежность и возможные ошибки программистов.
Во-вторых, при таком размещении можно более удобно сравнивать строки, отвечающие на актуальный вопрос: а нужно ли владельцу "игровой" машины активировать технологию Hyper-Threading в своём процессоре? Даёт ли эта технология преимущества именно в играх?
Что касается гипотетического трёхъядерника, то он здесь присутствует скорее ради научного интереса, так как подобного процессора в природе не существует и не ожидается. Однако благодаря наличию этой строки в диаграмме можно судить о том, есть ли смысл в выпуске подобного процессора компанией Intel так же, как это ранее сделала AMD.
Тестирование игровых приложений проводилось в разрешениях 1280х1024, в котором видеокарты выдают максимальный результат, за счет чего легче отследить разницу в производительности процессора, с активированными двумя, тремя, четырьмя ядрами и включенном/выключенным Hyper-Threading (далее кратко - НТ).
В следующих играх использовались средства измерения быстродействия (бенчмарк):
Игра, в которой производительность замерялась путем загрузки демо сцен:
В данных играх производительность измерялась с помощью утилиты FRAPS v3.0.3 build 10809:
Во всех играх замерялись минимальные и средние значения FPS.
В тестах, в которых отсутствовала возможность замера min fps, это значение измерялось утилитой FRAPS.
VSync при проведении тестов был отключен.
Чтобы избежать ошибок и минимизировать погрешности измерений, все тесты производились по три раза. При вычислении avg fps за итоговый результат бралось среднеарифметическое значение результатов всех прогонов. В качестве min fps выбиралось минимальное значение показателя по результатам трех прогонов.
Перейдем непосредственно к тестам.
Для этой игры достаточно трех ядер, поэтому включение НТ у четырехъядерного процессора не дает прироста производительности, а гипотетический трехъядерный CPU показывает результат аналогичный кваду. Двух же ядер уже оказывается недостаточно, поэтому процессор с двумя отключенными ядрами показывает наихудший результат, а включение НТ позволяет ему догнать остальных участников тестирования.
В Batman: Arkham Asylum двухъядерный процессор незначительно отстал от трех- и четырехъядерного CPU. Технология НТ в этом проекте оказалась неработоспособной.
В Bionic Commando ситуация схожа с Anno 1404, но 10% роста производительности двухъядерного процессора после активации НТ оказывается недостаточно для того, чтобы он сравнялся с трехъядерным CPU.
По диаграмме виден существенный разрыв в производительности между двух- и трехъядерным процессорами. Активация НТ принесла двухъядерному СPU мизерные дивиденды.
Тесты показали, что Call of Duty: Modern Warfare 2 оптимизирована под двухъядерные процессоры, поэтому активация НТ никак не повлияла на производительность.
Несмотря на то, что на диаграмме видна разница в производительности между двух- и трехъядерным процессорами, активация НТ не привела ни к каким изменениям. В Colin McRae: DIRT 2 эта технология оказалась неработоспособной.
В Crysis Warhead включение НТ позволило двухъядерному процессору сравняться с трехъядерным CPU.
Игра Dragon Age: Origin отлично оптимизирована под четырехъядерные процессоры, поэтому двухъядерный процессор существенно отстал от трех- и четырехъядерного CPU. Однако включение НТ ничем не смогло ему помочь, так как и в этом проекте данная технология оказалась неработоспособной.
В Fallout 3: Broken Steel ситуация схожа с таковой в игре Anno 1404 - в производительности между двух-, трех- и четырехъядерным процессорами не наблюдается почти никакой разницы. Поэтому активация НТ практически не повлияла на результаты.
Активация НТ положительно сказалась на росте производительности двухъядерного процессора в Far Cry 2 - отставание от трехъядерного CPU сократилось с 24% до 6%.
FUEL является очередным проектом, оптимизированным под двухъядерные CPU, поэтому включение НТ, как и ожидалось, не повлияло на производительность.
В Gears of War разница в производительности между двух- и трехъядерным процессорами составила 11%. Активация НТ помогла двухъядерному CPU существенно сократить этот разрыв, в результате чего он практически сравнялся с трехъядерным собратом.
Вот и подошла очередь Grand Theft Auto 4 - ярко выраженного процессорозависимого проекта. Активация НТ серьезно "подтянула" производительность двухъядерного процессора, сократив отставание от трехъядерного CPU с 29% до 9%. А вот в случае с четырехъядерным процессором включение этой технологии наоборот привело к снижению производительности.
В Left 4 Dead 2 включение НТ увеличило производительность двухъядерного процессора на заметно меньшую величину, чем в Far Cry 2. Тем не менее, это позволило ему вплотную приблизиться к трех- и четырехъядерному CPU.
Lost Planet: Colonies стала первой и последней игрой, в которой включение HT увеличило производительность четырехъядерного процессора. Необычно выглядит результат двухъядерного CPU: после активации НТ - его производительность возросла настолько, что он оказался быстрее четырехъядерного процессора. Логического объяснения этому феномену не существует, но повторно проведенное тестирование дало тот же результат.
Также включение НТ значительно повлияло на min fps у двух- и четырехъядерного CPU - по этому показателю они оказались быстрее двух-, трех- и четырехъядерного процессоров на 28 - 56%.
В Mass Effect технология НТ оказалась полностью неработоспособной.
Тестирование показало, что разница в производительности между двух- и трехдерным процессорами не велика, поэтому активация НТ практически не принесла никаких изменений.
Need for Speed: SHIFT положительно отзывается на активацию ядер, но включение НТ ничего не дало CPU. Эта технология вновь оказалась неработоспособной.
В Operation Flashpoint: Dragon Rising разница во всех режимах при использовании связки из двух GeForce GTX 260 невелика. Активация НТ позволила двухъядерному процессору вплотную приблизиться к трехъядерному CPU.
В Overlord 2 ситуация схожа с играми Call of Duty: Modern Warfare 2 и FUEL.
Prototype, как и Grand Theft Auto 4, является процессорозависимой игрой. Активация НТ повысила производительность двухъядерного процессора, но, несмотря на это, он все равно значительно отстал от трехъядерного CPU. В случае с четырехъядерным процессором включение НТ наоборот снизило его производительность, что наблюдалось и в Grand Theft Auto 4.
Включение НТ у двухъядерного процессора заметно увеличило его производительность, сократив отставание от трехъядерного собрата до незначительных 4%. Активация НТ у четырехъядерного процессора привела к неожиданному результату - игра зависла. Та же картина наблюдалась и при повторном запуске. Причину этой проблемы мы объяснить не можем.
Результаты тестирования, приведенные на диаграмме, указывают на то, что игра Red Faction: Guerrilla оптимизирована под двухъядерные процессоры. Поэтому включение НТ не повлияло на производительность CPU.
В Risen включение НТ незначительно увеличило производительность двухъядерного процессора и никак не повлияло на четырехъядерный CPU.
Забегая вперед, отметим, что в Sacred 2: Fallen Angel и Street Fighter 4 наблюдалась схожая ситуация.
Активация НТ на один процент увеличила средний fps для двухъядерного процессора, не принеся больше никаких результатов.
Несмотря на высокотехнологичность движка, S.T.A.L.K.E.R.: Call of Pripyat по сей день эксплуатирует только одно процессорное ядро. Поэтому нет ничего удивительного в том, что активация НТ никак не повлияла на производительность.
На диаграмме видна незначительная разница в производительности двух-, трех- и четырехъядерного процессоров. Включение НТ положительно сказалось на производительности двухъядерного CPU. Несмотря на небольшой её прирост, двухъядерный процессор вплотную приблизился к трёхъядерному.
Включение НТ на 30% повысила производительность двухъядерного процессора, за счет чего он оказался быстрее трехъядерного CPU на 8%. На четырехъядерный процессор активация НТ оказала негативное влияние - его производительность упала на 13%.
Среднегеометрическая производительность различных конфигураций процессора в тридцати играх
минимальный и средний FPSСегодняшнее тестирование показало, что активация Hyper-Threading повышает производительность двухъядерного процессора, но этого недостаточно, чтобы конкурировать с трехъядерным CPU. Включение Hyper-Threading у четырехъядерного CPU негативно сказалось на производительности - она снизилась.
Для составления более объективной картины рассмотрим изменение производительности процессоров после активации технологии Hyper-Threading в тридцати играх по отдельности.
Получившаяся сводная диаграмма оказалась довольно "масштабной". Сделано это было, чтобы сохранить масштаб шкалы и все данные выглядели как можно нагляднее.
Сводная диаграмма производительности процессоров, с включенной и выключенной технологией Hyper-Threading (за 100% взят результат двухъядерного процессора с выключенным НТ)
Anno 1404По диаграмме видно, что:
Данное тестирование показало, что поддержка процессором технологии Hyper-Threading положительно сказывается на производительности, но не всегда. После выхода процессора Core i7 были проведены многочисленные тесты, которые показали снижение производительности в играх при включении режима Hyper-Threading. Сложно сказать, в чем конкретно была проблема, но по результатам данного тестирования видно, что включение Hyper-Threading, как правило, не ухудшает дело.
Если сравнивать результаты с включенным и выключенным режимом Hyper-Threading, то максимальная польза от его активации была получена на двух физических ядрах - это четыре логических при включении Hyper-Threading, а наименьшая - на четырех физических ядрах, где, как правило, включение НТ приводит к небольшому снижению минимального и среднего fps. Если проанализировать цифры, то выясняется, что при малом числе ядер общая производительность меньше и распараллеливание ресурсов на четыре логических позволяет получить дивиденды в производительности даже при больших задержках в выполнении на логических ядрах. А вот при большем количестве физических ядер их общей производительности уже хватает и разбивка на логические ядра приносит только потери. Однако, зачастую отключение НТ позволяет получить больший разгонный потенциал процессора при несколько меньшем потреблении, что компенсирует прирост производительности от режима НТ, причем этот эффект будет действовать во всех играх.
Причина проблем с использованием Hyper-Threading кроется в том, что производители игр в первую очередь ориентируются на игровые консоли. Несмотря на то, что четырехъядерные процессоры существуют на рынке больше двух лет, игры, нормально оптимизированные под них можно сосчитать на пальцах обеих рук. Что уж говорить о дополнительных виртуальных ядрах, которые банально не используются.
Благодарю за помощь в подготовке материала к публикации рецензентов: rodyanin, serj, Hil, 40_degrees и donnerjack.