[FFmpeg-user] Failed creating CUDA context for NVENC

Yang Zhang yzfedora at gmail.com
Thu Jul 19 16:36:56 EEST 2018


Sure,

I am using the latest 390.24 driver. I build the ffmpeg by myself. I
patched the Nvidia driver by forcing FFmpeg link to patched nvidia library.
so this can let you use any version driver also without limits. the command
is generate by software. for example:

ffmpeg -hwaccel cuvid -hwaccel_device 0 -fflags +discardcorrupt -c:v
h264_cuvid -gpu 0 -probesize 10M -analyzeduration 10M -thread_queue_size
128 -i /home/test/Videos/boku_no_hero_academia_16.mp4 -filter_complex
hwdownload,format=pix_fmts=nv12,split=outputs=1[hwupload:0];
[hwupload:0]hwupload=extra_hw_frames=1[map:v:0]; asplit=outputs=1[map:a:0]
-map [map:v:0] -c:v h264_nvenc -flags:v +global_header+cgop -preset:v hp
-profile:v main -g 250 -gpu 0 -b:v:0 3000k -maxrate:v:0 3500k -bufsize:v:0
7000k -map [map:a:0] -c:a libfdk_aac -ac 2 -ar 44100 -b:a:0 128k -f tee
[f=hls:hls_time=2:hls_list_size=5:hls_flags=delete_segments:select=\'v:0,a:0\':bsfs/v=dump_extra=freq=keyframe]../cache/hls/13/highest.m3u8
-hide_banner -loglevel info

To transcoding 60 SD channels the bottleneck is at GPU Memory side. above
command is using full gpu based hardware acceleration. so the GPU RAM
overhead is about 80MB for 1 channel. actually I expect GTX 1070TI 8GB to
transcoding 80 SD channels.  but also, same problem with yours. GPU
actually used 6900 MB. but can not transcoding more.

On Thu, Jul 19, 2018 at 9:29 PM, Yugandhar Veeramachaneni <
hello at yugandhar.me> wrote:

> Hi Zhang,
>
> Are you using the driver published by NVIDIA or did you modify anything in
> it? Also, can you please share your full ffmpeg command string that you use
> for transcoding 60 SD channels for the sake of the community?
>
> Regards,
>
> Yugandhar
>
> On Thu, Jul 19, 2018 at 8:19 AM Yang Zhang <yzfedora at gmail.com> wrote:
>
> > I got this error before. the error code 0x2 is indicate no enough gpu
> > memory.  perhaps you can see the output of nvidia-smi tool indicate
> > the gpu is still left 1GB or more. perhaps nvidia-smi's output is not
> > exactly. or the nvidia driver limited it. my previous test is GTX
> > 1070ti 8GB can transcoding 60 SD channels.
> >
> > On 7/19/18, Yugandhar Veeramachaneni <hello at yugandhar.me> wrote:
> > > I see unrestricted in the # of concurrent sessions column -
> > > https://screenshots.firefox.com/ZTBoEcMVKO336dh8/developer.nvidia.com
> > which
> > > is why I bought this GPU in the first place.
> > >
> > > Your solution to override the hard-coded limits seems promising at the
> > > first glance. I'll try that soon and report back my findings.
> > >
> > > Thank you for your help.
> > >
> > > - Yugandhar
> > >
> > > On Wed, Jul 18, 2018 at 2:46 PM Dennis Mungai <dmngaie at gmail.com>
> wrote:
> > >
> > >> Also, see this list:
> > >> https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
> > >>
> > >> You have the Quadro P4000, which is artificially crippled to ~2
> > concurrent
> > >> sessions according to the documentation above.
> > >>
> > >> On 18 July 2018 at 22:34, Dennis Mungai <dmngaie at gmail.com> wrote:
> > >>
> > >> > NVENC runs on a discrete silicon IP core (SIP) block in the GPU, and
> > not
> > >> > on the GPU's shaders.
> > >> > That SIP block has hard-coded limits (set in firmware) to ensure
> that
> > >> > these who need more than the artificial limit buy Tesla-grade
> > hardware.
> > >> >
> > >> > Marketing shills by NVIDIA.
> > >> >
> > >> > You can override this limit by using Keylase's nvidia patcher here:
> > >> > https://github.com/keylase/nvidia-patch
> > >> >
> > >> > On 18 July 2018 at 22:00, Yugandhar Veeramachaneni <
> > hello at yugandhar.me>
> > >> > wrote:
> > >> >
> > >> >> I'm a little confused here because the GPU resource utilization is
> > well
> > >> >> below the hard limits.
> > >> >>
> > >> >> When I run nvidia-smi, this is what I get -
> > >> >>
> > >> >> yugandharv at eclairs:~$ nvidia-smi
> > >> >> Thu Jul 19 00:29:45 2018
> > >> >> +-----------------------------------------------------------
> > >> >> ------------------+
> > >> >> | NVIDIA-SMI 390.67                 Driver Version:
> > >> >> 390.67                    |
> > >> >> |-------------------------------+----------------------+----
> > >> >> ------------------+
> > >> >> | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile
> > >> Uncorr.
> > >> >> ECC |
> > >> >> | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util
> > >> Compute
> > >> >> M. |
> > >> >> |===============================+======================+====
> > >> >> ==================|
> > >> >> |   0  Quadro P4000        Off  | 00000000:02:00.0 Off |
> > >> >> N/A |
> > >> >> | 52%   55C    P0    38W / 105W |   6646MiB /  8117MiB |     25%
> > >> >> Default |
> > >> >> +-------------------------------+----------------------+----
> > >> >> ------------------+
> > >> >>
> > >> >>
> > >> >> +-----------------------------------------------------------
> > >> >> ------------------+
> > >> >> | Processes:
> >  GPU
> > >> >> Memory |
> > >> >> |  GPU       PID   Type   Process name
> > >> >> Usage      |
> > >> >> |===========================================================
> > >> >> ==================|
> > >> >> |    0       983      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0       995      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0      1010      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0      1012      C   /home/yugandharv/bin/ffmpeg
> > >> >> 215MiB |
> > >> >> |    0      1017      C   /home/yugandharv/bin/ffmpeg
> > >> >> 235MiB |
> > >> >> |    0      1986      C   /home/yugandharv/bin/ffmpeg
> > >> >> 224MiB |
> > >> >> |    0      8484      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0      8497      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0      8538      C   /home/yugandharv/bin/ffmpeg
> > >> >> 225MiB |
> > >> >> |    0     11097      C   /home/yugandharv/bin/ffmpeg
> > >> >> 193MiB |
> > >> >> |    0     11109      C   /home/yugandharv/bin/ffmpeg
> > >> >> 193MiB |
> > >> >> |    0     11121      C   /home/yugandharv/bin/ffmpeg
> > >> >> 193MiB |
> > >> >> |    0     11134      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11169      C   /home/yugandharv/bin/ffmpeg
> > >> >> 225MiB |
> > >> >> |    0     11175      C   /home/yugandharv/bin/ffmpeg
> > >> >> 193MiB |
> > >> >> |    0     11186      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11195      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11207      C   /home/yugandharv/bin/ffmpeg
> > >> >> 224MiB |
> > >> >> |    0     11222      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11226      C   /home/yugandharv/bin/ffmpeg
> > >> >> 225MiB |
> > >> >> |    0     11231      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11234      C   /home/yugandharv/bin/ffmpeg
> > >> >> 225MiB |
> > >> >> |    0     11235      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11237      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11240      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11252      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     11300      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> |    0     13264      C   /home/yugandharv/bin/ffmpeg
> > >> >> 193MiB |
> > >> >> |    0     14176      C   /home/yugandharv/bin/ffmpeg
> > >> >> 193MiB |
> > >> >> |    0     30258      C   /home/yugandharv/bin/ffmpeg
> > >> >> 229MiB |
> > >> >> +-----------------------------------------------------------
> > >> >> ------------------+
> > >> >>
> > >> >>
> > >> >> Thanks,
> > >> >>
> > >> >> Yugandhar
> > >> >>
> > >> >> On Wed, Jul 18, 2018 at 11:55 AM Dennis Mungai <dmngaie at gmail.com>
> > >> wrote:
> > >> >>
> > >> >> > You mentioned 30 streams. And more cause this to "fail".
> > >> >> >
> > >> >> > Perhaps the Quadro line has a maximum simultaneous encoder limit
> of
> > >> 30,
> > >> >> > similar to the GeForce's limit of 2?
> > >> >> >
> > >> >> > On Wed, Jul 18, 2018, 19:28 Yugandhar Veeramachaneni <
> > >> >> hello at yugandhar.me>
> > >> >> > wrote:
> > >> >> >
> > >> >> > > Hello everyone,
> > >> >> > >
> > >> >> > > I'm currently using an NVIDIA Quadro P4000 GPU to transcode
> > >> multicast
> > >> >> UDP
> > >> >> > > streams to RTMP streams. I have quite about 30 streams running
> in
> > >> >> > parallel
> > >> >> > > on this GPU and I have no problems so far. I tried adding more
> > >> >> > > today
> > >> >> and
> > >> >> > > many of them are failing with this error.
> > >> >> > >
> > >> >> > > [h264_nvenc @ 0x55ef24458040] Loaded Nvenc version 8.1
> > >> >> > > [h264_nvenc @ 0x55ef24458040] Nvenc initialized successfully
> > >> >> > > [h264_nvenc @ 0x55ef24458040] 1 CUDA capable devices found
> > >> >> > > [h264_nvenc @ 0x55ef24458040] [ GPU #0 - < Quadro P4000 > has
> > >> Compute
> > >> >> SM
> > >> >> > > 6.1 ]
> > >> >> > > [h264_nvenc @ 0x55ef24458040] Failed creating CUDA context for
> > >> NVENC:
> > >> >> 0x2
> > >> >> > > [h264_nvenc @ 0x55ef24458040] No NVENC capable devices found
> > >> >> > > [h264_nvenc @ 0x55ef24458040] Nvenc unloaded
> > >> >> > >
> > >> >> > > Full log is pasted at
> > >> >> > >
> > >> https://gist.github.com/yugandhar91/47a1c30482d1e89a47f7b6fb6dd420ca
> > >> >> > >
> > >> >> > > Can you please point me to my mistake?
> > >> >> > >
> > >> >> > > Thanks,
> > >> >> > >
> > >> >> > > Yugandhar
> > >> >> > > _______________________________________________
> > >> >> > > ffmpeg-user mailing list
> > >> >> > > ffmpeg-user at ffmpeg.org
> > >> >> > > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >> >> > >
> > >> >> > > To unsubscribe, visit link above, or email
> > >> >> > > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> > >> >> > _______________________________________________
> > >> >> > ffmpeg-user mailing list
> > >> >> > ffmpeg-user at ffmpeg.org
> > >> >> > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >> >> >
> > >> >> > To unsubscribe, visit link above, or email
> > >> >> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> > >> >> _______________________________________________
> > >> >> ffmpeg-user mailing list
> > >> >> ffmpeg-user at ffmpeg.org
> > >> >> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >> >>
> > >> >> To unsubscribe, visit link above, or email
> > >> >> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> > >> >>
> > >> >
> > >> >
> > >> _______________________________________________
> > >> ffmpeg-user mailing list
> > >> ffmpeg-user at ffmpeg.org
> > >> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >>
> > >> To unsubscribe, visit link above, or email
> > >> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> > > _______________________________________________
> > > ffmpeg-user mailing list
> > > ffmpeg-user at ffmpeg.org
> > > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >
> > > To unsubscribe, visit link above, or email
> > > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-user mailing list
> > ffmpeg-user at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-user mailing list