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

NVIDIA внесла некоторые изменения в архитектуру Ada Lovelace по сравнению с предыдущей Ampere. В том числе используются новые ядра RT и Tensor, на которых мы остановимся чуть ниже. В структуре самих SM изменений мало. Имеются 64 выделенных блока FP32 и 64 совмещенных FP32/INT32.

NVIDIA опубликовала диаграмму AD102 GPU и упомянула максимальный уровень расширения. Полная конфигурация AD102 GPU будет содержать до 18.432 вычислительных блоков FP32, 144 ядра RT и 576 ядер Tensor. Но NVIDIA пока не реализовала полный вариант ни на одной видеокарте, будь то GeForce RTX 4090, RTX 6000 Ada Generation или L40.

Как и предполагалось, удвоения ROP не произошло. С архитектурой Ampere они мигрировали в Raster Engine, там и продолжают оставаться. У каждого Raster Engine имеются два раздела ROP, содержащие по восемь ROP. Остальная структура во многом идентична Ampere – за исключением числа SM и наличия ядер Tensor четвертого поколения и ядер RT третьего поколения.

Кэш L1 по-прежнему имеет размер 128 кбайт. Но кэш L2 стал существенно крупнее. На полном AD102 GPU кэш L2 имеет емкость 98.304 кбайт, то есть почти 100 Мбайт. В степени расширения GeForce RTX 4090 GPU оснащен кэшем L2 емкостью 73.728 кбайт. У GA102 GPU кэш L2 был всего 6.144 кбайт L2. NVIDIA увеличила кэш L2 в 12 раз, что должно уменьшить «узкие места» по доступу к видеопамяти.

Ядра RT третьего поколения

Третье поколение ядер RT в архитектуре Ada получило в два раза более высокую пропускную способность вычислительных блоков по сравнению с предшественниками, что увеличивает производительность по расчетам трассировки лучей в 2,8x. В случае GeForce RTX 4090 теоретическая производительность увеличилась до 191 RT TFLOPS по сравнению с 78 RT TFLOPS для GeForce RTX 3090 Ti.

Кроме того, третье поколение ядер RT получило такие функции, как Opacity Micro-Map Engines и Micro-Mesh Engines. Они представляют собой новые выделенные аппаратные блоки для ускорения особо требовательных вычислений трассировки лучей.

Здесь мы бы хотели более подробно остановиться на Opacity Micro-Maps и Displaced Micro-Meshes.

Opacity Micro-Maps представляют собой оптимизацию расчета трассировки лучей. Трассировка лучей не очень хорошо справляется с некоторыми объектами, например, листвой и растительностью. Лучи могут отражаться в бессчетных направлениях между листьями и ветвями, поэтому подобные объекты значительно осложняют трассировку. Третье поколение ядер RT может использовать Opacity Micro-Maps для присвоения статуса прозрачности подобным элементам, которые могут быть непрозрачными, прозрачными или неизвестными.

Для сложных объектов ранее трассировка лучей не использовалась или применялась в облегченном виде. Opacity Micro-Maps должны учитывать подобные объекты в будущем.

Ядра RT третьего поколения генерируют Displaced Micro-Meshes (DMM). Дерево BVH (bounding volume hierarchies), которое используется для трассировки лучей, будет строиться до 10 раз быстрее и потреблять в 20 раз меньше видеопамяти. NVIDIA описывает DMM следующим образом: «DMM – это новые примитивы, которые представляют собой структурированную сетку микро-треугольников, и ядра RT третьего поколения могут обрабатывать их в родном режиме. Что уменьшает требования к объему памяти при рендеринге сложной геометрии, которая использует только простые треугольники».

Shader Execution Reordering

Технология Shader Execution Reordering (SER) позволяет объединять вычисления в конвейере, чтобы вычислительные блоки были всегда максимально нагружены. Производительность потоковых процессоров при этом увеличивается до двух раз, что приводит к повышению fps в играх до 25%.

Четвертое поколение ядер Tensor и DLSS 3

Технология Deep Learning Super Sampling тоже получила обновление до третьей версией. Она работает на 4-м поколении ядер Tensor, которое получило различные оптимизации. Например, новые ядра Tensor обеспечивают в пять раз более высокую пропускную способность вычислений FP8.

Для DLSS 3 используются так называемые ускорители Optical Flow. Они вычисляют пиксельные данные движения из последовательных кадров, используя нейросеть DLSS.