Технология NVIDIA DLSS в играх: что это такое и зачем нужна

Технология NVIDIA DLSS в играх: что это такое и зачем нужна

 

Алгоритм улучшения изображений DLSS — визитная карточка компании NVidia. Его работа всегда вызывает особенный интерес у пользователей. С помощью DLSS игры стали быстрее — растет FPS, увеличиваются максимальные значения разрешений, что, в конечном итоге, непосредственно влияет на «играбельность» контента и способствует глубокому погружению в него. В материале рассмотрим суть технологии DLSS и области ее применения в игровой индустрии.

Технология трассировки лучей в гейминге, можно сказать, не дотягивает по производительности и скорости отрисовки кадров. Особенно сильно это заметно в линейке видеокарт семейства RTX 20. Рейтрейсинг вроде бы заявлен и фактически присутствует, но толком не работает — прорывной производительности в играх не наблюдается. Исправить ситуацию вроде должна новинка от NVIDIA — абсолютно новый графический процессор Ampere и видеокарты поколения RTX 30, построенные на его основе. Об архитектуре нового процессора очень подробно рассказано в статье блога Клуба DNS.

DLSS без купюр

Геймеру со стажем, особенно ценителю технических решений от «зеленого» лагеря, не нужно объяснять суть технологии суперсемплинга DLSS. Тем же, кто только делает первые шаги мире компьютерных игр и пока в поиске оптимальных настроек для своего «железа», нелишним будет знакомство с «механикой» алгоритма DLSS.

Дословно DLSS (Deep Learning Super Sampling) переводится как «сглаживание на основе глубокого обучения». На момент написания данного материала миру известны две версии алгоритма глубокого ресемплирования.

Разница между версиями алгоритма заключается не в логике его работы, а в его физической реализации.

В случае с DLSS 1.0 компания NVIDIA предложила производителям игрового контента «прогнать» графические сцены их игр через свой «суперкомпьютер», наделенный искусственным интеллектом. Такой подход требовал больших затрат времени, и, что называется, «не взлетел», поскольку разработчики игр, в большинстве своем, его просто игнорировали.

Вторая версия алгоритма DLSS 2.0 стала более «клиентоориентированной», ведь NVIDIA верила в успех технологии и включила в состав видеокарт тензорные ядра, тем самым наделив свои графические адаптеры искусственным интеллектом.

Основная суть работы алгоритма — получение качественного изображения (кадра) высокого разрешения на основе его уменьшенного аналога. Не вдаваясь в дебри тензорных вычислений и довольно сложных и громоздких математических операций с матрицами, упрощенно работу алгоритма DLSS можно описать так.

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

В этом и заключается основная «механика» работы алгоритма сглаживания.

Основной принцип DLSS — преобразование изображений с низким разрешением в кадры с более высокой разрешающей способностью, вплоть до 4К, без потери качества картинки игрового мира.

Такой подход к рендерингу игровых сцен дает конечному пользователю несколько очень важных преимуществ:

  • снижение нагрузки на графический процессор, ведь обрабатывать приходится меньшие по размеру и объему изображения. При этом существенно снижается нагрев видеокарты, а это залог ее длительной работы без сбоев;
  • рост FPS, поскольку аппаратной части значительно проще и легче обрабатывать несколько небольших по размеру кадров в единицу времени. Экспериментально доказано, включение режима DLSS приводит к увеличению частоты кадров в 1,5-2 раза. 

Искусственный интеллект на службе создания графических сцен

Работа алгоритма сглаживания DLSS невозможна без искусственного интеллекта, заложенного в каждый новый продукт NVIDIA. Именно он вырабатывает методику сглаживания определенных игровых сцен на основе многомиллионных «прогонов» эталонных изображений и полигонов. В первой версии DLSS предварительная обработка графических кадров велась на базе вычислительных мощностей компании NVIDIA под конкретные проекты: Metro: ExodusBattlefield V.

Конечные «рекомендации» по улучшению сцен прописывались в обновленные версии драйверов к конкретной модели видеокарты.

Во втором поколении DLSS 2.0 львиная доля этой работы отдана тензорным ядрам самой графической карты. Это и есть принципиальное отличие между первым и вторым поколениями глубокого ресемплинга. Оно открывает просто безграничное поле для деятельности производителям игрового контента, которым не нужно теперь создавать уникальную нейронную сеть на серверах компании NVIDIA и «обкатывать» на ней полигоны своих игр. Вполне достаточно адаптировать свой код под тензорные вычисления и произвести расчет сцен силами «универсальной» нейронной сети. Такой подход существенно упрощает жизнь производителю контента и ускоряет выпуск новых продуктов.

