Графические процессоры AMD и NVIDIA: будущее без ядер RT для RT?

Возможно ли, что в будущем RT-ядра исчезнут из будущих графических процессоров? NVIDIA, Intel и / или AMD? Могут ли шейдерные блоки с их огромной вычислительной мощностью вырасти настолько, чтобы полностью отказаться от их включения? из этих типов единиц?

Ядра RT, блоки Ray Accelerator или блоки пересечения - это специализированные блоки, которые отвечают за одну задачу в графических процессорах и которые впервые появились из рук первого NVIDIA RTX.

GPU от AMD и NVIDIA

В этой статье мы не будем объяснять, для чего они нужны, для этого мы рекомендуем вам поискать статью в HardZone под названием Что такое ядра RT для трассировки лучей и как они работают? в котором мы просто, но подробно объясняем работу этого типа устройств.

Что такое RT-ядра или пересечения?

Ядра RT NVIDIA

Ядра RT в NVIDIA или Ray Accelerator Units в AMD - это блоки, отвечающие за вычисление пересечения лучей и различных элементов сцены, чтобы понять, какая потребность в этом типе блока в аппаратном обеспечении новых видеокарт, которые мы нужно понимать, как работает простейшая версия алгоритма трассировки лучей:

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

Это делается постоянно и повторно в каждом кадре, который GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР рендеры, созданные с использованием алгоритма трассировки лучей или одного из его вариантов, либо частично для решения проблем непрямого освещения, которые растеризация не может решить сама по себе.

Алгоритм Меллера-Трумбора для пересечения лучей и треугольников

Ядра Intersección Rayo Triangulo RT

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

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

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

Стоимость алгоритма Мёллера - Трамборе

Ядра Algoritmo Moller-Trumbore RT

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

Другими словами, нам потребуется 27 FLOPS не на пиксель, а на пиксель и пересечение, теперь подумайте о количестве пересечений и пикселей в сцене, и вы получите приблизительное представление о том, почему так необходимы единицы пересечения или ядра RT.

Тип шейдерной программы, которая заменяет ядра RT

Этапас DXR

В спецификациях API для трассировки лучей в реальном времени, как в DXR в DX12 Ultimate, так и в расширениях трассировки лучей для Vulkan, есть устаревший тип шейдера, это шейдер пересечения, который он полностью заменяет единицы пересечения. в аппаратном обеспечении, где их нет.

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

Diseño Circuitos Papel

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

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

Блоки с фиксированными функциями никогда не удалялись из графического процессора

Графический процессор NVIDIA

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

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

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