Ядра Nvidia RT и AMD Ray Accelerators - объяснение

С первым поколением видеокарт RTX в 2018 году Nvidia представила миру совершенно новую функцию, которая должна была изменить игровой ландшафт в том виде, в каком мы его знаем. Видеокарты серии RTX 2000 первого поколения были основаны на новой архитектуре Тьюринга и обеспечивали поддержку трассировки лучей в реальном времени в играх. Трассировка лучей уже существовала в профессиональной 3D-анимации и синтетических областях, но Nvidia предоставила поддержку рендеринга игр в реальном времени с использованием технологии трассировки лучей вместо традиционной растеризации, которая должна была изменить правила игры. Растеризация - это традиционный метод рендеринга игр, в то время как трассировка лучей использует сложные вычисления для точного изображения того, как свет будет взаимодействовать и вести себя в игровой среде, как в реальной жизни. Вы можете узнать больше о трассировке лучей и растеризации в этом материале .



Отражения с трассировкой лучей могут быть самым приятным для глаз приложением трассировки лучей в играх - Изображение: Nvidia

Еще в 2018 году у AMD не было ответа по поводу видеокарт Nvidia серии RTX и их функции трассировки лучей. Red Team просто не была готова к инновационному внедрению Nvidia, и это действительно поставило их лучшие предложения в существенное невыгодное положение по сравнению с Team Green. AMD RX 5700 XT была фантастической видеокартой по цене 399 долларов, которая конкурировала с производительностью RTX 2070 Super за 499 долларов. Однако самой большой проблемой для AMD было то, что конкуренты предложили технологию, которой у них не было. В сочетании с разнообразным набором функций, поддержкой DLSS, стабильными драйверами и общей превосходной производительностью предложения Nvidia имеют значительное преимущество, когда речь идет о поколении Turing и RDNA.



AMD RX 6000 series с трассировкой лучей

Перенесемся в 2020 год, и AMD наконец-то вступила в борьбу с лучшими предложениями Nvidia. AMD не только представила поддержку трассировки лучей в реальном времени в играх, но также выпустила 3 ​​видеокарты, которые чрезвычайно конкурентоспособны по сравнению с лучшими видеокартами от Nvidia. AMD RX 6800, RX 6800 XT и RX 6900 XT противостоят Nvidia RTX 3070, RTX 3080 и RTX 3090 соответственно. AMD наконец-то снова стала конкурентоспособной на самом верхнем уровне продуктового стека, что также является многообещающей новостью для потребителей.



Трассировка лучей - одна из ключевых функций, которые AMD представила в этом поколении - Изображение: AMD



Впрочем, и у AMD дела обстоят не совсем позитивно. Хотя AMD представила поддержку трассировки лучей в реальном времени в играх, их производительность в трассировке лучей получила умеренную оценку как со стороны обозревателей, так и со стороны обычных потребителей. Это понятно, поскольку это первая попытка AMD в области трассировки лучей, поэтому было бы немного несправедливо ожидать, что они покажут лучшую производительность трассировки лучей с первой попытки. Однако это вызывает вопросы о том, как работает реализация трассировки лучей AMD по сравнению с реализацией Nvidia, которую мы видели с архитектурой Тьюринга, а теперь и с архитектурой Ampere.

Набор технологий RTX от Nvidia

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

Nvidia разработала серию видеокарт RTX 2000, в которой основное внимание уделялось трассировке лучей. Это очевидно во всей конструкции самой архитектуры Тьюринга. Nvidia не только увеличила количество ядер CUDA, но и добавила специальные выделенные ядра трассировки лучей, известные как «ядра RT», которые обрабатывают большую часть вычислений, необходимых для трассировки лучей. Nvidia также разработала технологию, известную как «Deep Learning Super Sampling или DLSS», которая представляет собой фантастическую технологию, которая использует глубокое обучение и AI для выполнения задач масштабирования и восстановления, а также компенсирует потерю производительности при трассировке лучей. Nvidia также представила специальные «тензорные ядра» в картах серии GeForce, которые предназначены для помощи в задачах глубокого обучения и искусственного интеллекта, таких как DLSS. В дополнение к этому, Nvidia также работала с игровыми студиями, чтобы оптимизировать будущие игры с трассировкой лучей для специального оборудования Nvidia, чтобы можно было добиться максимальной производительности.



В Ray Tracing свет ведет себя в игре так же, как и в реальной жизни - Изображение: Nvidia

Ядра Nvidia RT

