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

Опубликовано:

quadro-rtxС объявлением интерфейса NVIDIA RTX и совместимости с Microsoft DXR API для трассировки лучей стало понятным, куда направлена разработка нового поколения GeForce. NVIDIA обещает глубокое погружение в виртуальный мир 3D-визуализации, чему должна способствовать трассировка лучей.

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

Turing ориентирован на трассировку лучей в реальном времени

Аппаратный дизайн Turing и нового поколения GeForce можно разделить на три части. Есть классические потоковые процессоры, которые будут упакованы в обновленный потоковый кластер - Turing SM. Некоторые изменения знакомы еще по архитектуре Volta. К ним относятся L1 в виде общей памяти с удвоенной пропускной способностью и более крупный кэш L2.

Второй компонент - тензорные ядра, тоже известные по архитектуре Volta. Они также вносят свой вклад в трассировку лучей, поскольку высокая производительность выполнения запросов в сеть глубокого обучения помогает в алгоритмах устранения шума. Расчет нескольких тысяч или даже миллионов световых лучей требует определенного времени даже на современном "железе". И области, в которых расчет еще не произведен, представлены шумом. Поскольку рендер не знает, какие объекты на сцене более важны, он рассчитывает лучи в логическом порядке. Чтобы уменьшить время подготовки финального изображения и быстрее устранить шумы, алгоритм глубокого обучения выделяет важные области кадра, рассчитывая их в первую очередь.

Третий компонент - новые ядра RT. Они отвечают за расчет пересечения лучей с треугольниками (Ray Triangle Intersection) и BVH (Bounding Volume Hierarchy). BVH представляет собой дерево, в котором располагаются геометрические объекты. Данные алгоритмы помогают в определении пересечений/наложений и трассировке лучей. 576 ядер RT в архитектуре Turing обеспечивают скорость расчет до 10 гигалучей в секунду.

Конечно, архитектура Turing способна на большее, нежели аппаратное ускорение трассировки лучей. Но Intel немало вложила в два упомянутых компонента Turing из трех. Трассировка лучей и архитектура Turing связаны намертво, они станут одним из ключевых компонентов грядущего поколения GeForce.

Volta - только первый шаг

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

С 4.608 потоковыми процессорами и производительностью 16 TFLOPS (FP32), Turing дает сравнительно небольшой прирост производительности по сравнению с 15 или 11,3 TFLOPS старшей Volta (5.120 потоковых процессоров/ Titan V) и GPU Pascal (3.584 потоковых процессоров/GeForce GTX 1080 Ti). Конечно, NVIDIA еще будет внесет оптимизации, но Turing даст наибольший прирост производительности благодаря ядрам Tensor и RT. Ядра RT как раз и обеспечивают упомянутые выше 10 гигалучей в секунду, тензорные ядра дают производительность 500 TOPS (INT4), 250 TOPS (INT8) и 125 TFLOPS (FP16), в зависимости от типа вычислений.

Опасения насчет GameWorks Ray Tracing и дискриминация других производителей

У NVIDIA имеется достаточно мощный маркетинговый потенциал, чтобы пробить новые разработки в игровом сегменте. Конечно, NVIDIA - не единственная компания, заинтересованная в трассировке лучей в реальном времени. Практически все разработчики программных интерфейсов имеют свои планы. То же самое касается и разработчиков движков. Так что список заинтересованных сторон весьма велик, от классических разработчиков игровых движков, таких как Epic Games, Otoy, EA SEED и DICE, до создателей спецэффектов в фильмах, например, Pixar Renderman.

Чтобы построить необходимую программную экосистему, NVIDIA весной представила технологию RTX. NVIDIA RTX позволяет использовать новое графическое API под названием DXR или DirectXR. Последнее как раз обеспечивает интерфейс для движков и программ. В разработке API участвовали не только NVIDIA и Microsoft, но и создатели Unreal Engine, Unity, Frostbite и Allegorithmic.

NVIDIA RTX представляет собой интерфейс разработчика, который позволяет ускорить определенные расчеты на соответствующих аппаратных ресурсах. Кроме Titan V поддерживаются все видеокарты на архитектуре Volta. Но не только. Через Direct Compute и Microsoft DXR, трассировка лучей в реальном времени будет возможна и на других GPU. DXR или DirectXR будут работать и на AMD GPU через Direct Compute. Но насколько быстро будут выполняться вычисления без тензорных ядер и ядер RT - уже другой вопрос.

Но не ущемляются ли интересы других разработчиков GPU?

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

Достаточно ли вычислительной производительности?

На конференции Games Developer Conference NVIDIA показала демонстрацию трассировки лучей в реальном времени по мотивам Звездных войн. Демонстрация действительно была впечатляющей, она просчитывалась на NVIDIA DGX-1 с четырьмя Volta GPU. Однако частоту кадров определить было проблематично. Если ориентироваться на другие демонстрации, минимальная частота кадров была не ниже 50-60 fps. Конечно, на одной видеокарте Titan V подобная демонстрация вряд ли пошла бы плавно.

На новой видеокарте Quadro RTX 8000 демонстрация "Reflections" работает с 24 fps. Однако здесь полные 24 кадра в секунду указаны по аналогии с кинофильмами. По данной информации сложно оценить производительность следующего поколения GeForce, но сложные демонстрации вряд ли будут плавно идти на одной видеокарте. Кроме того, упомянутая Quadro RTX 8000 стоит порядка $10.000, и вряд ли мы увидим на ее основе вариант GeForce, пусть и с урезанной подсистемой памяти.

На SIGGRPAH некоторые партнеры NVIDIA показали демонстрации на новых видеокартах Quadro RTX. Некоторые демонстрации действительно впечатляли, причем часть работала и на младшей Quadro RTX 6000, но уже с не такой убедительной графикой.

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

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