[Libav-user] cuvid decoder occupy a whole core of cpu

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Libav-user] cuvid decoder occupy a whole core of cpu

jing zhang

Hi all,

I'm trying to use h264_cuvid and hevc_cuvid decoders.

There is a cuda thread taking a whole cpu core, like some kind of busy waiting. The stack looks like:

Thread 1 (process 9104):
#0  0x00007f6697702e60 in ?? () from /usr/lib64/libcuda.so.1
#1  0x00007f66976f639d in ?? () from /usr/lib64/libcuda.so.1
#2  0x00007f66977038a8 in ?? () from /usr/lib64/libcuda.so.1
#3  0x00007f672a63583d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f6729a00fcd in clone () from /lib64/libc.so.6

If I create multiple decoders in a proccess, only one cuda thread occupy a single cpu core.

If I create a decoder in one proccess, each proccess has a thread taking a whole cpu core.

Even when I delete the decoder, this thread remains. Only when I kill the proccess, this thread quit.

I have test several versions of ffmpeg: 3.3.1, 3.3.2, git snap shot  of 2017-07-07,

And test two nvidia cards: quadro k1200, gtx 1060.

This situation remains the same.

Is this a problem? Are there some work arounds?


Jing Zhang


_______________________________________________
Libav-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/libav-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: cuvid decoder occupy a whole core of cpu

jing zhang
I use ffmpeg command directly to decode hevc file to yuv. There is also a thread taking a whole cpu core until the decode process end.

2017-07-10 10:39 GMT+08:00 张晶 <[hidden email]>:

Hi all,

I'm trying to use h264_cuvid and hevc_cuvid decoders.

There is a cuda thread taking a whole cpu core, like some kind of busy waiting. The stack looks like:

Thread 1 (process 9104):
#0  0x00007f6697702e60 in ?? () from /usr/lib64/libcuda.so.1
#1  0x00007f66976f639d in ?? () from /usr/lib64/libcuda.so.1
#2  0x00007f66977038a8 in ?? () from /usr/lib64/libcuda.so.1
#3  0x00007f672a63583d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f6729a00fcd in clone () from /lib64/libc.so.6

If I create multiple decoders in a proccess, only one cuda thread occupy a single cpu core.

If I create a decoder in one proccess, each proccess has a thread taking a whole cpu core.

Even when I delete the decoder, this thread remains. Only when I kill the proccess, this thread quit.

I have test several versions of ffmpeg: 3.3.1, 3.3.2, git snap shot  of 2017-07-07,

And test two nvidia cards: quadro k1200, gtx 1060.

This situation remains the same.

Is this a problem? Are there some work arounds?


Jing Zhang



_______________________________________________
Libav-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/libav-user
Loading...