Тести відеокарт AMD і NVIDIA під DirectX 12 в змішаному режимі

  1. Технологія Multi-GPU
  2. DirectX 12 і Multi-Adapter
  3. EMA в Ashes of Singularity

На даний момент обговорення йдуть, в основному, навколо низькорівневих тестів DirectX 12, оскільки менша надлишкова обчислювальна навантаження обіцяє приріст продуктивності На даний момент обговорення йдуть, в основному, навколо низькорівневих тестів DirectX 12, оскільки менша надлишкова обчислювальна навантаження обіцяє приріст продуктивності. Ми теж провели кілька тестів, в тому числі сценарій виклику Draw Call в 3DMark від Futuremark , а також додали розділ тестів DirectX 12 в наших оглядах відеокарт . Але не варто забувати, що новий API дозволяє використовувати відеокарти AMD і NVIDIA одночасно , Теоретично складаючи їх ресурси продуктивності.

DirectX 12 Multi-GPU Explicit Multi-Adapter або Multi Display Adapter - такими термінами сьогодні описується взаємодія різних GPU. Технологія стала можливою завдяки доступу до API на більш глибокому рівні. Тепер розробники отримують більш ефективні засоби управління пам'яттю і багатьма іншими компонентами «заліза». Робота систем multi-GPU під DirectX 11 була повністю в руках розробників драйверів. Під DirectX 12 «влада» перейшла до розробників ігор. Видання Anandtech провело перші тести Multi-GPU Explicit Multi-Adapter. Для тесту видання отримало спеціальний білд гри Ashes of Singularity від Oxides Games.

Технологія Multi-GPU

Але спочатку дозвольте сказати пару слів про технологію multi-GPU: поява інтерфейсу PCI Express для взаємодії відеокарти і всі інші компоненти привів до того, що AMD і NVIDIA змогли використовувати технологію AFR (Alternate Frame Rendering) для простої підтримки multi-GPU. AFR має на увазі почергове обчислення кадрів на кожному GPU. Вносити будь-які зміни в гру або ігровий движок при цьому не потрібно. Розробникам AMD і NVIDIA досить внести в драйвери відповідну підтримку, щоб відмінності за часом виведення окремих кадрів не приводили до появи артефактів. AMD представила технологію згладжування кадрів Frame Pacing , NVIDIA теж відповіла власної апаратно-програмної технологією. Крім того, синхронізація частоти кадрів між GPU і панеллю дисплея у вигляді FreeSync і G-Sync дозволяє мінімізувати появу артефактів.

Але вибір апаратної платформи залишався обмеженим. NVIDIA дозволяла взаємодія тільки ідентичних моделей відеокарт, AMD надала велику гнучкість, по крайней мере, використання відеокарт на одному GPU (наприклад, Radeon R9 290 і Radeon R9 290X). Звичайно, для цього є причина - відеокарти різного рівня продуктивності не можуть в AFR розраховувати кадри за порівнянний час. Рішення може полягати в технології SFR (Spit Frame Rendering), але вона так і не стала популярною. Про SFR ми поговоримо трохи пізніше.

Втім, вже відбувалися спроби об'єднати відеокарти різних виробників без використання офіційних режимів SLI і Crossfire. У 2010 році LucidLogix представила технологію Hydra. За допомогою додаткового чіпа і програмного забезпечення технологія розподіляла виклики DirectX і OpenGL між сумісними відеокартами. Але при цьому були досить серйозні обмеження по апаратній базі і по програмній підтримці. Все це призвело до того, що технологія Hydra так і не змогла набрати популярність, пішовши в небуття.

DirectX 12 і Multi-Adapter

З появою DirectX 12 Microsoft представила три режими multi-adapter. У найпростішому випадку використовується згадана вище технологія AFR з відеокартами одного виробника AMD або NVIDIA. Але даний режим обмежує можливості ігрових розробників, але разом з тим зменшує ймовірність потенційного виникнення помилки через глибокого доступу до «заліза». Велика частина роботи для підтримки виконується в драйвері, а не під DirectX 12.

Презентація EMA під DirectX 12

DirectX 12 забезпечує більш глибокий доступ до «заліза» навіть в системах multi-GPU. Для цього Microsoft представила режим Explicit Multi-Adapter (EMA). У ньому ігрові розробники явно задають параметри підтримки multi-GPU. Для кожного одиночного GPU визначається доступ до пам'яті, описується взаємодія GPU між собою - і вся ця підтримка повинна бути запрограмована заздалегідь. Відповідальність за роботу зв'язки відеокарт тепер повністю лежить в руках розробників, що привносить певні ризики. Додаткові зусилля розробників не варто недооцінювати, а помилки повинен буде виправляти розробник, а не Microsoft, AMD або NVIDIA.

У режимі EMA можливі два різних режиму: Linked Mode і Unlinked Mode. У режимі Unlinked Mode забезпечується базова функціональність EMA, в режимі Linked Mode функціональність розширюється, але обмеження по використовуваному в комбінації «залозу» стають більш строгими. Наприклад, можна використовувати тільки системи SLI і CrossFire під DirectX 12. В режимі Unlinked Mode ви можете комбінувати різні відеокарти, в тому числі і від різних виробників. Можлива комбінація дискретного і інтегрованого GPU.

