Двоядерні процесори і сучасні ігри

Ще зовсім недавно двоядерні процесори в домашньому комп'ютері залишалися долею окремих ентузіастів і професіоналів, які працюють з ресурсоємними додатками. Це було обумовлено досить високою ціною двопроцесорних систем і тим, що більшість звичайних програм нічого не вигравали від наявності другого ядра.


Ситуація почала поступово виправлятися з кінця минулого року, але вартість процесорів з двома ядрами довгий час залишалася неприйнятною для звичайного користувача. Проте в кінці липня одночасно з виходом нових процесорів з ядром 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, FEAR, 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 – хоча підтримка багатоядерності не заявлена (і результати з урахуванням великої похибки бенчмарка на різних процесорах близькі), гра створює багато потоків, які досить адекватно розподіляються системою за різними ядер. Протилежна картина спостерігається в FEAR – незважаючи на заявлену підтримку, ніяких слідів двоядерного виявити не вдалося. Більш того, якщо вивчити показники завантаження ядер в ході тестування, то гра веде себе так, ніби вона жорстко прив'язана до одного з них, завантажуючи його на 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 він буде мати вигляд REGISTRYMachineSystemControlSet001ServicesvDevice0, в той час як в Windows XP RegistryMachineSystemCurrent ControlSetControlVideo {DD18ED74-F584-4145-B29B-E3A6C6189FAA} 000. Переходимо за вказаною адресою, з огляду на наступне: 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 EN7600GT@600/1600 MHz
Жорсткий диск Western Digital WD2000JS
Блок живлення FSP 550W 550-80GLN
Операційна система Windows XP Professional SP2, DirectX 9.0c
Драйвери NVIDIA ForceWare 91.28


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*