Обзоры
Двухъядерные процессоры и современные игры

Двухъядерные процессоры и современные игры


Еще совсем недавно двухъядерные процессоры в домашнем компьютере оставались уделом отдельных энтузиастов и профессионалов, работающих с ресурсоемкими приложениями. Это было обусловлено достаточно высокой ценой двухпроцессорных систем и тем, что большинство обычных программ ничего не выигрывали от наличия второго ядра.

Ситуация начала постепенно исправляться с конца прошлого года, но стоимость процессоров с двумя ядрами долгое время оставалась неприемлемой для обычного пользователя. Однако в конце июля одновременно с выходом новых процессоров с ядром Conroe и AMD, и Intel снизили расценки на уже существующие двухъядерники до недавнего уровня одноядерных моделей. В результате возник закономерный вопрос: а есть ли на данный момент польза от второго ядра? Вот в этом мы и попытаемся сейчас разобраться. Начнем с теории. Прежде всего отметим, что многоядерность должна поддерживаться операционной системой, при этом каждое ядро определяется как отдельный процессор. Windows 2000/ХР, в отличие от более старых, но все еще местами используемых Windows 98/Me, обеспечивает полную поддержку многоядерных процессоров. Заметим, что Windows XP Home Edition не стоит особняком от родственных систем: несмотря на то что изначально для данной ОС была заявлена поддержка только одного процессора (а значит, второе ядро не имело шансов работать), под давлением AMD Microsoft несколько изменила лицензионную политику для указанной ОС, произведя регистрацию процессоров по количеству разъемов на материнской плате, а не по количеству ядер.

Далее возможность увеличения быстродействия при наличии второго ядра зависит от самого приложения. Естественно, говорить о приросте производительности имеет смысл, когда программе не хватает возможностей одного ядра, но не только в этом случае. Напомним, что процессоры AMD поддерживают фирменную технологию Cool’N’Quiet, которая позволяет понижать частоту CPU при низкой нагрузке на него, уменьшая тем самым потребление энергии и тепловыделение, благодаря чему снижается скорость вращения кулера во время работы. При наличии двухъядерного чипа и приложения с его поддержкой в некоторых случаях возможна ситуация, когда производительности достаточно даже на небольших частотах, а обычный CPU, выполняя ту же задачу, будет вынужден функционировать на максимальной частоте. Еще заметим, что повышение скорости осуществимо даже при отсутствии поддержки многоядерности со стороны программы, если она создает в ходе работы достаточно большое количество потоков (threads), и планировщик системы распределяет их по разным ядрам или в случае ее взаимодействия с другой программой (или драйвером), поддерживающей многопроцессорность.

Как мы тестировали?

Перейдем теперь к методике тестирования. В качестве представителя двухъядерных процессоров мы выбрали популярный AMD Athlon 64 X2 3800+ для сокета AM2, а в противовес ему взяли AMD Athlon 64 3500+ AM2 (на момент тестирования в наличии не было равного по частоте AMD Athlon 64 3200+ AM2). В первую очередь тесты проводились на штатной для X2 3800+ частоте в 2 GHz (соответственно, для получения этой частоты у 3500+ был уменьшен множитель с 11 до 10). Дополнительно мы решили исследовать производительность на 1,8 GHz (такой показатель имеет обычный AMD Athlon 64 3000+), понизив множитель обоих процессоров до 9; и при разгоне до 2,6 GHz (при множителе 10 и частоте задающего генератора в 260 MHz), чтобы проверить, не окажется ли узким местом видеокарта при достаточной частоте CPU. С сожалением отметим, что во время тестирования процессоров на частоте 2 GHz память работала в режиме 533 MHz, вместо положенных 667 MHz, что несколько занизило результаты в указанном режиме.

Двухъядерные процессоры и современные игры

Набор игр, использованных для измерения показателей производительности, достаточно стандартен. Они делятся на две группы – те, в которых заявлена поддержка двухъядерности (сюда относятся Quake 4, F.E.A.R, Serious Sam 2 и Call Of Duty 2), и те, для которых она не заявлена (Far Cry, DOOM 3, Need for Speed: Most Wanted, TES IV: Oblivion). Отметим, что игры первой группы изначально не поддерживали два ядра, нужная функциональность была впоследствии добавлена обновлениями. Кроме этого, получены результаты и в достаточно популярных бенчмарках 3DMark05 и 3DMark06.

