Deep learning super sampling

Last updated

Deep learning super sampling (DLSS) is a family of real-time deep learning image enhancement and upscaling technologies developed by Nvidia that are exclusive to its RTX line of graphics cards, [1] and available in a number of video games. The goal of these technologies is to allow the majority of the graphics pipeline to run at a lower resolution for increased performance, and then infer a higher resolution image from this that approximates the same level of detail as if the image had been rendered at this higher resolution. This allows for higher graphical settings and/or frame rates for a given output resolution, depending on user preference. [2]

Contents

As of September 2022, the 1st and 2nd generation of DLSS are available on all RTX branded cards from Nvidia in supported titles, while the 3rd generation unveiled at Nvidia's GTC 2022 event is exclusive to Ada Lovelace generation RTX 40 series graphics cards. [3] Nvidia has also introduced Deep learning dynamic super resolution (DLDSR), a related and opposite technology where the graphics are rendered at a higher resolution, then downsampled to the native display resolution using an AI-assisted downsampling algorithm to achieve higher image quality than rendering at native resolution. [4]

History

Nvidia advertised DLSS as a key feature of the GeForce 20 series cards when they launched in September 2018. [5] At that time, the results were limited to a few video games (namely Battlefield V [6] and Metro Exodus) because the algorithm had to be trained specifically on each game on which it was applied and the results were usually not as good as simple resolution upscaling. [7] [8]

In 2019, the video game Control shipped with ray tracing and an improved version of DLSS, which did not use the Tensor Cores. [9] [10]

In April 2020, Nvidia advertised and shipped an improved version of DLSS named DLSS 2.0 with driver version 445.75. DLSS 2.0 was available for a few existing games including Control and Wolfenstein: Youngblood , and would later be added to many newly released games and game engines such as Unreal Engine [11] and Unity. [12] This time Nvidia said that it used the Tensor Cores again, and that the AI did not need to be trained specifically on each game. [5] [13] Despite sharing the DLSS branding, the two iterations of DLSS differ significantly and are not backwards-compatible. [14] [15]

Release history

ReleaseRelease dateHighlights
1.0February 2019Predominantly spatial image upscaler, required specifically trained for each game integration, included in Battlefield V and Metro Exodus, among others [6]
"1.9" (unofficial name)August 2019DLSS 1.0 adapted for running on the CUDA shader cores instead of tensor cores, used for Control [9] [5] [16]
2.0April 2020An AI accelerated form of TAAU using Tensor Cores, and trained generically [17]
3.0September 2022DLSS 3.0, augmented with an optical flow frame-generation algorithm (only available on RTX 40-series GPUs) to double framerate [3] [18]
3.5September 2023DLSS 3.5 adds ray reconstruction, replacing multiple denoising algorithms with a single AI model trained on five times more data than DLSS 3. [19] [18]

Quality presets

Standard DLSS presets [20]
Quality preset [lower-alpha 1] Scale factor [lower-alpha 2] Render scale [lower-alpha 3]
Ultra Quality unused1.32x76.0%
Quality1.50x66.7%
Balanced1.72x58.0%
Performance2.00x50.0%
Ultra Performance since v2.13.00x33.3%
  1. The algorithm does not necessarily need to be implemented using these presets; it is possible for the implementer to define custom input and output resolutions.
  2. The linear scale factor used for upsampling the input resolution to the output resolution. For example, a scene rendered at 540p with a 2.00x scale factor would have an output resolution of 1080p.
  3. The linear render scale, compared to the output resolution, that the technology uses to render scenes internally before upsampling. For example, a 1080p scene with a 50% render scale would have an internal resolution of 540p.

Implementation

DLSS 1.0

The first iteration of DLSS is a predominantly spatial image upscaler with two stages, both relying on convolutional auto-encoder neural networks. [21] The first step is an image enhancement network which uses the current frame and motion vectors to perform edge enhancement, and spatial anti-aliasing. The second stage is an image upscaling step which uses the single raw, low-resolution frame to upscale the image to the desired output resolution. Using just a single frame for upscaling means the neural network itself must generate a large amount of new information to produce the high resolution output, this can result in slight hallucinations such as leaves that differ in style to the source content. [14]