Ядра RT или Ray Tracing - это специализированные аппаратные ядра Nvidia, специально разработанные для обработки вычислительной нагрузки, связанной с трассировкой лучей в реальном времени в играх. Наличие специализированных ядер для трассировки лучей разгружает большую рабочую нагрузку с ядер CUDA, которые предназначены для стандартного рендеринга в играх, так что на производительность не слишком сильно влияет насыщение использования ядра. RT Cores жертвуют универсальностью и реализуют оборудование со специальной архитектурой для специальных вычислений или алгоритмов для достижения более высоких скоростей.

Наиболее распространенными алгоритмами ускорения трассировки лучей, которые широко известны, являются BVH и Ray Packet Tracing, а на схематической диаграмме архитектуры Тьюринга также упоминается BVH (иерархия ограничивающих объемов) Transversal. RT Core разработан для идентификации и ускорения команд, относящихся к рендерингу с трассировкой лучей в играх.

Объяснение RT Core - Изображение: Nvidia

По словам бывшего старшего архитектора графических процессоров Nvidia Юбо Чжана:

«[Переведено] Ядро RT по существу добавляет выделенный конвейер (ASIC) к SM для расчета пересечения луча и треугольника. Он может получить доступ к BVH и настроить некоторые буферы L0 для уменьшения задержки доступа к данным BVH и треугольника. Запрос сделан SM. Выдается инструкция, и результат возвращается в локальный регистр SM. Команда с чередованием и другие арифметические инструкции или инструкции ввода-вывода памяти могут выполняться одновременно. Поскольку это логика схемы, специфичная для ASIC, производительность / мм2 может быть увеличена на порядок по сравнению с использованием кода шейдера для расчета пересечений. Хотя я ушел из NV, я участвовал в разработке архитектуры Тьюринга. Я отвечал за окраску с переменной скоростью. Я очень рад видеть релиз сейчас ».

Nvidia также заявляет в официальном документе по архитектуре Turing, что ядра RT работают вместе с расширенной шумоподавляющей фильтрацией, высокоэффективной структурой ускорения BVH, разработанной NVIDIA Research, и совместимыми с RTX API-интерфейсами для достижения трассировки лучей в реальном времени на одном графическом процессоре Turing. Ядра RT проходят через BVH автономно, и, ускоряя тесты на обход и пересечение лучей / треугольников, они разгружают SM, позволяя ему обрабатывать другую вершину, пиксель и вычислять шейдинг. Такие функции, как создание и переоборудование BVH, выполняются драйвером, а генерация лучей и затенение управляются приложением с помощью новых типов шейдеров. Это освобождает модули SM для выполнения другой графической и вычислительной работы.

Ускорители лучей AMD

AMD вступила в гонку с трассировкой лучей со своей серией RX 6000, и вместе с этим они также представили несколько ключевых элементов архитектурного дизайна RDNA 2, которые помогают с этой функцией. Чтобы улучшить производительность трассировки лучей графических процессоров AMD RDNA 2, AMD включила компонент Ray Accelerator в свой основной дизайн вычислительного блока. Эти ускорители лучей должны повысить эффективность стандартных вычислительных модулей в вычислительных рабочих нагрузках, связанных с трассировкой лучей.

