Nvdec usage only reaches a maximum of 50% in deepstream application

PC: RTX 2070 Super
Deepstream: 6.2
Driver Version: 525.105.17
Docker image: deepstream:6.2-devel

I am working on a modified version of sample app deepstream-test3 in C++. The PERF_MODE is enabled since I want to use the nvurisrcbin plugin.
When checking nvdec usage using “nvidia-smi dmon” I noticed it only reaches a maximum of 50% even if the number of streams increase.

From what I found online, the rtx 2070 super is based on TU104, which has 2 nvdec, this could explain the 50% usage, I would like to know any recommended method if possible to utilize the second nvdec chip.

Are you working with no-display mode?

Yes my pipeline uses fakesink at the end.

Have you tried the original deepstream-test3 sample?

I tried the original deepstream-test3 sample app without any modification, and faced the same problem as well, with nvdec reaching a maximum of 50%. The original app has eglsink and I am able to view the display results output as well.

I spawn the docker container as follows

DOCKER_IMG="nvcr.io/nvidia/deepstream:6.2-devel"
MNT_PROJECT_DIR="-v $PWD:/home/work"
FWD_DISPLAY="-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix"
ENV_PLATFORM="DESKTOP"
xhost +si:localuser:root

docker run -it --rm --gpus all -e PLATFORM=$ENV_PLATFORM \
    --network host \
    $FWD_DISPLAY \
    $MNT_PROJECT_DIR \
    $DOCKER_IMG \
    bash

In this case in order to simulate many streams I had to provide many argument parameters as below.

./deepstream-test3-app file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4

The output of nvidia-smi dmon is as below during runtime.

gpu pwr gtemp mtemp sm mem enc dec mclk pclk
0 92 55 - 26 16 0 50 6801 1980

Please use “export NVDS_TEST3_PERF_MODE=1” to enable “PERF_MODE”. With egl display, the pipeline only play according to the timestamp, it will not run in full speed.

Hi, seems I’m still running into the same problem, after the PERF_MODE is enabled in the original application.

I’ve tested with some dual NVDEC cores GPUs, the decoder can be 100% with the deepstream-test3 PERF_MODE.

I have retested on RTX 3060Ti and I get the 100% nvdec utilization as you mentioned.

I am starting to think this is related to the RTX 2070 Super specifically.
From nvidia document (https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new), the consumer grade GPUs only have 1 nvdec, however at the same time the TU104 is reported to have 2 nvdec chips.

Can you raise the RTX 2070 super decoder issue in the video codec forum? It is not related with DeepStream.

Latest Visualization/Video Processing & Optical Flow topics - NVIDIA Developer Forums

Sure thanks, I will follow up with them

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.