what is the limitation on max cuda instances for video transcoding?

0

I have set up Nvidia V100 card on Azure Nc6s_v3 virtual machine. I have set up the latest CUDA driver and SDK. I compiled sample programs from "Video_Codec_SDK_9.0.20" and verified the max parallel transcode sessions using AppTrans binary. What I found is I can run 25 parallel transcode instances (25 decode, 25 encode), 26th instance will wait for anyone session to be deinitialized.

Can somebody explain, why is this limitation?

according to article there is no limitation on max concurrent sessions.

I compiled Gstreamer framework by enabling Nvidia plugins (nvdec and nvh264enc). I am seeing similar behavior here also. For 26th concurrent transcode session I am getting the following error:

ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvH264Enc:nvh264enc0: Could not initialize supporting library.
Additional debug info:
gstnvbaseenc.c(423): gst_nv_base_enc_open (): /GstPipeline:pipeline0/GstNvH264Enc:nvh264enc0:
Failed to create CUDA context, perhaps CUDA is not supported.
Setting pipeline to NULL ...
Freeing pipeline ...

Thanks in advance.

Raju

Posted 2019-09-09T08:02:46.983

Reputation: 11

Answers

0

You seem to have encountered the artificial maximum number of simultaneous NVENC video encoding sessions that is imposed by Nvidia on consumer-grade GPUs.

There a well-known patch for that on Github nvidia-patch.

(I have never used this patch for Nvidia DLLs and cannot vouch that it will work.)

harrymc

Posted 2019-09-09T08:02:46.983

Reputation: 306 093

Thanks for the quick response harry. I am using Nvidia GPU (Tesla V100) on Azure NC6s_v3 machine. Do u think its consumer-grade GPU? – Raju – 2019-09-09T08:59:55.683

Doesn't really sound like one. Perhaps there is a way to disable this limitation, but I don't think it's published. You could ask Nvidia Support for that, now that you have more information. – harrymc – 2019-09-09T09:11:42.360