FPS shown in DS console does not match lantecy test

I used the following to check latency of each components:
export NVDS_ENABLE_COMPONENT_LATENCY_MEASUREMENT=1
export NVDS_ENABLE_LATENCY_MEASUREMENT=1

It showed that the primary-gie took 50 ms and secondary-gie took 150 ms. However, the performance test showed that the deepstream-app was processing
at 10 FPS rate.

So how do I make sense of that? The primary-gie has batch-size of 2 and the secondary-gie has batch-size of 1.

My setup is the following:

Jetson Xavier
DeepStream 5.0
JetPack 4.4
TensorRT 7.1.3
NVIDIA GPU Driver Version 10.2

The latency is to calculate the batch latency from the source. DeepStream work in asynchronized way, so you can not calculate FPS by latency.

Thanks for your reply!

Could you elabroate on how DeepStream work asynchronized, and what is the batch latency measuring here?

For instance, I have detected 7 primary instances so intutively they would activate 7 secondary inferences. Is the batch latency for secondary-gie accounts for the time consumption for all 7 secondary inferences or each one?

Would it help if I increase the batch-size of the secondary-gie?

I’m trying understand where my biggest time consumption overhead is, and looking for a way for improvement. Hopefully my questions aren’t confusing, and thanks again for your helpful comment!

Please upload your deepstream-app config file.

deepstream_app_config_yoloV3_2.txt (4.5 KB)
Thanks for the reply! Here is the file.

For deepstream asynchronization, for example:when the sgie process the third batch, the pgie may work on the fifth batch. The batch latency is for the batch processing time with GIE.

SGIE handles objects which are detected by PGIE, there is only one PGIE instance and only one SGIE instance. If your PGIE detected 7 objects and your SGIE batch size is 1, then the SGIE needs to handle 7 batches. The SGIE latency is for the 7 batches processing.

Yes.

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