Огляд AMD Radeon RX5700 XT: архітектура RDNA — провал або геніальне покращення?

06.09.19126

Нещодавно AMD похитнула лідерство Intel на ринку флагманських процесорів. Тепер настала черга позмагатися за сегмент топових відеокарт за допомогою лінійки Radeon RX 5000, представленої публіці влітку. Новинки отримали довгоочікуваний GPU NAVI і свіжу архітектуру RDNA. Чи врятує це ситуацію і як йде справа з трасуванням променів — розбираємося в огляді.

Що було? Архітектури TeraScale і GCN

Щоб зрозуміти нововведення архітектури RDNA, необхідно розібратися, що було до неї. Історія сучасних Radeon почалася з переходу до уніфікованим шейдерам. З їх допомогою AMD хотіла забезпечити максимальну продуктивність GPU — а там вже нехай ігрові студії вирішують, на що її пустити. Передбачалося, що з переїздом на DX10 і OpenGL 3.0 на відеокарту ляже безліч складних завдань, тому вона буде завантажена набагато сильніше, ніж раніше. Замість поділу на вершинні і фрагментные шейдери застосували набір універсальних блоків: самі розробники можуть писати код ігрового движка, вибираючи, чим і в який момент займеться GPU. Використання однієї довгої інструкції (VLIW) з тривалою обробкою відмінно вписалася в концепцію «одна складна операція — багато даних», та ще й на высокопараллельном залозі. Розподіл навантаження і оптимізацію таких складних завдань поклали на компілятор і драйвер.

Від D3D9 до D3D10 і уніфікованим шейдерам

Архітектура TeraScale розроблялася в нульові з прицілом на активне впровадження технологій, які тільки починали життєвий цикл. Високий дозвіл текстур, бамп-маппінг і карти нормалей, HDR і глобальне освітлення вимагали пристойну пропускну здатність як пам’яті, так і GPU. Спецефекти більше не доповнювали кадр в окремих місцях, а багаторазово застосовувалися буквально в кожному пікселі.

1 / 6

Порівняйте Half-Life 2 (2004) і Titanfall (2014) — наскільки змінилася картинка. А адже в основі один і той же движок — Source.

Залізо і справді вийшло видатним, але ось оптимізація драйверів залишала бажати кращого. У негативному ключі згадують якість ЗА «червоних» до цих пір — хто в жартах, а хто всерйоз, не володіючи актуальною інформацією. З виходом DirectX11 і появою прямого доступу до GPU стало ясно, що подальша доробка TeraScale недоцільна. Якщо вже автоматика не могла вирішити навантаження по складній архітектурі графічного чіпа, то що говорити про ручне управління? На заміну «тераскейлу» прийшов чіп Graphics Core Next (GCN), який ліг в основу Radeon 7970 і консолей восьмого покоління (Xbox One, PlayStation 4).

Внутрішнє пристрій відеоядра сильно ускладнилося.

Для забезпечення схожого рівня продуктивності GCN потрібно більше керуючої логіки, зате спростився сам процес постановки завдань для шейдерних процесорів. Тепер розробники могли не тільки взаємодіяти з моделями і текстурами, але і виробляти загальні обчислення. Інженери AMD планували, що центральний процесор займеться виконанням скриптів, обчисленням AI і видачею команд на малювання. А фотореалістична графіка, складна фізика і допоміжні обчислення будуть проводитися на GPU.

D3D12 і пряме управління графічним конвеєром

Нові API дозволили при схожому рівні продуктивності GPU реалізовувати приголомшливі спецефекти за рахунок ефективного завантаження заліза складною математикою. Краси, на які раніше комп’ютера не вистачало ресурсів, стало буденністю. Наприклад, освітлення з чесним заломленням променів, активне застосування тесселяції, різні ефекти, що вимагають постійного звернення до карти глибин (боке, об’ємний туман, довгі тіні), пооб’єктне розмиття моделей і навіть їх окремих частин.

 

Сильні і слабкі сторони попередника

Управління відеокартою безпосередньо, як в консолях, — це зручно, особливо якщо йдеться про величезний обсяг обчислень для кожного кадру. Писати код для паралельного виконання надзвичайно складно (хоча б з тієї причини, що людський мозок виконує усвідомлені завдання послідовно, швидко переключаючись між контекстами). Тому архітектура GCN проектувалася з прицілом на передбачуваність поведінки і тимчасових витрат на операції різного роду. 16-бітні обчислювальні блоки були згруповані по 64 штуки в один юніт і отримали загальний 64-бітний планувальник інструкцій. Так програміст міг раз видавати одну команду на чотири такту для роботи на 64 ядрах.