Поскольку уже давно ведутся разговоры об использовании компьютера в качестве универсального центра развлечений, на котором одновременно «крутятся» и фильмы, и музыка, и игры, был проведен еще один эксперимент – в свойствах видеокарты мы включили вывод на телевизор и при этом запускали воспроизведение видео на нем плюс бенчмарк в Far Cry (средней по сегодняшним меркам игры). По причине ограниченного времени тестирования данный эксперимент проводился только для двух типов видеороликов – обычной записи в формате MPEG4 с разрешением 720×480 (обозначение в таблице – SDTV) и видео высокой четкости стандарта H.264 в разрешении 1920×1080 (соответственно – HDTV).

Игровые бенчмарки

Рассмотрим полученные результаты. В первую очередь отметим увеличение скорости в тех играх, где оно не ожидалось, а именно, в Far Cry и DOOM 3. Тут стоит вспомнить заявление компании NVIDIA, что ее драйверы, начиная с серии 8х.хх, поддерживают ускорение на двухъядерных процессорах, и, видимо, данное повышение производительности связано с ними. С другой стороны, в Need for Speed: Most Wanted ускорение вообще не зафиксировано, несмотря на рост показателей fps c увеличением частоты. Следовательно, напрашивается предположение, что, как и в случае с технологией SLI, ощутимая прибавка скорости будет достигнута только при дополнительной доработке драйверов под каждую конкретную игру, а значит, в общем случае на автоматическое ускорение рассчитывать не стоит. В Call of Duty 2, невзирая на отсутствие прироста производительности, поддержка двухъядерников есть, и она работает, что было видно из графиков загрузки CPU во время тестов. То же самое касается и TES IV: Oblivion – хотя поддержка многоядерности не заявлена (и результаты с учетом большой погрешности бенчмарка на разных процессорах близки), игра создает много потоков, которые достаточно адекватно распределяются системой по разным ядрам. Противоположная картина наблюдается в F.E.A.R. – несмотря на заявленную поддержку, никаких следов двухъядерности обнаружить не удалось. Более того, если изучить показатели загрузки ядер в ходе тестирования, то игра ведет себя так, будто она жестко привязана к одному из них, загружая его на 100%, в то время как второй используется лишь на 3–10%. Встроенный бенчмарк безразлично отнесся к добавлению второго ядра, а попытка снять показатели производительности внутри игры с помощью утилиты Fraps завершилась неудачей – средний fps от прогона к прогону колебался в пределах 63–90 fps, что дает абсолютно неприемлемую погрешность. Результаты в Quake 4 и Serious Sam 2 в особых комментариях не нуждаются, заявленная поддержка есть и работает, уменьшение прироста производительности с увеличением разрешения вызвано нехваткой мощности графического акселератора; естественно, на более быстрой видеокарте ускорение будет и в тяжелых видеорежимах.

Игры плюс видео

Отдельно прокомментируем параллельное выполнение двух ресурсоемких приложений. Как видно, при запуске обычного видео в MPEG4 производительности даже одноядерного процессора в целом достаточно для одновременной игры и просмотра фильма. Единственное замечание – при загрузке уровня в Far Cry изображение на телевизоре начинало подтормаживать, однако при разгоне до 2,6 GHz указанная проблема полностью исчезала. На двухъядернике таких затруднений не было даже при минимальной частоте. С очень ресурсоемким HDTV-роликом в разрешении 1080p ситуация кардинально меняется – на одноядерном процессоре и с разгоном невозможно нормально играть, параллельно смотря видео, на двухъядерном же на штатной частоте fps в игре достаточно высок, однако наблюдались подтормаживания и рассинхронизация звука/видео у выводимого на телевизор изображения. Повышение частоты процессора избавляет от данной проблемы, но тестирование проводилось не в самой ресурсоемкой из современных игр: при запуске в паре с HDTV-видео Quake 4 или TES IV: Oblivion производительности даже разогнанного двухъядерника недостаточно. Вероятно, ситуацию изменят процессоры Core 2 Duo от фирмы Intel, это можно будет проверить в дальнейшем. Еще необходимо заметить, что для одновременной игры и просмотра фильма требуются две звуковые карты: первая станет отвечать за звук в игре, вторая – за звук в фильме.

Возможные проблемы после установки двухъядерника

Несмотря на преимущества двухъядерных процессоров, их владельцы могут столкнуться с некоторыми проблемами, обычно не описываемыми в статьях. Мы решили восполнить этот пробел и дать несколько полезных рекомендаций.

Двухъядерные процессоры и современные игры

В двухъядерной системе наиболее часто наблюдаемая проблема (с которой можно столкнуться и в случае с процессором, c технологией Hyper-Threading) состоит в снижении производительности по сравнению с аналогичной одноядерной системой. К тому же в играх наблюдается, к примеру, резкое увеличение внутриигровой скорости (не производительности!). Причиной этого является некорректный выбор таймера операционной системы – вместо таймера управления питанием ACPI используется таймер TSC, что приводит к ошибкам в программах, задействующих в своей работе вызов функции ядра QueryPerformanceCounter.

