NVIDIA Deep Learning Super Sampling (DLSS) — технология масштабирования изображения, позволяющая увеличить игровую производительность с минимальными потерями качества. DLSS является пионером подобных технологий: ее первая версия увидела свет в 2019 году, а сегодня актуальна DLSS 3.5. Как работают разные поколения «умного» масштабирования NVIDIA, и в чем разница между ними?
DLSS 1.x
Первая версия DLSS была представлена вместе с картами RTX 2000 в сентябре 2018 года. Картинка в ней формируется следующим образом:
Для каждой игры создается собственный алгоритм восстановления деталей. Это делается посредством ее запуска на серверах компании NVIDIA. Сначала в разрешении 16К рендерится множество кадров из разных сцен. Затем разрешение выбранных кадров понижается до 4К с помощью избыточной выборки (SSAA). На их основе полученных изображений обучается автономная нейросеть.
При запуске на компьютере пользователя рендеринг 3D-сцены производится в более низком разрешении, чем целевое у экрана.
Картинка растягивается до целевого разрешения.
На основе «просмотренных» изображений высокого качества нейросеть дорисовывает недостающие детали на растянутой картинке.
Технически нейросеть для работы DLSS можно запустить на любых вычислительных единицах, в том числе – на универсальных шейдерных процессорах видеокарты. Но NVIDIA не стала отнимать их драгоценные ресурсы, и выбрала другой подход: запуск на выделенных тензорных ядрах. Поэтому эта закрытая технология совместима только с картами серии NVIDIA RTX, у которых такие ядра есть.
DLSS первой версии не отличалась особым качеством. Все операции по восстановлению исходного разрешения картинки ложились на плечи нейросети, возможности которой были ограниченны эталонным набором изображений. Поэтому хоть качество и было выше, чем при обычном масштабировании, на практике заметно это было далеко не везде.
Для каждой игры нужно было потратить немало времени на обучение отдельной нейросети. Вследствие этого поддержкой DLSS первого поколения обзавелись только крупные проекты: Battlefield V, Metro Exodus и Control. При этом присутствовали определенные ограничения на ее включение. Например, в Battlefield V изначально технологию можно было задействовать только при активной трассировке лучей и определенных разрешениях экрана.
DLSS 2.x
Как и в случае с любой технологией, DLSS стала раскрываться не сразу. Качественный рывок она сделала только во втором поколении, анонсированном в апреле 2020 года. DLSS 2 работает по такому принципу:
В качестве основы используется универсальная нейросеть, прошедшая обучение на серверах компании NVIDIA с помощью множества игровых проектов.
При запуске на компьютере рендеринг кадра 3D-сцены производится в более низком разрешении, чем целевое у экрана.
На основе векторов движения рассчитывается, насколько следующий кадр смещен по отношению к предыдущему, и чем от него отличается.
Следующий кадр проходит рендер со сдвигом по отношению к предыдущему.
Временная информация из нескольких кадров совмещается. Картинка из этих данных «склеивается».
Универсальная нейросеть дорисовывает недостающие детали на итоговой картинке.
Использование новых приемов заметно подняло качество картинки. Во-первых, базовое изображение теперь формируется с помощью временной информации из нескольких кадров. Это схоже со сглаживанием TAA. С той разницей, что для его работы используются кадры полного размера, а для работы DLSS 2 — кадры уменьшенного разрешения. Во-вторых, универсальная нейросеть научилась куда более точно и аккуратно дорисовывать мелкие детали, порой превосходя в них даже рендер нативного разрешения.
Благодаря нескольким пресетам, отличающихся исходным разрешением рендеринга, стало возможным гибко балансировать между качеством изображения и производительностью. Но параллельно улучшениям появилась главная проблема, преследующая все технологии временного масштабирования — гостинг. Она проявляется при быстром движении в виде остаточных силуэтов с прошлых кадров. А иногда вдобавок к этому возникает и мерцание текстур.
Однако минусы DLSS второго поколения со временем стали не такими явными. Ее алгоритм мог дорабатываться без внесения кардинальных изменений в принцип работы технологии, и в этом был главный плюс. В 2020 году дебютировала DLSS 2.1, которая принесла с собой режим сверхвысокой производительности за счет значительного снижения разрешения рендера. В 2021 году на смену ей пришли DLSS версий 2.2 и 2.3, улучшившие качество в движении. И, наконец, в 2022 году появились DLSS версий 2.4 и 2.5, с применением которых стало меньше проявляться мерцание и гостинг.
NVIDIA вынесла алгоритм работы DLSS в отдельный DLL-файл. Его можно заменить без внесения изменений в саму игру. Таким образом даже для старого проекта, уже не получающего обновления, можно задействовать актуальную и наиболее качественную версию технологии. Для этого достаточно лишь скачать и поместить в папку с игрой последнюю версию библиотеки DLSS. Но стоит учитывать, что в мультиплеерных играх античит-системы могут распознать такую манипуляцию как читерство.
DLSS 3.0
В сентябре 2022 года NVIDIA представила видеокарты серии RTX 4000. А с ними и очередное поколение технологии масштабирования — DLSS 3. Впрочем, называть ее так не совсем корректно. Теперь за повышение производительности отвечает не только масштабирование изображения, но и генерация промежуточных кадров Frame Generation, FG. Конвейер DLSS 3 может работать параллельно с DLSS 2, добавляя к ранее используемым этапам следующие:
Между двумя отрендеренными кадрами анализируется направление и скорость движения точек.
Данные сопоставляются с векторами движения, чтобы избежать ошибочных расчетов.
На основе этой информации нейросеть генерирует и вставляет между двух кадров промежуточный.
Скорость и направление движения точек анализирует специальный блок в видеокарте — ускоритель оптического потока Optical Flow Accelerator. В видеокартах RTX 4000 производительность ускорителя была заметно увеличена по сравнению с прошлыми поколениями: он научился работать с блоками размером 1х1 пиксель, по сути — с отдельными точками. Карты RTX 2000 и RTX 3000 такого не умеют, поэтому Frame Generation на них не поддерживается.
Генерация кадров имеет как светлые, так и темные стороны. В числе первых отсутствие упора в процессор, так как промежуточные кадры генерирует только видеокарта. Плюс к этому — практически двукратное увеличение производительности без необходимости снижать разрешение рендера.
Но и недостатков не меньше. При быстром движении информации от двух кадров часто не хватает для правильной генерации промежуточного, поэтому возникают артефакты.
А из-за того, что игровая логика продолжает работать на частоте рендера, возникает дополнительная задержка ввода. И хотя NVIDIA старается компенсировать ее технологией Reflex, предназначенной для синхронизации работы ЦП и ГП с целью уменьшить задержку, данное решение помогает лишь частично.
DLSS 3.5
В августе 2023 года NVIDIA представила DLSS 3.5. Это не продолжение классической DLSS, как можно было бы подумать, а скорее дополнение. Ее ключевой фишкой является Ray Reconstruction. Эта технология разработана специально для подавления шумов, возникающих при трассировке лучей. Подобная реконструкция позволяет восстанавливать кадры с трассированными отражениями, тенями и освещением заметно точнее, чем ранее.
Как заявляет NVIDIA, нейросеть для работы Ray Reconstruction обучалась на впятеро большем объеме данных, чем прошлые версии DLSS. Причем работает она, в отличие от генератора кадров, на всех картах семейства RTX — от 2000 до 4000 серии.
Выход DLSS 3.5 принес путаницу в ранее логичный список версий. Поэтому с его появлением NVIDIA стала упоминать классический DLSS 2 как DLSS Super Resolution, а бывший DLSS 3 — как DLSS Frame Generation. В последних играх можно встретить ползунки включения этих технологий именно под такими названиями. Ну, а сама DLSS 3.5 чаще упоминается как DLSS Ray Reconstruction.
Несмотря на общее название, каждая из следующих технологий DLSS работает независимо от другой:
DLSS Super Resolution (2.х): временное масштабирование. Поддерживается на любых картах RTX в огромном списке проектов, начиная с самых первых игр с поддержкой технологии и заканчивая самыми современными.
DLSS Frame Generation (3.0): генерация кадров. Работает только на картах серии RTX 4000. Список проектов с ее поддержкой меньше — основную массу составляют игры, выпущенные за последние пару лет.
DLSS Ray Reconstruction (3.5): реконструкция лучей. Поддерживается на любых картах RTX, но пока не особо распространена в играх. В числе поддерживаемых на ноябрь 2024 года: Cyberpunk 2077, Alan Wake 2, Portal RTX и Star Wars Outlaws. Стоит отметить, что работают новые алгоритмы восстановления картинки лишь при включении трассировки лучей — для классического рендеринга используются только приемы из DLSSx.
Прирост производительности
У разных поколений технологии прирост производительности отличается. Самая скромная в этом плане — DLSS первой версии, так как разрешение рендеринга у нее фиксированное и довольно высокое. В наиболее «тяжелом» разрешении 4К от нее можно было рассчитывать на 30-40 % дополнительной производительности.
Но даже при этом технология умудрялась выдавать не очень качественную картинку. Поэтому вскоре она канула в лету и была полностью заменена DLSS 2. У второго поколения появились несколько пресетов, прирост от которых разнится от нескольких десятков процентов до двукратного (как и у конкурирующей FSR 2.x ).
Чем выше разрешение, тем больше происходит упор в возможности ГП и тем больший прирост может дать DLSS. И наоборот: чем меньше разрешение экрана, тем меньший прирост обеспечивает технология. Если для 4K в случае с пресетом Performance практически двукратный прирост характерен, то в разрешении Full HD при тех же условиях он может быть заметно меньше. Старшие пресеты Balanced и Quality дают на 20-30 % меньше производительности в обоих случаях, но взамен обеспечивают более высокое качество картинки. DLSS 3 с генерацией кадров способна увеличить производительность еще вдвое. То есть, по сравнению c классическим рендером, связка из DLSS Super Resolution (2.x) и DLSS Frame Generation (3.0) способна увеличить частоту кадров до четырех раз. А в случае использования тяжелых пресетов трассировки лучей или трассировки пути — иногда и еще больше.
При этом не стоит забывать, что Frame Generation вносит задержку в управление. Использование генератора при исходной частоте ниже 35-40 кадров в секунду (в том числе полученных посредством DLSS Super Resolution) игровому процессу особо не поможет. Несмотря на кажущийся высокий FPS, управление будет «кисельным», препятствуя комфортному игровому процессу.
DLSS Ray Reconstruction (3.5) сама по себе не поднимает производительность, а лишь улучшает качество эффектов трассировки при задействовании DLSS Super Resolution (2.x) и DLSS Frame Generation (3.0). Однако оптимизации, применяемые в ней, в некоторых ситуациях могут слегка повысить FPS.
Заключение
Deep Learning Super Sampling — семейство технологий от компании NVIDIA, предназначенное для повышения производительности в играх. Закрытые разработки и заточенность под собственное «железо» позволяют им обеспечивать более высокое качество картинки, чем конкурирующие AMD FSR и Intel XeSS. Но в этом и главный минус DLSS: в отличие от соперников, она работает только на видеокартах NVIDIA.
В то же время доминирование NVIDIA на рынке видеокарт и ее широкие связи с разработчиками игр сыграли свою роль — из всех технологий масштабирования DLSS является самой распространенной.
Первая версия DLSS не блистала качеством и была скорее пробой пера. А вот DLSS второй версии, сегодня известная как DLSS Super Resolution, стала эталоном масштабирования и до сих пор используется во множестве игр как универсальный инструмент для повышения производительности.
DLSS 3 Frame Generation предлагает еще более высокую частоту кадров. Но взамен увеличивает задержку, что придется по душе не всем игрокам. И, наконец, DLSS 3.5 Ray Reconstruction — дополнение к технологиям увеличения производительности. Оно предназначено для совместной работы с ними, чтобы более качественно передавать эффекты трассировки лучей.