Проблема прийшла звідки не чекали: революцію скасували приставки.

З-за порівняно слабкою начинки консолей прогнози щодо перспектив 3D-графіки не збіглися з реальністю. Замість повального захоплення всякими Ultra HD студії кинулися розвивати «візуальні обманки»: використовували низькі дозволу відтворення і складні спецефекти. В хід йшли навіть дані з попереднього кадру — навіщо витрачати ресурси на підрахунки того, що майже не змінилося? Архітектура, ефективна при однаковому навантаженні на велику кількість однакових ядер, виявилася не кращим рішенням в ситуаціях, коли потрібно виконувати різні обчислення на малих обсягах даних. В консолях це було непомітно через скромних можливостей відеоядра, під зав’язку завантажений завданнями на малювання. А з виходом PS4 Pro і Xbox One X збереглася загальна тенденція до цільових 30 fps, але в більш високому дозволі. Виключення, звичайно, траплялися, але не такі часті.

Нововведення в RDNA

Перше, що потрібно відзначити, — RDNA в поточному вигляді не можна назвати повністю новою архітектурою. Так, чимало змін, але це не тотальна зміна дизайну, як було, наприклад, у разі переходу від DX9 до DX10 або заміни VLIW TeraScale на GCN. Загальна логіка і пристрій GPU на базі RDNA взяті у попереднього покоління. Просто інженери вирішили технічні проблеми, які обмежували потенціал потужного заліза, — і справа не в семи нанометрах або високих робочих частотах, а в ефективній завантаженні відеокарти.

Кінець життя поточних консолей. Актуальні технології в іграх

Проблему неможливості чесної відтворення суперскладних кадрів у високому дозволі перестали вирішувати в лоб. Науковий підхід до розвитку алгоритмів масштабування породив багато нових технологій, що обманюють користувача. Динамічна зміна дозволу відтворення (як загальне, обумовлене складністю кадру, так і приватне, залежне від важливості об’єкта в сцені) дозволило не виконувати зайвих розрахунків там, де користувач не помітить різниці. Навчання нейромереж призвело до створення алгоритмів масштабування і згладжування в умовах нестачі даних — все для ефективної економії ресурсів: картинка погіршується на 5-10%, зате менше обчислень вже на 30-50%. Вершиною розвитку DX12 стала апаратно-експрес трасування реалістичного освітлення і віддзеркалень.

Зміни в архітектурі: причини і наслідки

Одна з основних проблем GCN — недостатня гнучкість. Відеокарта завантажувалася на 100%, коли обсчитывала кадр у високому дозволі, однак починала здавати позиції, якщо картинка була порівняно простий. Адже виконувати безліч однакових операцій над різними даними не потрібно. Аналогічним чином йшли справи з короткими інструкціями — 16-бітні операції робилися з тією ж швидкістю, що і 64-бітні (за 4 такти). Тобто на графіках продуктивності GPU був зайнятий, а в реальності — чекав завершення «порожніх» тактів для виконання наступного завдання.

Рішення знайшлося просте.

Блоку з 64 ядер зберегли загальну логіку, але всередині поділили навпіл, поставивши кожній половинці власний планувальник. Так GPU може гнучкіше реагувати на різні умови роботи. Змінився і дизайн ядер: замість запуску довжиною 64-бітної інструкції за декілька тактів тепер використовуються короткі 32-бітні, причому вони виконуються за один такт. Теоретично це прискорює операції від двох до чотирьох разів, в залежності від їх складності. На практиці приріст менше — крім самих обчислень, є операції з пам’яттю (читання і запис), має затримки введення-виведення. Та й шейдери обраховуються не одночасно, а послідовно нашаровуються на результати попередніх обчислень.

Графічний конвеєр спростили, а GPU став гнучкіше реагувати на різні ситуації.

Поліпшили і 7-нм техпроцес, вперше застосований в Radeon VII (архітектура GCN). На жаль, тут конкретних подробиць не розкривають, але енергоефективність Navi щодо Polaris Vega і підросла. Підсистема пам’яті відносно проста — замість дорогої HBM2, якій оснащували торішні «Веги», застосували банальну GDDR6. Порівняно з минулим поколінням пропускна здатність практично не постраждала. І навіть зросла, якщо порівняти з бюджетною лінійкою Polaris, оснащеної GDDR5.