The neural networks are trained on a per-game basis by generating a "perfect frame" using traditional supersampling to 64 samples per pixel, as well as the motion vectors for each frame. The data collected must be as comprehensive as possible, including as many levels, times of day, graphical settings, resolutions, etc. as possible. This data is also augmented using common augmentations such as rotations, colour changes, and random noise to help generalize the test data. Training is performed on Nvidia's Saturn V supercomputer. [15] [22]

This first iteration received a mixed response, with many criticizing the often soft appearance and artifacts in certain situations; [23] [7] [6] likely a side effect of the limited data from only using a single frame input to the neural networks which could not be trained to perform optimally in all scenarios and edge-cases. [14] [15]

Nvidia also demonstrated the ability for the auto-encoder networks to learn the ability to recreate depth-of-field and motion blur, [15] although this functionality has never been included in a publicly released product. [ citation needed ]

DLSS 2.0

DLSS 2.0 is a temporal anti-aliasing upsampling (TAAU) implementation, using data from previous frames extensively through sub-pixel jittering to resolve fine detail and reduce aliasing. The data DLSS 2.0 collects includes: the raw low-resolution input, motion vectors, depth buffers, and exposure / brightness information. [14] It can also be used as a simpler TAA implementation where the image is rendered at 100% resolution, rather than being upsampled by DLSS, Nvidia brands this as DLAA (Deep Learning Anti-Aliasing). [24]

TAA(U) is used in many modern video games and game engines, [25] however all previous implementations have used some form of manually written heuristics to prevent temporal artifacts such as ghosting and flickering. One example of this is neighborhood clamping which forcefully prevents samples collected in previous frames from deviating too much compared to nearby pixels in newer frames. This helps to identify and fix many temporal artifacts, but deliberately removing fine details in this way is analogous to applying a blur filter, and thus the final image can appear blurry when using this method. [14]

DLSS 2.0 uses a convolutional auto-encoder neural network [23] trained to identify and fix temporal artifacts, instead of manually programmed heuristics as mentioned above. Because of this, DLSS 2.0 can generally resolve detail better than other TAA and TAAU implementations, while also removing most temporal artifacts. This is why DLSS 2.0 can sometimes produce a sharper image than rendering at higher, or even native resolutions using traditional TAA. However, no temporal solution is perfect, and artifacts (ghosting in particular) are still visible in some scenarios when using DLSS 2.0.

Because temporal artifacts occur in most art styles and environments in broadly the same way, the neural network that powers DLSS 2.0 does not need to be retrained when being used in different games. Despite this, Nvidia does frequently ship new minor revisions of DLSS 2.0 with new titles, [26] so this could suggest some minor training optimizations may be performed as games are released, although Nvidia does not provide changelogs for these minor revisions to confirm this.

The main advancements compared to DLSS 1.0 include: Significantly improved detail retention, a generalized neural network that does not need to be re-trained per-game, and ~2x less overhead (~1-2 ms vs ~2-4 ms). [14]

It should also be noted that forms of TAAU such as DLSS 2.0 are not upscalers in the same sense as techniques such as ESRGAN or DLSS 1.0, which attempt to create new information from a low-resolution source; instead, TAAU works to recover data from previous frames, rather than creating new data. In practice, this means low resolution textures in games will still appear low-resolution when using current TAAU techniques. This is why Nvidia recommends game developers use higher resolution textures than they would normally for a given rendering resolution by applying a mip-map bias when DLSS 2.0 is enabled. [14]

DLSS 3.0

Augments DLSS 2.0 by making use of motion interpolation. The DLSS frame generation algorithm takes two rendered frames from the rendering pipeline and generates a new frame that smoothly transitions between them. So for every frame rendered, one additional frame is generated. [3]

DLSS 3.0 makes use of a new generation Optical Flow Accelerator (OFA) included in Ada Lovelace generation RTX GPUs. The new OFA is faster and more accurate than the OFA already available in previous Turing and Ampere RTX GPUs. [27] This results in DLSS 3.0 being exclusive for the RTX 40 Series.