У режимі Unlinked Mode кожен графічний процесор вважається самостійною апаратної одиницею, зі своєю пам'яттю, командним процесором і т.д. EMA під DirectX 12 дозволяє обмінюватися даними між апаратними одиницями, причому на глибокому рівні, а не просто готовими кадрами. Можна обмінюватися частково прорахованими кадрами або даними в буферах, що дозволяє вийти на нові рівні спільного рендеринга на декількох GPU. На перший погляд все звучить просто, став можливий обмін даними, що відкриває доступ до алгоритмів, раніше недоступних. Але на практиці все складніше. Дані доведеться передавати по інтерфейсу PCI Express, що набагато повільніше зв'язку між GPU і локальної видеопамятью, та й затримки досить великі. Так що розробникам слід визначити, які дані має сенс передавати між GPU, щоб інтерфейс PCI Express не став «вузьким місцем». Також слід визначитися, в якому вигляді передавати дані. У різних виробників і навіть різних поколінь GPU часто використовуються різні формати даних, які не завжди просто перевести з одного в інший. Доведеться докладати додаткові зусилля, необхідні для реалізації EMA в Unlinked Mode. Втім, фокусом Unlinked Mode в EMA є все ж спільна робота дискретних та інтегрованих GPU, але і тут можуть використовуватися GPU різних виробників.

Режим Linked Mode можна розглядати як форму SLI або Crossfire під DirectX 12, апаратні ресурси в Linked Mode комбінуються в свого роду «відеокарту». Користувач і ігровий движок «бачать» тільки один GPU і пам'ять. Апаратні ресурси тут будуть використовуватися більш тісно і глибоко, що відкриває більше можливостей, але при цьому накладаються додаткові обмеження на «залізо». Найбільший потенціал продуктивності можна буде розкрити через Linked Mode, а найбільший рівень гнучкості - через Unlinked Mode. Якщо розробники хочуть докласти мінімальні зусилля, і їм досить базової функціональності системи multi-GPU, то досить підтримати простий варіант EMA, довірившись кваліфікації розробників драйверів AMD і NVIDIA. Але оскільки тільки розробники гри в повній мірі володіють усіма нюансами свого продукту, то підтримка Linked і Unlinked Mode теж вельми бажана.

EMA в Ashes of Singularity

Oxides Games і Ashes of Singularity минулого тижня відкрили ранній доступ Steam до своєї гри . Стратегія реального часу повинна вийти в 2016 році. Вона стане першою грою даного жанру з підтримкою DirectX 12, а розробники Oxides Games першими постаралися повністю задіяти можливості DirectX 12. AMD і Microsoft в співпраці зі студією розробників змогли побудувати технологічну демонстрацію на основі гри. Для демонстрації EMA розробники Oxides Games використовували технологію AFR. Вони управляли розподілом кадрів по окремих GPU - раніше цю роботу виконував драйвер. Також розробникам довелося самостійно вирішувати питання передачі кадрів від додаткових GPU на основний, а також реалізовувати згладжування частоти кадрів (Frame Pacing). Технологія AFR найкраще працює при використанні ідентичних відеокарт, оскільки вони справляються з розрахунком кадрів за близьке час. У будь-якому випадку, дана реалізація йде далі, ніж звичні варіанти AMD і NVIDIA. Ви можете комбінувати різні GPU від різних виробників, що дозволяє одночасно працювати, наприклад, GeForce GTX Titan X з GeForce GTX 980 Ti. Але для роботи все відеокарти повинні підтримувати DirectX 12. І наші колеги Anandtech провели численні тести.

Гра Ashes of Singularity як і раніше знаходиться в альфа-стані. І підтримка Unlinked Mode EMA є експериментальною. Можна використовувати тільки певну комбінацію драйверів AMD і NVIDIA, але результати виявилися набагато краще, ніж можна було очікувати. Oxides Games спочатку буде покращувати Unlinked Mode, після чого перейде до підтримки Linked Mode. Тут очікується приріст продуктивності в діапазоні 5-10%.

Нижче наведені результати перших тестів:

Пару слів про результати. Приріст продуктивності пари Radeon R9 X Fury і Radeon R9 Fury виявився вельми вражаючим, те ж саме можна сказати про змішаному режимі Radeon R9 Fury X і GeForce GTX 980 Ti. Вибір інших основних відеокарт дає вже меншу різницю. Від Unlinked Mode можуть виграти навіть старі відеокарти.

У BUILD 2015 Microsoft вже представила функціонуючий режим Unlinked Mode в теорії, але поява незалежних тестів можна назвати доброю ознакою, що вказує на поточний стан розробки. Але все ж поки що можна говорити лише про ранньому стані переходу з DirectX 11 на DirectX 12. Пройде кілька місяців, перш ніж на ринку почнуть з'являтися гри. А до підтримки DirectX 12 усіма розробниками пройдуть роки. Те ж саме стосується реалізації всіх суміжних технологій. Більшість розробників напевно досить швидко скористаються перевагою продуктивності завдяки зменшенню надмірного навантаження. Але до повсюдної реалізації EMA, режимів Unlinked і Linked Mode пройде набагато більше часу. Геймерам поки тільки залишається чекати відповідної підтримки з боку розробників.