В таком случае необходимо сделать следующее: в первую очередь нужно добавить в файл boot.ini, расположенный в корневом каталоге диска C, в конец строчки вида «multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional"/noexecute=optin/fastdetect» ключ/usepmtimer. Если вы не видите в Проводнике данного файла, то выберите в меню в разделе Сервис пункт Свойства папки. В появившемся окне на вкладке Вид уберите галочку возле пункта Скрывать защищенные системные файлы и в разделе Скрытые файлы и папки выберите Показывать скрытые файлы и папки. Далее владельцы процессоров AMD должны скачать и установить программу AMD DualCore Optimizer, а владельцам процессоров Intel необходимо следовать инструкциям, размещенным по этому адресу. Заметим, что если вы используете для управления частотой процессора не системные средства, а программу RMClock версии 2.15, то достаточно только добавить /usepmtimer в загрузочный файл. Если же, несмотря на выполнение вышеописанных действий, в ходе игры все равно возникают проблемы (зависания, выбрасывание на Рабочий стол и т. п.), то стоит попробовать жестко привязать игру к одному из ядер. Для этого после запуска игры нажимаем Ctrl+Alt+Del, в появившемся диспетчере задач щелкаем правой кнопкой на игре, выбираем пункт Перейти к процессам, затем кликаем опять правой кнопкой на выделенном процессе и выбираем Задать соответствие. В появившемся окне снимаем галочку возле одного из ядер, какого именно – не имеет значения, после чего закрываем окно, сам диспетчер задач и возвращаемся в игру. Если же после указанных действий проблемы не исчезли, и при этом у вас установлена видеокарта фирмы NVIDIA, можно попробовать отключить многопоточные оптимизации в видео-драйверах. Запускаем редактор реестра (Пуск -> Выполнить -> regedit.exe), идем по адресу HKey_Local_MachineHardwareDeviceMapVideo и выписываем из переменной devicevideo0 адрес, по которому расположены настройки видеокарты. Заметим, что указанный адрес у систем Windows 2000 и Windows XP отличается, в Windows 2000 он будет иметь вид REGISTRYMachineSystemControlSet001ServicesnvDevice0, в то время как в Windows XP RegistryMachineSystemCurrent ControlSetControlVideoitc_drupal_DD18ED74-F584-4145-B29B-E3A6C6189FAA000. Переходим по указанному адресу, учитывая следующее: Registry в данном случае говорит о том, что информация находится в реестре, а Machine – что она хранится в разделе HKEY_LOCAL_MACHINE. Пример содержимого необходимого раздела представлен на скриншоте. Щелкаем мышью в правой части окна, выбираем СоздатьПараметр DWORD, называем его OGL_ThreadControl и присваиваем ему значение 2. Для отключения многопоточности в приложениях Direct3D нужно создать переменную WTD_EXECMODEL того же типа и присвоить ей значение 0. Заметим, что обычно производители игр достаточно оперативно реагируют на проблемы такого рода, и прежде чем отключать поддержку двухъядерников, стоит проверить, нет ли патча для игры, исправляющего возможные ошибки.

Итоги

Итак, из результатов тестирования видно, что уже сейчас двухъядерные процессоры могут увеличить производительность в существующих играх по сравнению со своими одноядерными собратьями, хотя имеющиеся игры проектировались и писались в расчете именно на них. Конечно, цена двухъядерника несколько выше, но это плата за возросшее быстродействие. С выходом же игр с изначальной поддержкой многоядерности превосходство таких процессоров станет неоспоримым. Еще одним аргументом в их пользу является то, что в Microsoft Xbox 360 и выходящей вскоре Sony PS3 также установлено несколько процессоров, а значит, кросс-платформенные и портированные с приставок на PC игры наверняка получат преимущества от многоядерных чипов.

Конфигурация тестового стенда
ПроцессорAMD Athlon 64 3500+ AM2
AMD Athlon 64 X2 3800+ AM2
Материнская платаabit KN9 Ultra (nForce 570 Ultra)
Память2×1024 MB Samsung DDRII-667 5-5-5-13-1T
ВидеокартаASUS [email protected]/1600 MHz
Жесткий дискWestern Digital WD2000JS
Блок питанияFSP 550W 550-80GLN
Операционная системаWindows XP Professional SP2, DirectX 9.0c
ДрайверыNVIDIA ForceWare 91.28

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: