Drop in FPS when adding more streams in DeepStream, and GPU utilization not exceeding 30%

• Hardware Platform (Jetson / GPU) - GPU
• DeepStream Version - 6.4
• TensorRT Version - 8.6.1
• NVIDIA GPU - NVIDIA L4

  1. I have observed a drop in FPS when I added 20 streams to the deepstream pipeline using nvstreammux.

  2. NVIDIA-SMI dmon -i 0 The percentage of SM does not go beyond 30% regardless of the number of streams.

  3. I am using the engine fine with a batch size of 20 and MUXER_BATCH_TIMEOUT_USEC set to 50000 since the source has a frame rate of 20 FPS, which translates to 50000 microseconds.

    20fps source: 1 / 10 * 1000 * 1000 = 50000 (microsecond)

  4. Are there any other parameters I need to tweak in order to increase the GPU utilization percentage and achieve the desired output FPS?

  5. I am using sink type as Fakesink.

  6. I am using primary detector(yolov8) and tracker(bytetracker) in my pipeline.

config file

gpu-id=0
net-scale-factor=0.0039215697906911373
model-color-format=0
onnx-file=best.onnx
model-engine-file=model_b20_gpu0_fp16.engine
labelfile-path=labels.txt
batch-size=20
network-mode=2
num-detected-classes=7
interval=0
gie-unique-id=1
process-mode=1
network-type=0
cluster-mode=2
maintain-aspect-ratio=1
symmetric-padding=1
parse-bbox-func-name=NvDsInferParseYolo
custom-lib-path=nvdsinfer_custom_impl_Yolo/libnvdsinfer_custom_impl_Yolo.so
engine-create-func-name=NvDsInferYoloCudaEngineGet

1 Like