At release, DLSS 3.0 does not work for VR displays.[ citation needed ]

DLSS 3.5

DLSS 3.5 adds ray reconstruction, replacing multiple denoising algorithms with a single AI model trained on five times more data than DLSS 3. Ray reconstruction will be available on all RTX GPUs and will first target games with path tracing (aka "full ray tracing"), including Cyberpunk 2077's Phantom Liberty DLC, Portal with RTX , and Alan Wake 2 . [19] [18]

Anti-aliasing

DLSS requires and applies its own anti-aliasing method.

It operates on similar principles to TAA. Like TAA, it uses information from past frames to produce the current frame. Unlike TAA, DLSS does not sample every pixel in every frame. Instead, it samples different pixels in different frames and uses pixels sampled in past frames to fill in the unsampled pixels in the current frame. DLSS uses machine learning to combine samples in the current frame and past frames, and it can be thought of as an advanced and superior TAA implementation made possible by the available tensor cores. [14]

Nvidia offers deep learning anti-aliasing (DLAA). DLAA provides the same AI-driven anti-aliasing DLSS uses, but without any upscaling or downscaling functionality.

Architecture

With the exception of the shader-core version implemented in Control, DLSS is only available on GeForce RTX 20, GeForce RTX 30, GeForce RTX 40, and Quadro RTX series of video cards, using dedicated AI accelerators called Tensor Cores. [23] [ failed verification ] Tensor Cores are available since the Nvidia Volta GPU microarchitecture, which was first used on the Tesla V100 line of products. [28] They are used for doing fused multiply-add (FMA) operations that are used extensively in neural network calculations for applying a large series of multiplications on weights, followed by the addition of a bias. Tensor cores can operate on FP16, INT8, INT4, and INT1 data types. Each core can do 1024 bits of FMA operations per clock, so 1024 INT1, 256 INT4, 128 INT8, and 64 FP16 operations per clock per tensor core, and most Turing GPUs have a few hundred tensor cores. [29]

The Tensor Cores use CUDA Warp-Level Primitives on 32 parallel threads to take advantage of their parallel architecture. [30] A Warp is a set of 32 threads which are configured to execute the same instruction.

See also

Related Research Articles

<span class="mw-page-title-main">GeForce</span> Brand of GPUs by Nvidia

GeForce is a brand of graphics processing units (GPUs) designed by Nvidia and marketed for the performance market. As of the GeForce 40 series, there have been eighteen iterations of the design. The first GeForce products were discrete GPUs designed for add-on graphics boards, intended for the high-margin PC gaming market, and later diversification of the product line covered all tiers of the PC graphics market, ranging from cost-sensitive GPUs integrated on motherboards, to mainstream add-in retail boards. Most recently, GeForce technology has been introduced into Nvidia's line of embedded application processors, designed for electronic handhelds and mobile handsets.

<span class="mw-page-title-main">Graphics processing unit</span> Specialized electronic circuit; graphics accelerator

A graphics processing unit (GPU) is a specialized electronic circuit initially designed to accelerate computer graphics and image processing. After their initial design, GPUs were found to be useful for non-graphic calculations involving embarrassingly parallel problems due to their parallel structure. Other non-graphical uses include the training of neural networks and cryptocurrency mining.

<span class="mw-page-title-main">Scalable Link Interface</span> Brand name; multi-GPU technology by Nvidia

Scalable Link Interface (SLI) is the brand name for a now discontinued multi-GPU technology developed by Nvidia for linking two or more video cards together to produce a single output. SLI is a parallel processing algorithm for computer graphics, meant to increase the available processing power.

<span class="mw-page-title-main">Quadro</span> Brand of Nvidia graphics cards used in workstations

Quadro was Nvidia's brand for graphics cards intended for use in workstations running professional computer-aided design (CAD), computer-generated imagery (CGI), digital content creation (DCC) applications, scientific calculations and machine learning from 2000 to 2020.

<span class="mw-page-title-main">Image scaling</span> Changing the resolution of a digital image

In computer graphics and digital imaging, imagescaling refers to the resizing of a digital image. In video technology, the magnification of digital material is known as upscaling or resolution enhancement.

