Страница 2: Архитектура RDNA 2

Одна из целей RDNA 2 заключалась в увеличении производительности в расчете на ватт, что несколько раз упоминалось. И AMD даже превысила поставленную цель. Видеокарта Radeon RX 6800 XT показала увеличение +54%, а Radeon RX 6900 XT - 65%. Подобные улучшения и раньше встречались среди CPU и GPU, но чаще всего они сопровождались уменьшением техпроцесса, чего нет в случае Big Navi или RDNA 2.

Одна из мер - разработка архитектуры под высокие тактовые частоты. Видеокарты Radeon RX 6000 штатно уже работают на частотах до 2.250 МГц. Но, в зависимости от охлаждения и нагрузки, возможны и частоты до 2,4 или 2,5 ГГц. Для современных GPU подобные уровни можно назвать новыми. Здесь AMD использовала свою компетенцию в сегменте процессоров, где были предприняты схожие решения. AMD объединила подходы к дизайну CPU и GPU, что позволило командам разработчиков взять лучшее из двух миров.

AMD провела исследования и нашла оптимальную рабочую зону для Big Navi. При прежнем энергопотреблении CU можно увеличить тактовую частоту на 30%, либо при прежней тактовой частоте снизить энергопотребление на 30%.

Соотношение производительности на ватт получилось увеличить более чем на 50%, здесь свой вклад внесли несколько факторов. Более высокая тактовая частота добавила +16%. Оптимизации производительности, затрагивающие энергопотребление (Clock Gating, Clock Tree Splitting и Clock Tree Gating - то есть снижение частот неиспользуемых областей GPU) отдельных функциональных блоков дали еще 17%. А Infinity Cache внес оставшиеся 21%, снизив задержки и ускорив доступ.

Увеличение эффективности стало возможным и благодаря новой иерархии кэша, здесь AMD как раз представила Infinity Cache. Данный кэш объемом 128 Мбайт является буфером между кэшем L2 и видеопамятью.

Big Navi GPU содержат 26,8 млрд. транзисторов и производятся по 7-нм техпроцессу. AMD с партнером TSMC тесно работали над оптимизацией техпроцесса, однако номинально 7-нм техпроцесс первого поколения Navi сохранился. AMD указывает площадь чипа 519,8 мм². Для сравнения: у GA102 GPU от NVIDIA используются 28 млрд. транзисторов, у меньшего GA104 GPU - 17,4 млрд. с площадями 628,4 мм² и 392,5 мм², соответственно.

Что касается ввода/вывода, видеокарты поддерживают PCI Express 4.0 и 256-битный интерфейс подключения памяти. 256-битный интерфейс вроде бы кажется узким, но Infinity Cache добавляет "отсутствующую" пропускную способность, так что здесь мы получаем преимущества даже без расширения физического интерфейса памяти.

Конвейер инструкций архитектуры RDNA 2 начинается с командных процессоров, а именно четырех асинхронных вычислительных движков ACE, которые распределяют вычислительные задачи по фронтальной части конвейера. В конечном итоге задачи будут распределены по 80 блокам Compute Units, каждый из которых содержит 64 потоковых процессора. Кроме того, имеются 320 текстурных блоков (четыре на CU) и 80 ускорителей лучей, по одному на CU. Геометрический процессор может обрабатывать восемь pre-cull и четыре post-cull примитива за такт.

Улучшенная блоки задней части конвейера рендеринга (RB+) обеспечивают пиксельный вывод и корректный рендеринг. Производительность RB+ составляет восемь 32-битных пикселей за такт, то есть в два раза больше в расчете на такт. Технология Variable Rate Shading (VRS) повышает эффективность работы RB+.

RDNA 2 Compute Units

Блоки CU за такт могут выполнять определенное число операций. Они содержат выделенные функциональные блоки, которые работают с числами нужной точности. В фокусе GPU FP16 и FP32, а также INT32, поскольку данные расчеты чаще всего встречаются в 3D-рендеринге. За такт CU может выполнять 256 операций FP16 и INT16. В случае FP32 и INT32 число составляет 128. AMD не усиливает производительность расчетов с высокой точностью, например, FP64, здесь возможно выполнение восьми операций на CU за такт. Кроме того, CU могут выполнять операции со смешанной точностью.

Ускорители лучей (Ray Accelerators) могут рассчитывать четыре пересечения (Box/Triangle) за такт. Здесь AMD ускорила вычисления алгоритма Bounding Volume Hierarchy (BVH) с помощью выделенных блоков. Подобные вычисления на блоках ускорителей лучей заменяют почти 1.500 арифметических операций ISA, которые пришлось бы выполнять на Compute Units. В случае BVH сцена разделяется на блоки все меньшего и меньшего размера, которые привязаны к примитивам. Луч просчитывается только в блоках, которые он пересекает на пути к примитиву. BVH использует дерево, которое показывает, для каких блоков и примитивов следует выполнять расчет трассировки лучей.

Mesh Shading

Одна из новых функций архитектуры RDNA 2 - это Mesh Shading, которая поддерживается в DirectX 12 Ultimate. NVIDIA тоже добавила поддержку этой функции, начиная с видеокарт Turing. Многие сцены ограничиваются сложной геометрией, расчет которой упирается в производительность CPU.

С помощью "рабочих групп примитивов" детали геометрии можно просчитывать более эффективно, адаптируясь к доступной вычислительной производительности. Кроме того, уровень детализации можно автоматически определять в зависимости от расстояния до объекта. Технология Sampler Feedback позволяет загружать и использовать только ту текстурную информацию, которая будет видна и требуется для расчетов. Но для этого требуется провести хотя бы частичный рендеринг, чтобы семплер знал, какие данные нужны, а какие нет. Технология Sampler Feedback увеличивает эффективность рендеринга, поскольку невидимые детали не рассчитываются, и не занимают ресурсов.

Variable Rate Shading

Variable Rate Shading можно назвать "сжатием" информации при затенении в задней части конвейера. В случае Variable Rate Shading кадр разделяется на несколько блоков. В зависимости от содержимого каждого блока и скорости изменений к следующему кадру, размер блоков может меняться. Существует несколько методов выполнения Variable Rate Shading.

Content Adaptive Shading учитывает содержимое каждого кадра. Motion Adaptive Shading учитывает движение и изменения, которые происходят между кадрами. В случае Foveated Rendering в расчет принимается зона видимости в очках виртуальной реальности, поскольку только области в фокусе необходимо рассчитывать с полным уровнем. Lens Optimized Rendering адаптирует рендеринг к условиям объективов очков VR.

Ray Accelerators

AMD добавила ускорители лучей (Ray Accelerators) для ускорения эффектов трассировки. Как мы упоминали выше, они обеспечивают расчет четырех пересечений за такт, при этом работают примерно в десять раз более эффективно, чем если бы подобные вычисления выполнялись на потоковых процессорах.

Через драйвер AMD работает с интерфейсом DXR от Microsoft, точно так же NVIDIA обеспечивает поддержку технологии RTX и ядер RT. AMD также представила гибридный конвейер рендеринга, сочетающий классическую растеризацию и одновременную трассировку лучей. Помимо классических эффектов, подобных отражениям, через трассировку лучей можно рассчитывать глобальное освещение (Global Illumination) и тени (Ray-traced Soft Shadows).

В отличие от ядер NVIDIA RT, ускорители Ray Accelerators могут рассчитывать только точки пересечения с треугольником с аппаратным ускорением. Ядра NVIDIA RT Cores могут рассчитывать и Traversals BVH, то есть обход дерева. Данную операцию AMD приходится выполнять на потоковых процессорах.