Асинхронні шейдери прискорюють відеокарти AMD - Hardwareluxx Ukrainian
Сторінка 2: Асинхронні шейдери – частина 2
Асинхронні шейдери вже входять в архітектуру GCN, тому AMD розробляла архітектуру з прицілом на майбутнє. Розробникам CPU і GPU завжди доводиться буквально передбачати майбутнє, орієнтуючись на програмні рішення, які з'являться лише за кілька років.
У GPU Hawaii використовується вісім блоків ACE (Asynchronous Compute Engines), всі вони працюють незалежно. Кожен блок ACE може, своєю чергою, обробляти вісім незалежних черг команд. Для швидкого доступу до всіх даних ACE працюють з кешем L2. А ще два двигуна DMA можливе звернення до пам'яті. Тут використовується повна пропускна здатність PCI Express 3.0 16 Гб/с.
Асинхронні шейдери дозволяють не лише покращити базову продуктивність сучасних архітектур та роботу движків рендерингу, а й забезпечують виграш у деяких областях. Популяризація технологій віртуальної реальності поставила перед усіма виробниками нові завдання, які доводиться вирішувати багато в чому ідентично – і AMD, і NVIDIA. Щоб забезпечити повне занурення у віртуальну реальність, тобто віртуальний світ не відрізнявся від реального, необхідно виконати ряд критеріїв.
Найвища роздільна здатність дисплеїв з найвищою частотою кадрів вимагають високої обчислювальної продуктивності. Оптимальним поки вважається дозвіл UltraHD на кожне око та частота 90 кадрів на секунду. Необхідну продуктивність можуть забезпечити асинхронні шейдери. Крім того, має зменшитися затримка між введенням користувача та виведенням на дисплей, що критично для повного занурення у віртуальну реальність.
Виникає питання: чи матимуть геймери відчутні переваги від асинхронних шейдерів? Практичних прикладів ми поки що навестине можемо, і поки тести DirectX 12 не дають загальної картини, тестуючи певні частини конвеєра рендерингу. Наприклад, повернемося до тих же операцій Draw Calls, кількість яких у Mantle/DirectX 12 зросла дуже значно в порівнянні з DirectX 11, але ступінь їх впливу на весь конвеєр рендерингу поки не зовсім зрозумілий.
Ймовірно, ми маємо дочекатися появи перших ігор з "рідною" підтримкою DirectX 12, щоб оцінити ефект. Звичайно, AMD постаралася провести внутрішні тести, щоби показати вплив асинхронних шейдерів на продуктивність. Наприклад, без асинхронних шейдерів включення ефектів постобробки призводить до падіння продуктивності прикладу SDK LiquidVR з 245 до 158 fps. Включення асинхронних шейдерів дозволяє повернутись до рівня продуктивності, який спостерігався без ефектів пост-обробки.
Хоча щодо апаратної підтримки залишаються питання. Швидше за все, ми знову отримаємо кілька рівнів підтримки DirectX 12. У випадку DirectX 11 нам уже доводилося боротися з різними рівнями реалізації підтримки, і не хотілося б знову зіткнутися з цією проблемою вже під DirectX 12. Але AMD та NVIDIA вказують, що принаймні Принаймні два останні покоління GPU сумісні з DirectX 12. Але якою мірою забезпечується сумісність – поки невідомо.
Оновлення:
Нам вдалося дізнатися, які GPU підтримують асинхронні шейдери та у якому вигляді.
| Архітектура | Змішаний режим | Обчислення на GPU |
| AMD GCN 1.2 (R9 285) | 1x Grafik + 7x Compute | 8x Compute |
| AMD GCN 1.1 (R9-290-Series) | 1x Grafik + 7x Compute | 8x Compute |
| AMD GCN 1.1 (R7-260-Series) | 1xGrafik + 1x Compute | 2x Compute |
| AMD GCN 1.0 (HD-7000 та решта лінійки 200) | 1x Grafik + 1x Compute | 2x Compute |
| NVIDIA Maxwell 2. Generation (GTX-900-Series) | 1x Grafik + 31x Compute | 32x Compute |
| NVIDIA Maxwell 1. Generation (GTX-750-Series) | 1x Grafik | 32x Compute |
| NVIDIA Kepler (GK110) | 1x Grafik | 32x Compute |
| NVIDIA Kepler (GK10x) | 1x Grafik | 1x Compute |
Звичайно, NVIDIA працює над схожою технологією, представивши в 2012 HyperQ для професійного сегменту. Порівняно з "Fermi" в архітектурі "Kepler" було реалізовано не просто робочу чергу. Технологія дозволяє створити до 32 віртуальних ядер GPU, які оброблятимуть дані. Реалізація у AMD і NVIDIA відрізняється, тому ми не стали б порівнювати числа безпосередньо.