Deep learning super sampling
Суперсемплінг за допомогою глибокого навчання (англ. deep learning super sampling, DLSS) — технологія масштабування зображення, розроблена компанією Nvidia для використання в режимі реального часу у вибраних відеоіграх, за допомогою глибокого навчання для збільшення масштабу зображень з нижчою роздільною здатністю до більш високої роздільної здатності для відображення на моніторах з більш високою роздільною здатністю. Nvidia стверджує, що ця технологія збільшує масштаб зображень із якістю, подібною до якості зображення в рідній роздільній здатності, але з меншими навантаженнями на відеокарту, що забезпечує більш високі графічні налаштування та частоту кадрів для даної роздільної здатності.[1]
Станом на грудень 2020 року ця технологія доступна на графічних процесорах GeForce RTX 20 та GeForce RTX 30.
Історія
Історія релізів
Звільнення | Дата випуску | Основні моменти |
---|---|---|
1.0 | Лютий 2019 | Перша версія, що використовує ШІ та спеціально навчена для деяких конкретних ігор, зокрема Battlefield V та Metro Exodus[2] |
2.0 (перша ітерація) | Серпень 2019 | Перша версія 2.0, на яку також посилаються як версія 1.9, використовуючи приблизний ШІ незавершеної версії 2.0, що працює на ядрах шейдерів CUDA і спеціально пристосована для відеогри Control[3][4][5] |
2.0 (друга ітерація) | Квітень 2020 | Друга версія 2.0, з використанням ядер Tensor та загальним навчанням[6] |
Принцип роботи
В Nvidia команда DLSS знаходить кадри в грі з не згладженими краями, генерує для кожного кадра аналогічний але ідеально згладжений, використовуючи повноекранне згладжування на основі методів надмірної вибірки (MSAA) або змішаного рендеринга. Ці два кадра передаються суперкомп'ютеру NVIDIA, який навчає нейронну мережу DLSS розпізнавати не згладжені кадри і генерувати ідентичні зладжені кадри. Також нейронну мережу навчають генерувати пікселі, щоб збільшити розширення кадра. В результаті тензорні ядра в відеокарті отримують достатньо інформації для обробки кадра і створення згладженого кадра, час створення таких кадрів практично однаковий.
DLSS 1.0
Nvidia пояснила, що DLSS 1.0 працювала для кожного цільового ігрового зображення, генеруючи «ідеальний кадр», використовуючи традиційні супервибірки, а потім навчила нейронну мережу на цих отриманих зображеннях. На другому кроці модель була навчена розпізнавати псевдоніми вхідні дані на початковому результаті.
DLSS 2.0
DLSS 2.0 працює наступним чином:[7]
- Нейромережа навчена Nvidia з використанням «ідеальних» зображень відеоігор надвисокої роздільної здатності на суперкомп'ютерах і зображень низької роздільної здатності тих самих ігор. Результат зберігається на драйвері відеокарти. Кажуть, що Nvidia використовує сервери DGX-1 для навчання мережі.[8]
- Нейронна мережа, що зберігається на драйвері, порівнює фактичне зображення з низькою роздільною здатністю з еталонним та дає повний результат із високою роздільною здатністю. Вхідні дані, що використовуються навченою нейронною мережею, — це псевдоніми з низькою роздільною здатністю, що передаються ігровим механізмом, і вектори руху з низькою роздільною здатністю з тих самих зображень, також створені ігровим механізмом. Вектори руху повідомляють мережі, в якому напрямку об'єкти на сцені рухаються від кадру до кадру, щоб оцінити, як буде виглядати наступний кадр.[9]
Архітектура
DLSS доступний лише на графічних процесорах GeForce RTX 20 та GeForce RTX 30, у виділених ШІ-прискорювачах під назвою Tensor Cores.[10][11]
Ядра тензора (англ. tensor cores) доступні з часів мікроархітектури графічного процесора Nvidia Volta, яка вперше була використана в лінійці продуктів Tesla V100.[12] Їх специфіка полягає в тому, що кожне ядро Tensor працює на 16 бітах з матрицями з плаваючою комою 4 x 4 і, розроблено для використання на рівні CUDA C++, навіть на рівні компілятора.[13]
Ядра Tensor використовують примітиви CUDA Warp-Level на 32 паралельних потоках, щоб скористатися перевагами їх паралельної архітектури.[14] Деформація — набір із 32 потоків, які налаштовані на виконання тієї самої інструкції.
Критика
Вихід відеокарт Nvidia RTX зустрів багато критики. Технологія DXR повинна була зробити великий крок вперед в ігровій графіці, адже кадри які показала Nvidia на презентації свого нового покоління відеокарт виглядали красиво і реалістично. За словами Хуанга Технологія DXR не мала впливати на FPS, а DLSS повинна збільшити FPS, адже дані технології працюють на окремих тензорних ядрах відеокарти. З виходом 20-го покоління відеокарт виявилось, що ігор, які підтримують DXR і DLSS, немає. Першою грою з підтримкою даних технологій стала Battlefield 5, але увімкнення технології DXR у перших версіях гри Battlefield 5 зменшувало FPS у середньому на 30 кадрів, а увімкнення технології DLSS не збільшувало FPS у порівнянні з іншими методами згладжування. Виправити ситуацію вдалось лише співпрацею з розробниками ігор і новими версіями драйверів.
Див. також
- Масштабування зображень
- Глибоке навчання
- Тензорний блок обробки — спеціальна інтегральна схема (ASIC), прискорювач ШІ, розроблена Google
Примітки
- Nvidia RTX DLSS: Everything you need to know (англійською). Digital Trends. 14 лютого 2020. Процитовано 5 квітня 2020. «Deep learning super sampling uses artificial intelligence and machine learning to produce an image that looks like a higher-resolution image, without the rendering overhead. Nvidia’s algorithm learns from tens of thousands of rendered sequences of images that were created using a supercomputer. That trains the algorithm to be able to produce similarly beautiful images, but without requiring the graphics card to work as hard to do it.»
- Battlefield V DLSS Tested: Overpromised, Underdelivered. techspot.com. 19 лютого 2019. Процитовано 6 квітня 2020. «Of course, this is to be expected. DLSS was never going to provide the same image quality as native 4K, while providing a 37% performance uplift. That would be black magic. But the quality difference comparing the two is almost laughable, in how far away DLSS is from the native presentation in these stressful areas.»
- Remedy's Control vs DLSS 2.0 – AI upscaling reaches the next level. Eurogamer. 4 квітня 2020. Процитовано 5 квітня 2020. «Of course, this isn't the first DLSS implementation we've seen in Control. The game shipped with a decent enough rendition of the technology that didn't actually use the machine learning»
- Nvidia DLSS in 2020: stunning results. techspot.com. 26 лютого 2020. Процитовано 5 квітня 2020.
- Edelsten, Andrew (30 серпня 2019). NVIDIA DLSS: Control and Beyond. nividia.com. Процитовано 11 серпня 2020. «we developed a new image processing algorithm that approximated our AI research model and fit within our performance budget. This image processing approach to DLSS is integrated into Control»
- NVIDIA DLSS 2.0 Review with Control – Is This Magic?. techquila.co.in. 5 квітня 2020. Процитовано 6 квітня 2020.
- NVIDIA's Deep Learning Super Sampling (DLSS) 2.0 Technology Is The Real Deal. Forbes. 29 березня 2020. Процитовано 7 квітня 2020.
- NVIDIA DLSS 2.0: A Big Leap In AI Rendering. Nvidia. 23 березня 2020. Процитовано 25 листопада 2020.
- NVIDIA DLSS 2.0: A Big Leap In AI Rendering. Nvidia. 23 березня 2020. Процитовано 7 квітня 2020.
- NVIDIA DLSS 2.0: A Big Leap In AI Rendering. Nvidia. 23 березня 2020. Процитовано 7 квітня 2020.
- NVIDIA TENSOR CORES. Nvidia. Процитовано 7 квітня 2020.
- On Tensors, Tensorflow, And Nvidia's Latest 'Tensor Cores'. tomshardware.com. 11 квітня 2017. Процитовано 8 квітня 2020.
- The NVIDIA Titan V Deep Learning Deep Dive: It's All About The Tensor Cores. AnandTech. 3 липня 2018. Процитовано 8 квітня 2020.
- Using CUDA Warp-Level Primitives. Nvidia. 15 січня 2018. Процитовано 8 квітня 2020. «NVIDIA GPUs execute groups of threads known as warps in SIMT (Single Instruction, Multiple Thread) fashion»