Що нового у NVIDIA RTX 4000: архітектура чіпа і технології

У вересні цього року NVIDIA представила нову лінійку відеокарт GeForce RTX 4000 серії. Їхня архітектура отримала чимало функцій для підвищення продуктивності. Короткий розбір графічних нововведень — у нашому матеріалі.

Історія відеокарт NVIDIA RTX почалася у 2018 році з архітектури Turing. Її можна вважати точкою відліку для повсюдного впровадження трасування променів і «розумних» технологій масштабування. Саме карти RTX 2000-ї серії вперше отримали виділені блоки трасування променів і тензорні ядра для роботи ШІ.

У 2020 році з’явилися карти серії RTX 3000 на архітектурі Ampere. Вони стали еволюційним продовженням Turing і наростили «м’язи». Збільшилася кількість потокових процесорів, зросла швидкість роботи внутрішніх кешів. Значно прискорилася робота з обчисленнями FP32, з’явилася підтримка шини PCI-E 4.0. Продуктивність перероблених тензорних і RT-ядер серйозно зросла.

І ось, ще через два роки, NVIDIA представила нову графічну архітектуру. Назвали її на честь Ади Лавлейс, першого у світі програміста. Це — наступний щабель розвитку лінійки карт RTX.

Будова графічних процесорів

Як і минулі моделі, графічні чіпи Ada Lovelace складаються з обчислювальних графічних кластерів GPC . Кожен з таких кластерів містить у собі блоки растеризації ROP, контролер пам’яті та кілька кластерів текстурної обробки TPC . Усередині останніх знаходяться потокові мультипроцесори SM , що містять ядра CUDA та інші блоки для роботи з графікою.

Отже, трохи цифр — вони вражають. Флагманський чіп AD102 складається з 12 великих кластерів GPC (у попередника GA102 їх було сім). У їхньому складі знаходяться 72 кластери TPC, у кожному з яких по два потокових мультипроцесори SM (всього 144 штуки на чіп).

У графічного процесора — 192 блоки растеризації ROP, 576 текстурних блоків TMU і стільки ж тензорних ядер, 18432 CUDA-ядер, а також 144 спеціалізованих ядра для рейтрейсингу. Крім цього, є 288 блоків для обчислень FP64. Темп їхньої швидкості у нового чипа — 1/64 від FP32.

Підсистема пам’яті у AD102 залишилася незмінною з минулого покоління: ті самі 384 біти, та сама GDDR6X. Але при цьому набагато збільшився обсяг кешу другого рівня — 96 Мб проти 6 Мб у попередника. Загальний обсяг кеш-пам’яті першого рівня теж виріс — з 10.5 до 18 Мб. Робоча частота графічного чіпа зросла на третину, а загальна математична продуктивність збільшилася приблизно вдвічі.

Базові «цеглинки» графічних процесорів NVIDIA — потокові мультипроцесори SM. Один SM архітектури Ada Lovelace містить 128 CUDA-ядер. Кожному SM належить одне оновлене RT-ядро третього покоління і 128 Кб кешу першого рівня.

Усередині потоковий мультипроцесор розділений на чотири рівнозначні частини. У кожній з них є:

  • текстурний модуль;
  • чотири блоки завантаження даних;
  • блок SFU для складних інструкцій;
  • регістровий файл;
  • оновлене тензорне ядро четвертого покоління;
  • два блоки по 16 ядер CUDA (всього 32 ядра). Перший блок підтримує тільки обчислення формату FP32. Другий, на додачу до них, може працювати з INT32.

Графічні чіпи Ada Lovelace виробляються за техпроцесом TSMC 4N . Це не 4-нм, як можна було б подумати, а модифікований 5-нм техпроцес. Порівняно з першим поколінням 5-нм процесу зменшилися розміри транзисторів, збільшилася їхня щільність. У підсумку у флагманському чипі A102 вдалося розмістити 76.3 млрд транзисторів на площі всього в 608.5 мм2 . Для порівняння, чип-попередник GA102 на архітектурі Ampere мав всього 28.3 млрд транзисторів на трохи більшій площі.

Крім флагманського чіпа, NVIDIA представила ще два графічні процесори нового сімейства. AD103 складається з 45.9 млрд. транзисторів за площі в 378.6 мм2 . У ньому містяться:

  • 7 великих кластерів GPC;
  • 40 кластерів TPC;
  • 80 мультипроцесорів SM;
  • 128 блоків ROP;
  • 320 тензорних ядер і блоків TMU;
  • 80 RT-ядер;
  • 10240 ядер CUDA.

Підсистема пам’яті GDDR6X базується на 256-бітній шині, об’єми кешів першого і другого рівня — 10 і 64 МБ відповідно.

«Молодший» на даний момент чіп у лінійці Ada Lovelace, AD104 , містить у собі 35,8 млрд транзисторів і має площу всього в 294.5 мм2 . Усередині нього:

  • 5 великих кластерів GPC;
  • 30 кластерів TPC;
  • 60 мультипроцесорів SM;
  • 80 блоків ROP;
  • 240 тензорних ядер і стільки ж TMU;
  • 60 ядер RT;
  • 7680 ядер CUDA.

Підсистема пам’яті заснована на 192-бітній шині і GDDR6X. Кеш першого рівня — 7.5 Мб, другого — 48 Мб.

На кожному графічному процесорі анонсована поки тільки одна відеокарта. Трохи урізаний за виконавчими блоками AD102 використовується в RTX 4090 з об’ємом пам’яті 24 Гб. Повний чіп явно припасений для майбутньої RTX4090 Ti.

Аналогічна ситуація з AD103. RTX4080 з пам’яттю 16 Гб також не має повної конфігурації блоків цього чіпа. Тим самим залишається простір для більш потужної варіації відеокарти на AD103 в майбутньому.

AD104 is probably used in RTX4070 or RTX4070 Ti. Budget chips for lower price range cards will be introduced later.

DLSS 3 technology

The evolution of Deep Learning Super Sampling has taken another turn, resulting in DLSS 3 technology. It is not quite correct to call it just smart anti-aliasing or scaling technology, as it used to be.

The innovations are not focused on improved image scaling. The main tasks in this direction have already been accomplished by DLSS 2. Now NVIDIA has decided to use a new technique: to use the insertion of generated frames between existing ones. This is how DLSS 3 appeared, originally designed to work only on the new generation RTX 4000 cards.

Why only for them? The thing is that the technology uses a special Optical Flow Accelerator engine — an optical flow gas pedal. It is present in all NVIDIA RTX graphics cards, but in the past generations of cards its capabilities are limited. In the RTX 4000 series, the engine has been improved. Its speed has more than doubled compared to the previous generation. Support for 1×1 pixel tiles has also been added.

За словами NVIDIA, тільки нові карти мають достатню продуктивність прискорювача оптичного потоку для використання DLSS 3 у реальному часі. Чи з’явиться в майбутньому офіційна підтримка технології для старих карт — невідомо.

Принцип роботи DLSS 3 здається простим, але сама технологія досить складна. Згенерувати кадри для 3D-графіки реального часу — це не те саме, що подвоїти кадри у фільмі. Звичайне усереднення за двома кадрами не дасть потрібного ефекту і буде рясніти артефактами. Нова технологія працює на основі аналізу оптичного потоку, буфера глибин і векторів руху — тих самих, що використовуються в згладжуванні TAA і при роботі DLSS минулих поколінь.

Движок оптичного потоку бере два кадри, аналізує напрямок і швидкість руху точок між ними. Реалізація рушія в картах RTX 4000 працює з плитками розмірів 1х1 (по суті, з окремими точками). Тому захоплюються навіть найдрібніші деталі. Вектори руху допомагають визначити правильність розрахунків. На основі комбінації даних нейромережа DLSS 3 генерує точні проміжні кадри.

Такий метод не накопичує попередні кадри, обмежуючись вибіркою з двох. Тому основна проблема DLSS 2 — гостинг — тут не зустрічається. До плюсів DLSS 3 можна віднести знижену процесорозалежність: всі обчислення проводяться на відеокарті. Тож під час роботи технології можна домогтися високої частоти кадрів і без потужного ЦП.

NVIDIA запевняє: затримка зображення лише трохи вища, ніж при використанні DLSS 2. Однак вона все одно нижча, ніж без використання обох технологій. Впроваджувати нове рішення в проєкти, що підтримують DLSS 2, досить легко. Уже заявлено 35 ігор, які обзаведуться підтримкою DLSS 3 найближчим часом. У майбутньому кількість таких проектів буде тільки зростати.

Загалом, тільки за допомогою DLSS 3 можна збільшити частоту кадрів до двох разів — при цьому без втрат якості зображення. При одночасній роботі DLSS 2 кількість FPS порівняно з нативним рендером можна збільшити ще більше. Про це прямо говорить слайд підвищення продуктивності в іграх, представлений компанією NVIDIA.

Покращені RT-ядра

Найважчою роботою для сучасних графічних процесорів є рейтрейсинг — трасування променів. Саме він просаджує продуктивність навіть флагманських карт, часом до некомфортних значень. У новому поколінні NVIDIA приділила увагу розвитку RT-ядер і виконуваних ними функцій. Мета проста: підвищити продуктивність рейтрейсингу в іграх.

RT-ядрам третього покоління, що входять до складу карт RTX 4000, вкотре подвоїли швидкість роботи. За рахунок збільшеної частоти чипів, їхня загальна продуктивність порівняно з попереднім поколінням збільшилася в 2,6 раза. Додатково до цього ядра отримали два нових спеціалізованих блоки — Opacity Micromap Engine і Displaced Micro-Mesh Engine.

Движок мікрокарти непрозорості

Важлива новинка нового покоління відеокарт — Opacity Micromap Engine (движок мікрокарти непрозорості). Він прискорює трасування для напівпрозорих об’єктів: листя, трави, вогню, сіток парканів тощо. Ці об’єкти зазвичай складаються з малої кількості трикутників і використовують прозорий альфа-канал. Так легше реалізувати їхні складні форми.

