Почему у AMD хуже производительность в трассировке лучей?

Одна из вещей, о которой долго говорят, это плохая работа AMD видеокарты в трассировке лучей , особенно по сравнению с NVIDIAс. Однако многие вскидывают руки, когда мы говорим, что реализация необходимого оборудования Radeon Technology Group настолько плоха, что это кажется буквально бойкотом принятия этой технологии. Что позволяет помнить, что он идеально подходит для решения определенных визуальных задач в компьютерной графике и не является изобретением производителя GeForce.

Для нас основная функция видеокарты заключается в том, что она позволяет нам играть в наши игры с легкостью и производительностью, в то же время, если она вам понадобится для более профессиональных задач, таких как редактирование видео или создание 3D моделей более чем достаточно. с его работой. Когда мы говорим, что у AMD низкая производительность в трассировке лучей, мы не ставим NVIDIA выше крыши, а скорее, как пользователи, мы также опечалены тем, что то, что в Radeon могло бы быть намного лучше, не так.

Почему у AMD хуже производительность в трассировке лучей

Алгоритм трассировки лучей

Чтобы понять низкую производительность карт AMD в трассировке лучей, мы должны понимать, что на самом деле это рекурсивный алгоритм для создания полной сцены, который в его простейшей версии можно резюмировать следующим образом:

  • Для каждого пикселя в сцене
    • Рассчитать луч визуализации
      • Если молния ударила в предмет, оцените цвет предмета.
      • Если нет, то этот пиксель имеет цвет фона.

Луч — это не что иное, как вектор, идущий от камеры, которая «записывает» сцену и пересекает матрицу точек или сетку, где каждая из них — это пиксель. Каждый раз на сцене будет выполняться эффект проверки. Ну, если у нас сцена в Full HD, то это значит, что нужно будет провести 2 миллиона проверок, если игра в 60 FPS, то это 120 миллионов проверок в секунду.

Математически наиболее распространенная формула для проверки — это не простая операция, а сложное уравнение с векторами, которое требует некоторой мощности. Настолько, что простой факт отсутствия параллельного подразделения, отвечающего за выполнение этой задачи, может снизить производительность в процентах до однозначных цифр.

Реализована функция трассировки лучей

Аппаратные узлы пересечения

Вот почему у NVIDIA есть ядра RT, а у AMD есть блоки Ray Accelerator, они одинаковы, поскольку относятся к одному типу блоков и используются для одной и той же задачи. Однако в последнем поколении у RX 6000 было ограничение, которое RTG, к счастью, решил в RDNA 3 и, следовательно, в линейке RX 7000.

Tarjetas Gráficas RX 7000 Трассировка лучей

В чем тогда проблема?

  • Хорошая вещь, а значит и положительная, заключается в том, что теперь то, чего не хватало в RDNA 2, было включено в RDNA 3.
  • Плохая вещь и то, что делает нас плохой производительностью Ray Tracing на AMD, это количество взаимодействий луч-треугольник что он может вычислить. Скачок всего в 50% — это очень плохо, когда ваш соперник удваивает производительность от поколения к поколению.

Не будем забывать, что первые 3D-карты, появившиеся на рынке, отвечали за все большее ускорение операции растеризации треугольников, которая является наиболее распространенной в этом отношении. То же самое касается этой части трассировки лучей. Так что тот факт, что AMD сделала такой небольшой скачок в этом плане, разочаровывает.

Как это влияет на общую производительность?

Хотя пересечение лучей является частью декораций, это общий элемент во всех сценах, который является существенным. Давайте не будем забывать, что это поэтапный процесс, когда тот факт, что один идет медленнее, чем обычно, влияет на производительность последующих.

DXR без встроенной трассировки лучей

Следовательно, если нам удается ускорить этап, мы получаем меньшее время для генерации того же кадра, то есть требуется меньше миллисекунд, а это больше кадров в секунду. Что должно быть ясно, так это то, что процесс пересечения является рекурсивным и непрерывным в трассировке лучей, и поэтому необходимо, чтобы эта часть имела хорошую производительность.

Другая проблема: производительность с плавающей запятой

Графические процессоры обычно работают с блоками данных в унисон, применяя к ним одну и ту же инструкцию. Вот почему наиболее существенным типом модуля является то, что мы называем модулями SIMD, которые, как следует из их названия, применяют одну и ту же инструкцию к нескольким различным данным одновременно. Что ж, NVIDIA в RTX 30 внесла довольно любопытное улучшение, позволяющее ей вычислять в два раза больше 32-битных операций с плавающей запятой за такт и ядро.

