NVEnc Details

I would like to ask multiple questions.

We are software development company that actually works on a project that uses multiple simultaneous video encoding proccesses (8 to be exact) in one appplication using MPlatform SDK.

We receive signal from SDI input, convert it using your nvidia codecs, and write it to file. The quality is lossless ( NVENC h264 lossless )

Currently we are using quadro P2200 graphic card, but if we run more than 3 simultaneous encodings, we get high number of unprocessed frames, after examination, we found out that graphic card is not fast enough for this kind of job and runs at 100% usage during this.

My questions are:

  1. Will upgrading to higher model increase the number of possible simultaneous encodings ? Like Quadro P6000

  2. Are number of cuda cores relevant ( used by nvenc dedicated chip ) during encoding ?

  3. In case that question number 2 is true, what will happen if we use multiple GPU-s and connect it via SLI, will we get full potential of both ( or maybe 3 ) graphic cards for this type of encoding ?

  4. Is there any other way other than change of video quality to get better results ?

Thank you for your answer

Hi, a fellow developer here.

  1. To answer this question you first need to determine the bottleneck. You did not mention the most important information - the resolution and FPS of the streams. You see, the main limitation is the NVENC engine: Pascal generation should be capable of 400+fps of 1080p streams on lossless preset and 600+ fps on lossless - high performance preset. Maybe switching the preset to losslesshp will be enough for you - with the tradeoff of slightly larger files. If this won’t help, the only meaningful upgrade would be a card with multiple NVENC engines - i.e. Quadro P3200. The driver will then automatically round-robin the engines for each stream. Note that having multiple NVENC engines is a speciality of only the Pascal generation and for some reason, NVIDIA does not offer that for Turing and Ampere generation (check out the matrix HERE)

  2. Yes, NVENC and NVDEC use a little bit of CUDA performance, but P2200 should be more than enough if you do not do other stuff on the GPU. In my experience (using Linux) the driver seems to priporitize encoding workload over generic CUDA and OpenGL. But that might be only a feeling

  3. You will get another NVENC engine ;) But in such case you will have to select the GPU for encoding manually. The cards won’t cooperate on encoding in any way automatically.

  4. Yes, try another preset. For the lossless presets the quality will always be lossless. Only the compression ration will change.