Открыть сервис

RT-ядра

RT-ядро — это специализированное вычислительное ядро (исполнительное устройство) в составе графического процессора (GPU), предназначенное для аппаратного ускорения вычислений, связанных с трассировкой лучей (ray tracing). RT-ядра выполняют операции пересечения лучей с ограничивающими объёмами (bounding volume hierarchy, BVH) и треугольниками, что позволяет значительно ускорить рендеринг фотореалистичных изображений в реальном времени по сравнению с программной реализацией на универсальных шейдерных ядрах.

История

Предпосылки появления

Трассировка лучей как метод рендеринга известна с 1960-х годов. Однако до конца 2010-х годов её применение в реальном времени было ограничено из-за высокой вычислительной сложности. Основная нагрузка при трассировке лучей приходится на тесты пересечения лучей с геометрией сцены, которые плохо параллелятся на традиционных шейдерных процессорах (CUDA-ядрах, потоковых процессорах). Для ускорения этих вычислений требовалась специализированная аппаратура.

Первое поколение (NVIDIA Turing, 2018)

Первыми коммерческими GPU с выделенными RT-ядрами стали видеокарты NVIDIA серии GeForce 20 (архитектура Turing), представленные в августе 2018 года. Архитектура Turing включала блоки RT Cores, способные выполнять до 10 гигапересечений лучей в секунду. Это позволило впервые реализовать трассировку лучей в реальном времени в играх (например, Battlefield V).

Второе поколение (NVIDIA Ampere, 2020)

В архитектуре Ampere (GeForce RTX 30) RT-ядра были улучшены: добавлена поддержка операций с динамической геометрией, увеличена пропускная способность (до 2× по сравнению с Turing). Также появилась возможность выполнять интерполяцию лучей для снижения шума.

Третье поколение (NVIDIA Ada Lovelace, 2022)

Архитектура Ada Lovelace (GeForce RTX 40) представила RT-ядра третьего поколения с поддержкой технологии Shader Execution Reordering (SER), которая переупорядочивает шейдерные потоки для повышения эффективности обработки лучей. Производительность пересечений лучей выросла до 200 гигапересечений в секунду.

Четвёртое поколение (NVIDIA Blackwell, 2024)

В архитектуре Blackwell (GeForce RTX 50) RT-ядра получили поддержку аппаратного ускорения для трассировки лучей с учётом нескольких отражений и преломлений (multi-bounce). Также реализована функция «мега-геометрия» для эффективной обработки сцен с миллиардами полигонов.

Конкуренты

  • AMD (RDNA 2, 2020) — в архитектуре RDNA 2 (Radeon RX 6000) появились блоки Ray Accelerators, которые являются частью вычислительных блоков (Compute Units) и выполняют функции, аналогичные RT-ядрам NVIDIA. Производительность уступала решениям NVIDIA того же поколения.
  • Intel (Xe HPG, 2022) — в архитектуре Alchemist (Arc A-series) реализованы аппаратные блоки трассировки лучей (Ray Tracing Units), работающие в связке с трассировщиками лучей на уровне драйвера.

Устройство и принцип работы

Архитектура RT-ядра

RT-ядро представляет собой конечный автомат, специализированный на двух основных операциях:

  1. Пересечение луча с ограничивающим объёмом (box test) — проверка, пересекает ли луч прямоугольный параллелепипед (bounding box) узла BVH.
  2. Пересечение луча с треугольником (triangle test) — проверка, пересекает ли луч конкретный треугольник, и вычисление точки пересечения.

RT-ядро оперирует с фиксированной точностью (обычно 32-битные числа с плавающей запятой) и не предназначено для выполнения произвольных шейдерных вычислений.

Взаимодействие с шейдерными ядрами

Процесс трассировки лучей в GPU с RT-ядрами выглядит следующим образом:

  1. Шейдерная программа (например, HLSL/GLSL) запускает луч.
  2. Данные луча передаются в RT-ядро, которое выполняет обход BVH-дерева.
  3. RT-ядро возвращает результат (попадание или промах) и координаты пересечения.
  4. Шейдерное ядро обрабатывает результат (вычисляет цвет, запускает вторичные лучи).

Структура BVH