Перевіряємо на практиці

Само собою, об’ємна теорія тут не для краси. Ефективність нововведень ми протестували на двох моделях сімейства Navi — AMD Radeon RX 5700 (36 CU) і RX 5700 XT (40 CU). Для оцінки результату порівняємо fps з прямими конкурентами «зелених». Для повноти картини ми взяли ігри, що мають вбудовані бенчмарки, і усереднили результати трьох прогонів тестів — так результат наочніше.

Конфігурація демостенда

Процесор
AMD Ryzen 9 3900X (12 ядер, 24 потоку @ 3,8-4,6 ГГц)
Материнська плата
ASUS X570 ROG Crosshair HERO VIII
Оперативна пам’ять
4×8 ГБ GeIL EVO X Rog Certified 3600 МГц CL17
Накопичувач
PCIe 4.0 SSD Corsair MP600 2 ТБ
Блок живлення
beQuiet Dark Power Pro 850 Вт
Корпус
Aerocool Quartz

Свіжі «Радеоны» показали себе чудово. Ефективність нововведень наочно відображає ситуація з RX Vega 64 — на папері вона в півтора рази потужніший молодшої RX 5700, а на практиці показує порівнянні цифри. Обидві новинки вписалися між безпосередніми конкурентами і їх більш дорогими альтернативами — серією RTX Super. Прямого суперництва не вийшло: при порівняльних характеристиках моделі Radeon або дешевше, або могутніше RTX 2060 Super. Правда, у NVIDIA все ще залишається трасування променів…

Але і на цей випадок у AMD є козир в рукаві.

З офіційних заяв і численних витоків відомо, що наступне покоління консолі Xbox та PlayStation знову отримає начинку AMD — центральний процесор на базі Ryzen 3000 і графічний прискорювач з архітектурою NAVI і підтримкою трасування освітлення. У RX і 5700 5700 XT відсутні спеціалізовані модулі для апаратного прискорення подібних розрахунків — а без них продуктивність настільки низька, що про повноцінне застосування в іграх можна забути. Разом з тим у мережу потрапив патент, що розповідає про плани AMD по впровадженню RT.

Що нас чекає?

«Червоні», на відміну від NVIDIA, відмовилися від використання виділених RT-ядер. Адже вони ускладнюють архітектуру, займають місце на кристалі, здорожують виробництво і не виконують жодних інших завдань, крім злощасного рейтрейсінга. Необхідну логіку запровадять безпосередньо в кожен «обчислювальний юніт» — з прямим доступом до даними, які вже обраховуються шейдерними процесорами. Подібний підхід дозволить заощадити дорогоцінні такти на взаємодію з пам’яттю — операції проводяться відразу, замість копіювання даних у виділений кеш, застосування математичної магії і відправки результатів назад. Використання невеликої модифікації універсальних ядер ще і спростить топологію кристала GPU. А значить, зменшити відсоток браку і знизить кінцеву вартість.

Підсумки

Попередня архітектура «Радеонов» володіла чудовим потенціалом, але висока продуктивність досягалася лише у ряді випадків (в основному, коли GPU був навантажений понад норму). RDNA дозволила сімейства RX 5000 реалізувати закладений потенціал у будь-яких сценаріїв. Для користувачів це означає наступне — тепер продукція «червоних» цікава не тільки під час розпродажів 8-гиговых RX 570 за 10 тисяч рублів. З виходом Ryzen у AMD вийшло розворушити Intel і припинити стагнацію сегмента центральних процесорів, тепер пора змінити розстановку сил на ринку відеокарт. І серія RX 5000 — відмінний дебют.

RX 5700, як люблять говорити у нас в коментарях, — «топ за свої гроші». Це чудова альтернатива RTX 2060, рейтрейсинг якої швидше схожий на пустощі, ніж на реально корисну фішку. За вирахуванням променів Radeon уделивает суперницю у всьому: більше пам’яті, вище fps, особливо на високих дозволах. Та й відчуття, що купівлею «червоної» карти підтримуєш конкуренцію і розвиваєш галузь, дорогого коштує.

RX 5700 XT мітить у альтернативи RTX 2070, і тут переможець не настільки однозначна. З трасуванням ця модель NVIDIA якось справляється, так що вибір тут більше ідеологічний. У будь-якому випадку XT показала, що «Радеоны» здатні конкурувати з топовими рішеннями «зелених» — а там і до битви за звання самого швидкого GPU 2020 недалеко.