I am porting an image processing pipeline in GStreamer that uses CUDA, OpenCV with CUDA compiled and the GstCUDA framework. However, I have noticed that my performance went down from 36 fps to 24 fps. Debugging a bit on it, I noticed that the
nvvidconv processing time went up. The CUDA-based elements, instead, are faster (which makes me happy).
For a simple pipeline like this one:
gst-launch-1.0 filesrc location=/tmp/sample-7k.jpg ! nvjpegdec ! imagefreeze ! \ "video/x-raw,width=7008,height=2160" ! nvvidconv ! \ "video/x-raw(memory:NVMM),width=7008,height=2160,format=RGBA" ! \ perf ! queue ! fakesink sync=false
The framerate achieved by JP 5.0.2 is 38.4 fps, whereas, for JP 4.6, the framerate is 42.1 fps. The processing time of nvvidconv is 26.7 ms and 23.5 ms, respectively.
I am using the highest power profile (20W 6 Core) and Jetson Clocks to boost the clocks. Also, I have the gnome desktop turned off, and the environment is quite similar except for the Jetpack and its components (like CUDA).
Is this behaviour expected? Is it possible to boost these NVIDIA elements?