Механизм функционирования Ray Accelerator все еще относительно расплывчат, однако AMD предоставила некоторое представление о том, как эти элементы должны работать. Согласно AMD, эти ускорители лучей имеют явную цель - прохождение структуры иерархии ограниченного объема (BVH) и эффективное определение пересечений между лучами и прямоугольниками (и, в конечном итоге, треугольниками). Дизайн полностью поддерживает DirectX Ray Tracing (Microsoft's DXR), который является отраслевым стандартом для компьютерных игр. В дополнение к этому, AMD использует шумоподавитель на основе вычислений, чтобы очистить зеркальные эффекты сцен с трассировкой лучей, вместо того, чтобы полагаться на специальное оборудование. Это, вероятно, окажет дополнительное давление на возможности новых вычислительных модулей со смешанной точностью.

Объяснение ускорителей лучей - Изображение: AMD

Ускорители лучей также способны обрабатывать четыре пересечения прямоугольников с ограниченным объемом или одно пересечение треугольников в секунду, что намного быстрее, чем рендеринг сцены с трассировкой лучей без специального оборудования. У подхода AMD есть большое преимущество: ускорители RT RDNA 2 могут взаимодействовать с Infinity Cache карты. В кэше можно одновременно хранить большое количество структур ограниченного объема, поэтому можно снять некоторую нагрузку на управление данными и ячейки чтения из памяти.

Ключевое отличие

Самая большая разница, которая сразу становится очевидной при сравнении ядер RT и ускорителей лучей, заключается в том, что, хотя оба они выполняют свои функции примерно одинаково, ядра RT представляют собой выделенные отдельные аппаратные ядра, выполняющие единственную функцию, а ускорители лучей являются частью стандартная структура Compute Unit в архитектуре RDNA 2. Мало того, ядра RT от Nvidia находятся на втором поколении с Ampere с множеством технических и архитектурных улучшений под капотом. Это делает реализацию RT Core от Nvidia гораздо более эффективным и мощным методом трассировки лучей, чем реализация AMD с ускорителями лучей.

Поскольку в каждый вычислительный блок встроен один ускоритель лучей, AMD RX 6900 XT получает 80 ускорителей луча, 6800 XT - 72 ускорителя луча, а RX 6800 - 60 ускорителей луча. Эти числа нельзя напрямую сравнивать с числами Nvidia RT Core, поскольку это выделенные ядра, созданные с учетом единственной функции. RTX 3090 получает 82 2ndЯдра Gen RT, RTX 3080 получает 60 2ndЯдра Gen RT и RTX 3070 получают 46 2ndЯдра Gen RT. Nvidia также имеет отдельные тензорные ядра во всех этих картах, которые помогают в машинном обучении и приложениях AI, таких как DLSS, о которых вы можете узнать больше. в этой статье .

В каждый вычислительный блок в RDNA 2 встроен один Ray Accelerator - Изображение: AMD

Будущая оптимизация

На данном этапе трудно сказать, какое будущее ожидает Ray Tracing для Nvidia и AMD, но можно сделать несколько обоснованных предположений, проанализировав текущую ситуацию. На момент написания Nvidia удерживает довольно значительное преимущество в производительности трассировки лучей по сравнению с предложениями AMD. Хотя AMD сделала впечатляющий старт для RT, они все еще на 2 года отстают от Nvidia с точки зрения исследований, разработки, поддержки и оптимизации. Nvidia заблокировала большинство игр Ray Tracing прямо сейчас в 2020 году, чтобы использовать специализированное оборудование Nvidia лучше, чем то, что собрала AMD. Это, в сочетании с тем фактом, что ядра RT Nvidia более зрелые и более мощные, чем ускорители лучей AMD, ставит AMD в невыгодное положение, когда дело доходит до текущей ситуации с трассировкой лучей.

Однако AMD определенно не останавливается на достигнутом. AMD уже объявила, что они работают над альтернативой AMD для DLSS, которая сильно поможет в улучшении производительности трассировки лучей. AMD также работает с игровыми студиями над оптимизацией будущих игр для их оборудования, что видно в таких играх, как GodFall и Dirt 5, где карты AMD серии RX 6000 работают на удивление хорошо. Поэтому мы можем ожидать, что поддержка AMD Ray Tracing будет становиться все лучше и лучше с появлением новых игр и развитием таких технологий, как альтернатива DLSS.

С учетом сказанного, на момент написания RTX Suite от Nvidia был слишком мощным, чтобы его игнорировать любой, кто ищет серьезную производительность трассировки лучей. Нашей стандартной рекомендацией будет новая серия видеокарт RTX 3000 от Nvidia вместо серии AMD RX 6000 для всех, кто считает трассировку лучей важным фактором при принятии решения о покупке. Это может и должно измениться с будущими предложениями AMD, а также с улучшениями драйверов и оптимизации игр со временем.

Предстоящие игры, поддерживающие как RTX, так и DLSS - Изображение: Nvidia

Заключительные слова

AMD наконец-то перешла на сцену трассировки лучей, представив свои графические карты серии RX 6000, основанные на архитектуре RDNA 2. Хотя в тестах прямой трассировки лучей они не превзошли карты серии RTX 3000 от Nvidia, предложения AMD действительно обеспечивают чрезвычайно конкурентоспособную производительность растеризации и впечатляющую ценность, которая может понравиться геймерам, которым не важна трассировка лучей. Однако AMD уверенно идет по пути улучшения производительности трассировки лучей, последовательно выполняя несколько ключевых шагов.

Подход, используемый Nvidia и AMD для трассировки лучей, довольно схож, но обе компании используют для этого разные аппаратные методы. Первоначальное тестирование показало, что выделенные ядра RT от Nvidia превосходят ускорители лучей AMD, встроенные в сами вычислительные блоки. Это может не сильно беспокоить конечного пользователя, но это важная вещь, которую следует учитывать в будущем, поскольку разработчики игр сейчас сталкиваются с решением оптимизировать свои функции RT для одного из подходов.