Temporal anti-aliasing (TAA) is a spatial anti-aliasing technique for computer-generated video that combines information from past frames and the current frame to remove jaggies in the current frame. In TAA, each pixel is sampled once per frame but in each frame the sample is at a different location within the pixel. Pixels sampled in past frames are blended with pixels sampled in the current frame to produce an anti-aliased image. Although this method makes TAA achieve a result comparable to supersampling, the technique inevitably causes ghosting and blurriness to the image.

<span class="mw-page-title-main">CUDA</span> Parallel computing platform and programming model

Compute Unified Device Architecture (CUDA) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated general-purpose processing, an approach called general-purpose computing on GPUs (GPGPU). CUDA API and its runtime: The CUDA API is an extension of the C programming language that adds the ability to specify thread-level parallelism in C and also to specify GPU device specific operations (like moving data between the CPU and the GPU). CUDA is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements for the execution of compute kernels. In addition to drivers and runtime kernels, the CUDA platform includes compilers, libraries and developer tools to help programmers accelerate their applications.

<span class="mw-page-title-main">Volta (microarchitecture)</span> GPU microarchitecture by Nvidia

Volta is the codename, but not the trademark, for a GPU microarchitecture developed by Nvidia, succeeding Pascal. It was first announced on a roadmap in March 2013, although the first product was not announced until May 2017. The architecture is named after 18th–19th century Italian chemist and physicist Alessandro Volta. It was Nvidia's first chip to feature Tensor Cores, specially designed cores that have superior deep learning performance over regular CUDA cores. The architecture is produced with TSMC's 12 nm FinFET process. The Ampere microarchitecture is the successor to Volta.

<span class="mw-page-title-main">GPUOpen</span> Middleware software suite

GPUOpen is a middleware software suite originally developed by AMD's Radeon Technologies Group that offers advanced visual effects for computer games. It was released in 2016. GPUOpen serves as an alternative to, and a direct competitor of Nvidia GameWorks. GPUOpen is similar to GameWorks in that it encompasses several different graphics technologies as its main components that were previously independent and separate from one another. However, GPUOpen is partially open source software, unlike GameWorks which is proprietary and closed.

A vision processing unit (VPU) is an emerging class of microprocessor; it is a specific type of AI accelerator, designed to accelerate machine vision tasks.

<span class="mw-page-title-main">Nvidia RTX</span> Development platform for rendering graphics

Nvidia RTX is a professional visual computing platform created by Nvidia, primarily used in workstations for designing complex large-scale models in architecture and product design, scientific visualization, energy exploration, and film and video production, as well as being used in mainstream PCs for gaming.

<span class="mw-page-title-main">GeForce 20 series</span> Series of GPUs by Nvidia

The GeForce 20 series is a family of graphics processing units developed by Nvidia. Serving as the successor to the GeForce 10 series, the line started shipping on September 20, 2018, and after several editions, on July 2, 2019, the GeForce RTX Super line of cards was announced.

<span class="mw-page-title-main">Turing (microarchitecture)</span> GPU microarchitecture by Nvidia

Turing is the codename for a graphics processing unit (GPU) microarchitecture developed by Nvidia. It is named after the prominent mathematician and computer scientist Alan Turing. The architecture was first introduced in August 2018 at SIGGRAPH 2018 in the workstation-oriented Quadro RTX cards, and one week later at Gamescom in consumer GeForce 20 series graphics cards. Building on the preliminary work of Volta, its HPC-exclusive predecessor, the Turing architecture introduces the first consumer products capable of real-time ray tracing, a longstanding goal of the computer graphics industry. Key elements include dedicated artificial intelligence processors and dedicated ray tracing processors. Turing leverages DXR, OptiX, and Vulkan for access to ray tracing. In February 2019, Nvidia released the GeForce 16 series GPUs, which utilizes the new Turing design but lacks the RT and Tensor cores.

<span class="mw-page-title-main">GeForce 30 series</span> GPU series by Nvidia