RT-ядра работают с иерархией ограничивающих объёмов (BVH), которая строится на этапе предварительной обработки сцены. BVH представляет собой бинарное дерево, где каждый узел — это ограничивающий параллелепипед, содержащий дочерние узлы или треугольники. RT-ядро выполняет обход дерева, начиная с корневого узла, и отсекает ветви, не пересекаемые лучом.

Классификация

По поколениям

  • RT-ядра 1-го поколения (Turing) — базовые операции box test и triangle test, поддержка статической геометрии.
  • RT-ядра 2-го поколения (Ampere) — улучшенная производительность, поддержка динамической геометрии, аппаратное ускорение для теней и отражений.
  • RT-ядра 3-го поколения (Ada Lovelace) — SER, поддержка трассировки с несколькими отражениями, улучшенная работа с полупрозрачными объектами.
  • RT-ядра 4-го поколения (Blackwell) — аппаратное ускорение multi-bounce, мега-геометрия.

По производителю

  • NVIDIA — доминирующий игрок, RT-ядра интегрированы во все современные GPU GeForce RTX и Quadro RTX.
  • AMD — Ray Accelerators в составе Compute Units, менее производительны, но более гибки.
  • Intel — Ray Tracing Units в архитектуре Xe HPG, ограниченная поддержка на старте.

Применение

Компьютерные игры

Основное применение RT-ядер — игровой рендеринг. Технологии, использующие RT-ядра:

  • Ray-traced shadows — тени с мягкими краями и точной геометрией.
  • Ray-traced reflections — отражения на поверхностях (зеркала, вода, металл).
  • Ray-traced global illuminationглобальное освещение с учётом многократных отражений света.
  • Ray-traced ambient occlusion — окклюзия окружения, улучшающая реалистичность теней в углах и щелях.

Профессиональная 3D-графика

RT-ядра используются в программах для рендеринга (например, Blender, Autodesk Maya, Chaos V-Ray) для ускорения финального рендеринга и интерактивного просмотра сцен.

Научные вычисления

Хотя RT-ядра оптимизированы для графики, они могут применяться в задачах, сводящихся к поиску пересечений (например, моделирование распространения волн, трассировка частиц в физике).

Критика и ограничения

Аппаратная специализация

RT-ядра занимают значительную площадь кристалла GPU, что увеличивает стоимость и энергопотребление. Критики (в том числе компания AMD) утверждают, что более эффективным подходом является использование универсальных вычислительных блоков с программной трассировкой лучей, особенно при низкой плотности лучей.

Ограниченная гибкость

RT-ядра выполняют только фиксированные операции пересечения. Для сложных эффектов (например, объёмное рассеяние, каустика) требуется дополнительная обработка на шейдерных ядрах, что снижает общую эффективность.

Зависимость от BVH

Качество и производительность трассировки лучей сильно зависят от качества построения BVH. Плохо построенное дерево может привести к снижению производительности, несмотря на аппаратное ускорение.

Отсутствие стандартизации

RT-ядра разных производителей имеют различные API и возможности. Это усложняет разработку кроссплатформенных приложений. Основные API (DirectX Raytracing, Vulkan Ray Tracing, OptiX) абстрагируют часть различий, но не полностью.

Интересные факты

  • Первым GPU с аппаратной трассировкой лучей стал NVIDIA Quadro GV100 (2017), но он не имел выделенных RT-ядер — использовал тензорные ядра для ускорения.
  • В архитектуре NVIDIA Turing RT-ядра занимают около 10–15% площади кристалла GPU.
  • Технология DLSS (Deep Learning Super Sampling) часто используется совместно с RT-ядрами для повышения производительности: рендеринг с низким разрешением с трассировкой лучей, затем масштабирование с помощью ИИ.
  • В консолях PlayStation 5 и Xbox Series X/S также используются аппаратные блоки трассировки лучей, аналогичные RT-ядрам.

Источники

  • NVIDIA Developer Documentation: «RTX Platform» (2018–2024)
  • AMD RDNA 2 Architecture Whitepaper (2020)
  • Intel Xe HPG Architecture Overview (2022)
  • DirectX Raytracing (DXR) Specification (Microsoft, 2018)
  • Vulkan Ray Tracing Extension Specification (Khronos Group, 2020)
  • Статья «Ray Tracing on NVIDIA GPUs» (ACM Transactions on Graphics, 2019)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →