Страница 1: AMD FidelityFX Super Resolution: тест производительности и качества картинки

amd-ffxssДолгожданная технология FidelityFX Super Resolution (FSR), которая призвана стать альтернативой NVIDIA Deep Learning Super Sampling (DLSS), стартует сегодня. Мы смогли познакомиться с технологией заранее, а также получили некоторые подробности технической реализации. Драйвер, который активирует FSR в нескольких играх, тоже доступен, поэтому каждый может составить собственное впечатление, начиная с сегодняшнего дня.

Во многом AMD выбрала иной путь, нежели конкурент. Из FSR не планируется делать проприетарную технологию ни по аппаратной поддержке, ни по программной. То есть FSR является частью GPUOpen, каждый заинтересованный разработчик может использовать данную технологию. Привязки к каким-либо GPU нет. И видеокарты GeForce с поддержкой FSR стали для всех сюрпризом. Технология NVIDIA DLSS ограничена видеокартами GeForce RTX 20 и 30, но AMD FSR должна работать даже на APU с интегрированной графикой.

Причина разработки FSR та же, что и DLSS: некоторые игры требуют высокой производительности fps, а эффекты трассировки значительно увеличивают требования к производительности. Здесь как раз помогают такие технологии, как DLSS и теперь FSR. Впрочем, как показала первая реализация DLSS, с качеством картинки бывает не все гладко. Какой смысл добавлять в игру новые эффекты, которые будут размываться некачественным фильтром? С новой версией DLSS 2.0 NVIDIA добавила временной компонент к вычислениям, поэтому DLSS больше не приводит к падению качества картинки в режиме Quality.

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

Чтобы получить прирост производительности, AMD уменьшает внутреннее разрешение рендеринга, поэтому видеокарта дает больше кадров в секунду при меньшем разрешении. Готовый кадр затем масштабируется до целевого разрешения, повышается резкость и детализация через FidelityFX, при этом теряется минимум нюансов. NVIDIA для DLSS тоже снижает разрешение рендеринга.

Подписывайтесь на группы Hardwareluxx ВКонтакте и Facebook, а также на наш канал в Telegram (@hardwareluxxrussia).

В таблице ниже приведены разные внутренние разрешения рендеринга в четырех режимах качества FSR при выходном разрешении 3.840 x 2.160 пикселей и 2.560 x 1.440 пикселей.

Внутреннее разрешение и масштабирование FSR

2160p 1440p
Ultra Quality 2.954 x 1.662 пикселей1,3x 1.970 x 1.108 пикселей1,3x
Quality 2.560 x 1440 пикселей1,5x 1.706 x 960 пикселей1,5x
Balanced 2.259 x 1.270 пикселей1,7x 1.506 x 847 пикселей1,7x
Performance 1.920 x 1.080 пикселей2,0x 1.280 x 720 пикселей2,0x

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

AMD использует только пространственный алгоритм, но не временной. То есть в качестве исходных материалов поступают кадры низкого разрешения с TAA, FXAA и MSAA. У того же NVIDIA DLSS добавляется еще и временной компонент (в расчете учитываются предыдущие кадры), что позволяет снизить число артефактов на движущихся объектах. Алгоритм сканирует кадр на наличие границ и кромок, после чего воссоздает их в варианте с высоким разрешением. FSR не имеет буферов кадров в родном разрешении. Но здесь AMD может внести улучшения в работу FSR в будущем.

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

AMD привела некоторые тесты. Они показывают прирост производительности FSR для Radeon RX 6900 XT, Radeon RX 6800 XT и Radeon RX 6700 XT.

Но AMD подчеркивает, что FSR лучше работает на старых видеокартах, поэтому технология более интересна для владельцев моделей возрастом 2-3 года. В качестве примера была взята Radeon RX 580, и в случае FSR частота кадров увеличилась на 50-80%.

Есть и демонстрация FSR на видеокартах GeForce. На той же GeForce GTX 1060 частота кадров после добавления FSR увеличилась на 50-80%. Поддерживаются следующие видеокарты:

  • Radeon RX 6000 и 6000M
  • Radeon RX 5000 и 5000M
  • Radeon RX Vega
  • Radeon RX 500
  • Radeon RX 480, 470 и 460
  • Ryzen 2000 и встроенная графика
  • Ryzen 4000 и встроенная графика
  • Ryzen 5000 и встроенная графика
  • GeForce RTX 30
  • GeForce RTX 20
  • GeForce GTX 10 и 16