The GeForce 30 series is a suite of graphics processing units (GPUs) designed and marketed by Nvidia, succeeding the GeForce 20 series. The GeForce 30 series is based on the Ampere architecture, which features Nvidia's second-generation ray tracing (RT) cores and third-generation Tensor Cores. Through Nvidia RTX, hardware-enabled ray tracing is possible on GeForce 30 series cards.

<span class="mw-page-title-main">Intel Arc</span> Graphics processing unit brand

Intel Arc is a brand of graphics processing units designed by Intel. These are discrete GPUs mostly marketed for the high-margin PC gaming market. The brand also covers Intel's consumer graphics software and services.

RTX Video Super Resolution is a video-upscaling feature released by Nvidia on February 28, 2023.

Deep learning anti-aliasing (DLAA) is a form of spatial anti-aliasing created by Nvidia. DLAA depends on and requires Tensor Cores available in Nvidia RTX cards.

<span class="mw-page-title-main">GeForce 40 series</span> Series of graphics processing units developed by Nvidia

The GeForce 40 series is a family of graphics processing units developed by Nvidia, succeeding the GeForce 30 series. The series was announced on September 20, 2022, at the GPU Technology Conference (GTC) 2022 event.

Ada Lovelace, also referred to simply as Lovelace, is a graphics processing unit (GPU) microarchitecture developed by Nvidia as the successor to the Ampere architecture, officially announced on September 20, 2022. It is named after the English mathematician Ada Lovelace, one of the first computer programmers. Nvidia announced the architecture along with the GeForce RTX 40 series consumer GPUs and the RTX 6000 Ada Generation workstation graphics card. The Lovelace architecture is fabricated on TSMC's custom 4N process which offers increased efficiency over the previous Samsung 8 nm and TSMC N7 processes used by Nvidia for its previous-generation Ampere architecture.