Хитрость заключалась в том, чтобы добавить второй блок SIMD из 16 элементов на каждое из подъядер, что в сумме дало 64 дополнительных операции на блок внутри ядра. GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР. Однако они не увеличивали количество записей или обращений, поскольку коммутировались с единицей целых чисел. Что это означает? И RTX 30, и RTX 40 достигают двойной производительности с плавающей запятой при определенных условиях, но не всегда.

AMD, с другой стороны, искала другое решение, которое они назвали Dual Issue, но в своих технических спецификациях они говорят, что количество блоков с плавающей запятой не увеличилось, но что при определенных условиях они могут упаковать 2 инструкции одновременно. . Однако количество блоков на ядро ​​или Compute Unit по-прежнему составляет максимум 64, а не 128, как в случае с NVIDIA.

Двойной выпуск RDNA 3

Что AMD подразумевает под «двойной проблемой» в RDNA 3?

Однако, если вы подсчитаете количество операций с плавающей запятой, предоставленных AMD, которые обычно даются в виде теоретического максимума, выполняя в 100% случаев операцию FMA или сложение с умножением с плавающей запятой, что нереально, поскольку не учитывает учетных обращений к памяти и тот факт, что программы не всегда используют указанную инструкцию, но учитывают, что она наиболее часто используется при создании графики. Дело в том, что инструкция состоит из 2 операций.

Итак, что AMD сделала, так это то, что некоторые инструкции могут быть упакованы по две в вычислительных блоках, что позволяет достичь удвоенной мощности с плавающей запятой с помощью RDNA 2 при определенных условиях. Это тот же случай, что и с графическими процессорами NVIDIA. Дополнительная мощность с плавающей запятой не удваивается вообще, а только при определенных условиях. Так что это общая проблема. В любом случае, измерение в TFLOPS до сих пор остается маркетинговым трюком.

Так почему же это важно для производительности трассировки лучей AMD? Ну, за счет того, что он помогает нам измерять вычислительную мощность блоков, которые используются на остальных этапах трассировки лучей, не являющихся пересечением лучей. Во всяком случае, сама AMD утверждает, что улучшение между поколениями составляет 18% при той же тактовой частоте.

AMD RDNA 3 более ранняя версия

Производительность графического процессора AMD в трассировке лучей: цифры

Если мы сравним производительность разных блоков пересечения как на разных поколениях видеокарт от NVIDIA, так и на AMD, то увидим, в чем проблема.

Графические процессоры Пересечений / с (в миллионах) цвета МГц Пересечения (ядро и МГц)
RTX 2080Ti 105600 68 1545 one
RTX 3090Ti 312480 84 1860 2
RTX 4090 1290240 144 2520 3.6
RX 6950 XT 184800 80 2310 one
RX7900XTX 360000 96 2500 1.5

На первый взгляд, сырая мощность в этом аспекте выше, чем у RTX 3090 Ti, да, мы смотрим на вторую колонку. Однако важно именно последнее, так как оно говорит нам, сколько перехватов вычисляется на ядро ​​и такт на GPU. И разочарование происходит от того, что хотя AMD не просят дать результат 3.6 для RTX 40, ее просят хотя бы достичь 2 для RTX 30. Это основная причина плохой производительности видеокарт AMD. в трассировке лучей. И причина, по которой мы думаем, что они могли бы сделать намного лучше.

Это больше, и это уже конец, потому что Ray Accelerator Unit сам по себе является черным ящиком, который можно заменить, не затрагивая остальную архитектуру. AMD может взять и выпустить линейку RX 7×50 в следующем году, которая сохранит все достоинства текущей RDNA 3, но с улучшенным RAU и увидит увеличение игровой производительности на двузначные проценты с точки зрения частоты кадров.

Какова производительность игр AMD с трассировкой лучей в RDNA 3?

Теперь, чтобы закончить, у нас есть вишенка на торте и поговорим о том, как это работает в играх. Поскольку AMD публично заявила об улучшении на 50%, следует ожидать такого же большого скачка. Однако позже мы обнаружили, что они относятся к производительности на ватт, к определенному их количеству и к конкретной игре, которая не была указана. Поэтому важно знать, какое улучшение было по сравнению с предыдущим поколением в этом аспекте, особенно из-за того, что они начинают с довольно плохой производительности в трассировке лучей, которая была у RX 6000.