NVENC performance across Turing/Ampere GPUs

Sinapse

New Member
I am having a hard time understanding how the hardware for NVENC encoding is structured on a graphics card in the same family and whether or not there is an appreciable difference in encoding performance between a 1660 SUPER and a 3080, as an example. I understand that there are different NVENC generations. Please ignore gaming performance.

My question really boils down to: does the hardware for NVENC vary between GPUs in the same family?

It looks like this means it doesn't matter: Video Encode and Decode GPU Support Matrix [NEW] | NVIDIA Developer

If it's important, my use case is as follows:
  1. Streaming to Twitch at 1536x864 at 60 FPS.
  2. Recording locally at the same time with a CFQ of 15 for YouTube targeting 1080p or 1440p as hardware allows.
As far as stream composition is concerned, I do have animated webms and transparency but my understanding is that these are reliant on the GPU and not subject to hardware decoding. I am using an 8700k as my driver for these.

Thanks!
 
Last edited:

FerretBomb

Active Member
Turing and Ampere use different generations of NVENC, but per VMAF testing are reasonably equitable quality-wise. The step between Pascal (10-series) and Turing is appreciable, but Turing to Ampere is pretty much a wash, and delivers encoding quality on-par with x264 Slow at equitable bitrates.
Within the same family, NVENC performance is identical. It's the same NVENC core on a 3060 as a 3090.

Even older versions of NVENC can handle two simultaneous 4K 60fps video streams without issue. You can use separate NVENC instances on the same card to stream at a streaming-quality bitrate, while using a second NVENC instance to record locally using CQP/CRF for high-quality video.

Important things to note:
-Making sure your GPU is running in 16x is crucial. 8x mode MAY work, but is susceptible to issues.
-Having a second 'encoding' card is pointless and will not work (and will force both cards into 8x mode just by being installed, generally leading to issues)
-Using CUDA-enabled encode options CAN cause rendering lag, even on systems that should not otherwise experience any. Avoid using the Max Quality, Lookahead, or Psychovisual Tuning options. Using the Quality preset is fine.

I do have to ask why you're streaming at 1536x864. That will not deliver a clean downscale as it is not a full-integer.
Recording locally should always be done at native resolution if possible, to avoid the significant quality loss that downscaling carries.
 

Sinapse

New Member
Very thorough response! I will ensure that it is in a 16x slot. This machine does nothing but Plex and streaming so there is no second GPU or other PCI devices to interfere.

As for the resolution, it was an arbitrary choice between 720p and 1080p. I am open to suggestions.
 
Top