References

  1. "NVIDIA DLSS Technology for Incredible Performance". NVIDIA. Retrieved 2022-02-07.
  2. "Nvidia RTX DLSS: Everything you need to know". Digital Trends. 2020-02-14. Retrieved 2020-04-05. 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.
  3. 1 2 3 "Introducing NVIDIA DLSS 3". NVIDIA. Retrieved 2022-09-20.
  4. Archer, James (17 January 2022). "Nvidia DLDSR tested: better visuals and better performance than DSR". Rock Paper Shotgun. Retrieved 23 February 2022.
  5. 1 2 3 "Nvidia DLSS in 2020: stunning results". techspot.com. 2020-02-26. Retrieved 2020-04-05.
  6. 1 2 3 "Battlefield V DLSS Tested: Overpromised, Underdelivered". techspot.com. 2019-02-19. Retrieved 2020-04-06. 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.
  7. 1 2 "AMD Thinks NVIDIA DLSS is not Good Enough; Calls TAA & SMAA Better Alternatives". techquila.co.in. 2019-02-15. Retrieved 2020-04-06. Recently, two big titles received NVIDIA DLSS support, namely Metro Exodus and Battlefield V. Both these games come with NVIDIA's DXR (DirectX Raytracing) implementation that at the moment is only supported by the GeForce RTX cards. DLSS makes these games playable at higher resolutions with much better frame rates, although there is a notable decrease in image sharpness. Now, AMD has taken a jab at DLSS, saying that traditional AA methods like SMAA and TAA "offer superior combinations of image quality and performance."
  8. "Nvidia Very Quietly Made DLSS A Hell Of A Lot Better". Kotaku. 2020-02-22. Retrieved 2020-04-06. The benefit for most people is that, generally, DLSS comes with a sizeable FPS improvement. How much varies from game to game. In Metro Exodus, the FPS jump was barely there and certainly not worth the bizarre hit to image quality.
  9. 1 2 "Remedy's Control vs DLSS 2.0 – AI upscaling reaches the next level". Eurogamer. 2020-04-04. Retrieved 2020-04-05. 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 machine learning
  10. "NVIDIA DLSS 2.0 Update Will Fix The GeForce RTX Cards' Big Mistake". techquila.co.in. 2020-03-24. Retrieved 2020-04-06. As promised, NVIDIA has updated the DLSS network in a new GeForce update that provides better, sharper image quality while still retaining higher framerates in raytraced games. While the feature wasn't used as well in its first iteration, NVIDIA is now confident that they have successfully fixed all the issues it had before
  11. "NVIDIA DLSS Plugin and Reflex Now Available for Unreal Engine". NVIDIA Developer Blog. 2021-02-11. Retrieved 2022-02-07.
  12. "NVIDIA DLSS Natively Supported in Unity 2021.2". NVIDIA Developer Blog. 2021-04-14. Retrieved 2022-02-07.
  13. "HW News - Crysis Remastered Ray Tracing, NVIDIA DLSS 2, Ryzen 3100 Rumors". 2020-04-19. Archived from the original on 2020-09-26. Retrieved 2020-04-19. The original DLSS required training the AI network for each new game. DLSS 2.0 trains using non-game-specific content, delivering a generalized network that works across games. This means faster game integrations, and ultimately more DLSS games.
  14. 1 2 3 4 5 6 7 8 Edward Liu, NVIDIA "DLSS 2.0 - Image Reconstruction for Real-time Rendering with Deep Learning"
  15. 1 2 3 4 "Truly Next-Gen: Adding Deep Learning to Games & Graphics (Presented by NVIDIA)". www.gdcvault.com. Retrieved 2022-02-07.
  16. Edelsten, Andrew (30 August 2019). "NVIDIA DLSS: Control and Beyond". nividia.com. Retrieved 11 August 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
  17. "NVIDIA DLSS 2.0 Review with Control – Is This Magic?". techquila.co.in. 2020-04-05. Retrieved 2020-04-06.
  18. 1 2 3 "Nvidia's new DLSS 3.5 works on all RTX GPUs to improve the quality of ray tracing". The Verge. 22 August 2023. Retrieved 6 September 2023.
  19. 1 2 "Nvidia announces DLSS 3.5 with ray reconstruction, boosting RT quality with an AI-trained denoiser". EuroGamer. 23 August 2023. Retrieved 6 September 2023.
  20. "NVIDIA preparing Ultra Quality mode for DLSS, 2.2.9.0 version spotted". VideoCardz.com. Retrieved 2021-07-06.
  21. "DLSS: What Does It Mean for Game Developers?". NVIDIA Developer Blog. 2018-09-19. Retrieved 2022-02-07.
  22. "NVIDIA DLSS: Your Questions, Answered". Nvidia. 2019-02-15. Retrieved 2020-04-19. The DLSS team first extracts many aliased frames from the target game, and then for each one we generate a matching "perfect frame" using either super-sampling or accumulation rendering. These paired frames are fed to NVIDIA's supercomputer. The supercomputer trains the DLSS model to recognize aliased inputs and generate high-quality anti-aliased images that match the "perfect frame" as closely as possible. We then repeat the process, but this time we train the model to generate additional pixels rather than applying AA. This has the effect of increasing the resolution of the input. Combining both techniques enables the GPU to render the full monitor resolution at higher frame rates.
  23. 1 2 3 "NVIDIA DLSS 2.0: A Big Leap In AI Rendering". Nvidia. 2020-03-23. Retrieved 2020-04-07.
  24. "What is Nvidia DLAA? An Anti-Aliasing Explainer". Digital Trends. 2021-09-28. Retrieved 2022-02-10.
  25. Temporal AA small Cloud Front
  26. "NVIDIA DLSS DLL (2.3.7) Download". TechPowerUp. Retrieved 2022-02-10.
  27. "NVIDIA Optical Flow SDK". NVIDIA Developer. 2018-11-29. Retrieved 2022-09-20.
  28. "On Tensors, Tensorflow, And Nvidia's Latest 'Tensor Cores'". tomshardware.com. 2017-04-11. Retrieved 2020-04-08.
  29. "TENSOR CORE DL PERFORMANCE GUIDE" (PDF). Nvidia. Archived (PDF) from the original on 2020-11-11.
  30. "Using CUDA Warp-Level Primitives". Nvidia. 2018-01-15. Retrieved 2020-04-08. NVIDIA GPUs execute groups of threads known as warps in SIMT (Single Instruction, Multiple Thread) fashion