С сегодняшним анонсом FSR поддерживается следующими играми:

  • Godfall
  • Rift Breaker
  • 22nd Century Racing Series
  • Anno 1800
  • Evil Genius 2 World Domination
  • Terminator Resistance
  • Kingshunt

В ближайшем будущем появится поддержка FSR в играх:

  • Far Cry 6
  • Resident Evil Village
  • Forspoken
  • Myst
  • DOTA 2
  • Baldurs Gate
  • Farming Simulator 22
  • Astergos
  • Vampire Blood Hunt

AMD работает с многочисленными разработчиками игр и движков, чтобы вынести FSR в массы как можно быстрее. Пока что выбор игр не такой большой. NVIDIA на данный момент предлагает гораздо более широкую поддержку DLSS, и в ближайшие недели список игр увеличится.

Отличия между FSR и DLSS

С технологией FSR AMD все же берет иной подход, нежели NVIDIA с DLSS. NVIDIA использует проприетарную технологию, которая работает только на видеокартах GeForce RTX, AMD же продвигает открытую концепцию, FSR работает не только на видеокартах AMD, но и на GPU NVIDIA. Впрочем, реализация тоже разная. AMD использует только пространственное масштабирование без временных компонентов (таких как векторы движения на основе предыдущих кадров). Кроме того, AMD не опирается на искусственный интеллект, полагаясь на алгоритм FidelityFX Contrast Adaptive Sharpening (CAS) для восстановления деталей.

Кадр рассчитывается в низком разрешении, после чего масштабируется (Upscaling pass) и проходит через фильтр резкости (Sharpening pass) с задействованием сглаживания и Tone Mapping. На следующем этапе конвейера добавляются новые эффекты пост-обработки, затем кадр выводится на монитор. AMD для всех вычислений использует шейдеры видеокарты, по этой причине FSR работает и на видеокартах с NVIDIA GPU, а позднее, возможно, и на Intel GPU. AMD выбрала довольно классический подход масштабирования с FSR, что обеспечит максимально широкую аппаратную поддержку. FSR не использует данные из предыдущих кадров, а также не задействует нейросеть для вывода картинки в высоком разрешении. Но AMD все равно надеется получить примерно сравнимое качество картинки.

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

NVIDIA называет свою сеть глубокого обучения DLSS Convolutional Autoencoder. В качестве входных данных в сеть поступают данные с видеокарт NVIDIA (в низком разрешении по сравнению с целевым) и идеальные кадры. Они рассчитываются на суперкомпьютере NVIDIA с 64x суперсемплингом (64xAA). Что позволяет постоянно генерировать новые данные для тренировки, позволяющие NVIDIA непрерывно улучшать DLSS. И данные улучшения добавляются в игру с новыми версиями DLSS. Последняя версия DLSS 2.2 на сегодня используется в Rainbow Six: Siege. Для инференса в сеть глубокого обучения используются ядра Tensor на Ampere GPU. Для DLSS 1.9 NVIDIA также разработала версию с потоковыми процессорами, которая дала сравнимый хороший результат. Но NVIDIA уверена, что наилучшие результаты можно получить только с ядрами Tensor видеокарт GeForce RTX. Данные для тренировки сети глубокого обучения были получены с суперсемплингом 64x, поэтому кадр 2K с масштабированием до UHD может дать даже лучший результат, чем родное разрешение UHD.

В итоге алгоритм DLSS является специализированным и временным фильтром масштабирования. Результат не всегда сравним с прямым рендерингом в родном разрешении, но он приближается к нему в зависимости от информации в сети глубокого обучения и оптимизаций. С версии DLSS 2.0 добавилась временная компонента. Циклическая обработка кадров позволяет улучшить качество картинки. В частности, для первых версий DLSS проблемы представляли мелкие движущиеся объекты. И временная отдача позволила значительно улучшить качество.