Архитектура AMD RDNA 2
AMD использовала архитектуру Graphics CoreNext (GCN) почти 8 лет – с серии Radeon HD 7000 и вплоть до Radeon RX 5000. Переход с GCN на архитектуру RDNA скорее носит революционный, нежели эволюционный характер, поскольку инженеры AMD сильно перелопатили топологию графического процессора. Событие знаковое, но в этом материале уместнее рассказать о новшествах RDNA второго поколения (RDNA 2), чем про разницу GCN и RDNA первой итерации.
Чтобы создать высокопроизводительный графический чип в AMD решили оттолкнуться, внезапно, от соображений энергоэффективности – показателя производительности на ватт. Изначальная цель состояла в увеличении эффективности на 50%, но AMD удалось достичь даже большего. Так для Radeon RX 6800 XT это 54%, для старшей Radeon RX 6900 XT – 65%. Подобные цифры встречались и раньше с новыми поколениями процессоров и видеокарт, но только с переездом на более тонкие техпроцессы. А в случае RDNA 2 и чипов Navi 21 техпроцесс не претерпевал изменений.
Соотношение производительность/ватт возросло в полтора раза по ряду причин. Первая – высокая частота работы, обеспечившая +16%. Здесь стоит сделать отступление и отметить, что Radeon RX 6000 действительно работают на небывалых для видеокарт частотах: 2250 МГц базовых, «буст» до 2,4 ГГц и иногда до 2,5 ГГц. Достичь таких показателей помогли наработки от процессоров Ryzen.
Второе – хитрый механизм оптимизации производительности за счёт снижения частот (Clock Gating, Clock Tree Splitting, Clock Tree Gating) функциональных блоков, которые в данные момент не задействованы. Это дало улучшение на +17%.
Третье – кэш-память Infinity Cache. GPU Navi 21 имеют сравнительно небольшую (как для AMD, и как для адаптеров флагманского класса) 256-битную шину данных и, соответственно, общую пропускную способность памяти – 512 ГБ/с. Для справки, у RTX 3080 это 760 ГБ/с, а у предшествующей Radeon RX 5700 XT немногим меньше – 448 ГБ/с. На узкой шине памяти AMD сэкономила транзисторный бюджет, мощность и тепловыделение (контроллеры памяти горячие и «жрущие»), а с пропускной способностью решила проблему эдаким «читом» – Infinity Cache. Infinity Cache представляет собой буфер ёмкостью 128 МБ между кэшем L2 и основным массивом видеопамяти. По сути, это кэш L3, реализованный в графическом процессоре.
Об удачности и надобности такого решения можно поспорить. Кэш быстрый, значит горячий, судя по слайдам AMD транзисторов «съедает» не меньше, чем привычные контроллеры памяти. Казалось бы, к чему эти танцы с бубном, ведь можно было сделать традиционным походом, сделать 512-битную шину и получить терабайт в секунду пропускной способности? Но по данным AMD смысл есть: если сравнить абстрактные видеокарты с 384-битной шиной и 256-битной + Infinity Cache, то в последнем случае потребление меньше на 10%, а производительность больше вдвое.
Что правда, на других слайдах уже и трёхкратное преимущество рисуют, и вообще 1664 ГБ/с пропускной способности. Если честно, история Infinity Cache выглядит не как истинный Next-Gen, а как некий вынужденный костыль.
С RDNA 2 AMD реализовала целый ряд новых графических технологий, в числе которых DirectX 12 Ultimate, Mesh Shading, Variable Rate Shading, Sampler Feedback и конечно же RayTracing. Если точнее, реализовали только DX12 Ultimate, а остальное идёт в качестве прилагательного к этому API, ну а на RayTracing стоит остановиться подробнее.
У NVIDIA «лучи» реализованы через интерфейс DXR от Microsoft и выделенные RT-блоки. Схожим образом поступили и AMD, но местные RT-блоки здесь называются RA (Ray Accelerators). У AMD на каждый кластер CU приходится по 1 RA-блоку – 80 RA в случае Radeon RX 6900 XT. Специальные блоки, как заявляется, в 10 раз эффективнее обрабатывают «лучи», чем обычные конвейеры потоковых процессоров. Ray Accelerators обеспечивают расчёт четырёх пересечений за такт, и в том числе не только стандартные эффекты вроде отражений, но и глобальное освещение (Global Illumination) и тени (Ray-traced Soft Shadows).
Важно отметить, что если в играх RayTracing от AMD работает (поскольку реализован через DirectX 12), то в профессиональных приложения нет. Плагин RadeonProRender 3.0 ещё находится в стадии бета-теста и на данный момент работает далеко не везде. В том же Blender с «лучами» рендер не сделать.
Во-вторых, если у NVIDIA есть мощный компенсатор кадровой частоты в виде сглаживания DLSS, то у AMD пока ничего подобного нет. Хуже того, когда Super Resolution (местный аналог DLSS) появится, далеко не факт, что всё будет гладко. Вряд ли разработчики игр захотят тратить силы и время на реализацию обоих технологий, и если DLSS версии 2.0 уже хорош, то первая версия была просто ужасна. За два года NVIDIA проделала немало работы, которая AMD лишь предстоит.
Итого как факт отметим на берегу: RayTracing от AMD хуже, чем от NVIDIA по ряду причин, и дело не только в вычислительной мощности. За два года «лучи» NVIDIA сильно ушли вперёд. Чтоб в будущем повязать чемпионский пояс AMD нужно выпрыгнуть из штанов.