Топология Ampere

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

Если сравнить технические характеристики новых адаптеров, то можно увидеть уменьшение количества тензорных ядер в новых моделях в сравнении с предыдущим поколением. И может закрасться крамольная мысль: «А все ли так хорошо? И за счет чего возникает прирост производительности?».

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

Если «в лоб» сравнить спецификации адаптеров RTX 20 и RTX 30, то можно заметить, что тензорных ядер в новой линейке видеокарт стало меньше. Но за счет их производительности вкупе с обновленным алгоритмом вычислений просчет каждой сцены ускорился в разы. В итоге это позволяет игроку получить высокие, а главное стабильные значения FPS, играть на высоких разрешениях и максимальных настройках графики, а производителям — всерьез задуматься о производстве контента в разрешении 8 К.

На следующей иллюстрации наглядно показан прирост производительности в актуальных играх (на момент написания статьи).

Из диаграмм видно, топовая видеокарта с использованием технологии DLSS дает двух-, а то и трехкратный прирост производительности в не самых «легких» с точки зрения графики играх.

Пока нет официальной информации можно предположить, что новые адаптеры рано или поздно обзаведутся обновленным алгоритмом DLSS версии 3.0, способным интеллектуально ресемплировать игровые сцены в реальном времени в разрешение 8К. Но говорить об этом пока рано. Для наступления эры DLSS 3.0 нужно, как минимум, чтобы у каждого второго-третьего геймера на столе красовался 8К-монитор.

Источник:

Бесплатные ФПС: как ИИ помогает сделать игровую графику лучше

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

Не обошел стороной он и игровую индустрию. Пока в геймерской среде сравнивают графику вышедшей на ПК Death Stranding с технологией DLSS и без нее, на днях стало известно, что в процессорах NVIDIA Ampere будет задействована уже DLSS 3.0. При этом она будет работать с любой игрой с TAA (Temporal Anti-Aliasing) и драйвером Game Ready. Это означает, что разработчикам понадобится подстроить технологию к своим играм — впрочем, этот процесс будет проходить куда легче, чем сейчас.

В этой статье мы рассмотрим, как NVIDIA использует машинное обучение для улучшения нашего игрового опыта.

Что такое DLSS?

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

Deep Learning Super Sampling (DLSS) — технология NVIDIA, использующая глубокое машинное обучение для повышения частоты кадров в играх, требующих сложных графических вычислений. С DLSS геймеры могут использовать более высокие настройки и разрешение, не беспокоясь при этом за стабильность fps.

В частности, DLSS выполняет задачу суперразрешения. С его помощью изображение с разрешением, скажем, 1080p может быть увеличено до 4K с минимальными потерями в качестве. Это избавляет от необходимости воспроизводить игру в 4K (и тем самым, вероятно, расплавить ваш ПК). Разрешение по-прежнему будет 1080p, что позволяет сохранить более высокую частоту кадров, однако благодаря масштабированию при помощи DLSS разницы с 4K вы практически не заметите.

imageАрхитектура DLSS 2.0

По сути, DLSS — это нейронная сеть, обученная на суперкомпьютерах NVIDIA. Выход этой нейросети сравнивается с эталонным изображением с разрешением 16K, а ошибка между ними возвращается сети по петле обратной связи. Чтобы не возникло проблем со скоростью, DLSS использует тензорные ядра, являющиеся основой процессоров RTX 2000 (и в будущем RTX 3000). Это позволяет значительно ускорить тензорные операции и повысить эффективность обучения ИИ и задач, связанных с высокопроизводительными вычислениями.

image

Эволюция DLSS: от 1.0 к 2.0

DLSS 1.0 обучался для каждой игры отдельно, а оттого учился чрезвычайно долго. Еще он не поддерживал 4-х кратный апсэмплинг (upsampling), например, из 1080p до 4K, и имел ряд других недостатков в качестве изображения, которые не стоили улучшения частоты кадров.

DLSS 2.0 — более общий алгоритм, лишенный ограничений на обучение и апсэмплинг, а также имеющий меньшую задержку вывода за счет использования тензорных ядер: она составляет порядка 1,5 мс при 4K на RTX 2080ti — и в некоторых случаях обеспечивает результат даже лучше, чем исходное изображение.