У попередніх поколіннях RT-ядер під час трасування променів такі об’єкти за замовчуванням вважаються непрозорими. Коли промінь потрапляє в напівпрозорий об’єкт, відбувається виклик шейдера для визначення прозорості кожної ділянки. Якщо таких об’єктів у кадрі багато, шейдер викликається занадто часто. Це негативно впливає на продуктивність.

Для розв’язання проблеми і додали движок мікрокарти непрозорості. Горезвісна мікрокарта — це сітка з дрібних трикутників, що накладається на напівпрозорий об’єкт. Після накладення рушій визначає, який із трикутників є видимим, а який — прозорим, і передає ці дані графічному процесору.

Якщо трикутник видимий, то ведеться прорахунок променя, якщо ні — ГП ігнорує перетин і припиняє подальший пошук його шляху. І тільки в тому разі, якщо движок сумнівається в прозорості частини об’єкта, відбувається виклик шейдера. Такий підхід дає змогу домогтися меншого просідання продуктивності під час рейтрейсингу великої кількості напівпрозорих об’єктів.

Движок зміщеної мікросітки

Інша важлива новинка отримала назву Displaced Micro-Mesh Engine (рушій зміщеної мікромережі).

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

Зміщена мікросітка — новий графічний примітив, призначений для застосування в трасуванні променів реального часу. Вона представляється у вигляді базового трикутника і карти зміщення вершин усередині нього.

Движок зміщеної мікромережі розбиває об’єкти на велику кількість трикутників. Він представляє їх в ієрархії обсягів як моделі з регульованим рівнем деталізації. Ці рівні автоматично генеруються рушієм з вихідного (принцип роботи такого підходу схожий на тесселяцію). Згенерована мікромережа використовується для трасування променів. Для растеризації сцени незалежно від неї використовується потрібний рівень деталізації.

У підсумку об’єкти займають менше пам’яті, а продуктивність зростає. За заявами NVIDIA, обсяг генерованої геометрії зменшується в 6-20 разів, а час на створення BVH — у 7-15 разів. Єдиний мінус — технологія не запрацює автоматично. Для цього її повинні впровадити в іграх розробники.

Планувальник переупорядкування виконання шейдерів

У серії карт RTX 4000 також з’явилася нова система Shader Execution Reordering (планувальник переупорядкування виконання шейдерів).

Що більше геометрії та ефектів у кадрі, то більшим і ширшим виходить розкид вторинних променів, що відбиваються від різних об’єктів. Різні напрямки променів і різна відбивна здатність об’єктів у кадрі знижують ефективність роботи ГП. Падає і продуктивність.

Shader Execution Reordering змінює порядок затінення так, щоб його виконання було ефективнішим. Він не працює автоматично: постійне примусове переупорядкування в будь-якій грі не дасть приросту продуктивності. Його робота керується власним API. Використовувати ці можливості чи ні — вирішують тільки програмісти ігрових проєктів.

Найпомітніший приріст від планувальника можна буде помітити в іграх, де відбувається велика кількість розрахунків для променів і їхніх відображень. Наприклад, у режимі RT: Overdrive гри Cyberpunk 2077, де проводиться 635 обчислень на одну точку. У таких умовах можна зафіксувати практично півтораразовий приріст продуктивності.

Кодувальник NVENC восьмого покоління

Оновився й апаратний кодувальник NVENC. Тепер він належить до восьмого покоління. Додалася можливість кодування відео у форматі AV1. Попередня серія карт RTX могла тільки декодувати цей формат.

Це стане в пригоді під час стримів, запису відео ігрового процесу, роботи в програмах редагування відео. Новий кодек ефективніший за H264 і H265 — для однакової якості порівняно з попередниками потрібна менша ширина каналу даних або місця на локальному диску. Це особливо актуально для відео формату 1440p і 2160p.

У молодших карт RTX 4000 серії такий кодувальник буде один, а ось у старших їх два. Завдяки цьому у них з’явилася можливість кодувати відео 8K з 60 кадрами/c, або відразу чотири відео 4K з 60 кадрами/c одночасно.

Підсумки

Нова графічна архітектура Ada Lovelace не принесла великої кількості графічних поліпшень. Перш за все, вона дає саме збільшення обчислювальної потужності. Однак кожна з представлених у ній новинок дійсно важлива.

Технологія DLSS 3 є відмінним способом для підняття продуктивності без видимих втрат якості. Завдяки їй ігри у високій роздільній здатності стануть доступні не тільки для флагманських чіпів.

Прискорені RT-ядра дозволять менше просаджувати продуктивність під час рейтрейсингу. У цьому їм допоможуть і нові движки Opacity Micromap Engine і Displaced Micro-Mesh Engine. Ці технології призначені для економії ресурсів графічного процесора і більш ефективного трасування променів.

Планувальник Shader Execution Reordering — хороший заділ на майбутнє. Ігри, які повністю відмовляться від растеризації, отримають від нього найбільший приріст продуктивності. Ну а новий кодувальник NVENC якраз стане в пригоді для стрімів у високій роздільній здатності, яка з новим поколінням карт стане доступнішою.