Изображения с DLSS имеют конечное разрешение 1080p

В DLSS 1.0 максимально можно увеличить разрешение 720p до 1080p, тогда как DLSS 2.0 может масштабировать до 1080p даже разрешение 540p. Как видно на примере, изображение при 540p выглядит совсем размытым. При этом результат с DLSS 2.0 оказался лучше, чем с DLSS 1.0, и даже немного лучше исходной картинки. То есть, DLSS 2.0 справляется с заполнением пикселей эффективнее, чем DLSS 1.0, даже несмотря на то, что последнему нужно перемасштабировать не такую большую разницу в разрешении.

Умение DLSS 2.0 масштабировать изображение с разрешением 540p в сочетании с малой задержкой, обусловенной самим методом, дает существенное увеличение производительности по сравнению с предшественником.

imageВремя рендеринга с DLSS 2.0 и без него (в мс)

Подробнее о принципе работы DLSS

При рендеринге геометрии сцены в играх (например, в треугольнике) количество используемых пикселей (или sampling rate — субпиксельная маска) определяет, как будет выглядеть изображение.

image

При использовании сетки сэмплирования 4×4 для рендеринга треугольника мы видим, что результат оставляет желать лучшего.

image

С увеличением сетки сэмплирования в 4 раза — до 8×8 — изображение оказывается больше похожим на предполагаемый треугольник. В этом и заключается суть DLSS: преобразовать изображение с низким разрешением в более высокое.

imageСуть DLSS

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

imageЦель DLSS

Это фактически решает уже не новую проблему супер-разрешения.

Давайте кратко рассмотрим, как развивались методы повышения разрешения с помощью ИИ.

Single Image Super-Resolution

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

imageSingle Image Super-Resolution

Давайте сравним несколько результатов таких техник супер-разрешения на основе одного изображения с тем, что предлагает DLSS 2.0.

Целевое разрешение — 1080p

Очевидно, что результат DLSS 2.0 лучше, чем метод бикубической интерполяции и ESRGAN — архитектуры нейронной сети, использующей метод генеративно-состязательной сети для достижения супер-разрешения. В результате папоротники в случае DLSS 2.0 выглядят даже более детальными, чем на оригинальном изображении.

Multi-frame Super-Resolution

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

Spatial-Temporal Super Sampling

Этот метод использует несколько кадров для супер-сэмплинга изображений.

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

imageГистограмма метода Spatial-Temporal Super Sampling

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

Нежелательные эффекты от Neighbour Clamping

Временное мерцание и муар на изображениях с Neighbour Clamping

DLSS 2.0: Deep Learning-based multi-frame reconstruction

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

image

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

DLSS — не просто алгоритм обработки изображения. Обычно он работает в совокупности с рендерингом, поэтому и его процесс тоже необходимо пересмотреть. Впрочем, в случае DLSS 2.0 эти изменения не так сложно реализовать, как случалось до этого.

Тесты производительности

image

Последний тайтл Remedy Control поддерживает как трассировку лучей, так и и DLSS. Как видно на графике выше, RTX 2060 получил прирост производительности с 8 кадров в секунду до примерно 36,8 кадров в секунду за счет DLSS, что значительно повысило играбельность проекта. Этот результат оказался даже лучше, чем в случае с RTX 2080ti без DLSS, что еще раз доказывает, насколько эффективна эта технология.

Digital Foundry сравнил качество изображения с использованием DLSS 1.9 и 2.0 в этом видео.

Слева — Control с DLSS 1.9, справа — с DLSS 2.0. Изображения получены на RTX 2060 с разрешением 1080p и затем отмасштабированы до 4K

На сравнении выше мы видим, как DLSS 2.0 отрисовывает пряди волос, искаженные в случае DLSS 1.9.

Заключение

DLSS доступен только для графических процессоров на базе RTX 2000 и Turing (и на будущих графических процессорах RTX 3000 на базе Ampere) и на данный момент поддерживает лишь несколько игр. DLSS 2.0 поддерживается еще меньшим количеством тайтлов, но уровень детализации при нем может превосходить даже оригинальное изображение, а частота кадров при этом остается высокой. Это действительно классное достижение NVIDIA, и у технологии определенно многообещающее будущее.

Источник:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Переводчик »