CUDA processing slowing the pipeline. Any ways to make faster?

Hi, I am working with Jetson Xavier AGX. I am working with decoding the video and changing the Y values of every pixel. In my first case I decoded the sample.mp4 using the following pipeline:
gst-launch-1.0 filesrc location=sample.mp4 ! qtdemux ! h264parse ! nvv4l2decoder enable-max-performance=1 ! fakesink.
For the above pipeline to complete it takes 3.7 seconds.

However when I introduce the nvivafilter with nvsample_cudaprocess.cu and change all the Y values for every pixel my pipeline completion time is 9.5 seconds. The pipeline for the second case is:

gst-launch-1.0 filesrc location=sample.mp4 ! qtdemux ! h264parse ! nvv4l2decoder enable-max-performance=1 ! nvvidconv ! ‘video/x-raw(memory:NVMM), format=(string)NV12’ ! nvivafilter cuda-process=true customer-lib-name=“libnvsample_cudaprocess.so” ! 'video/x-raw(memory:NVMM), format=(string)NV12" ! fakesink

All the filtering process is carried out in the GPU using CUDA process. Is there a way to reduce the pipeline completion time or what are the general ways to boost the GPU/CUDA processing to get the running time as low as possible ?

Hi,
Please execute $ sudo nvpmodel -m 0 and $ sudo jetson_clocks. The commands enable CPU/GPU at max clocks. It shall bring performance improvement.

You can execute sudo tegrastats to get system status.

Hi, This did improve my performance significantly. However the power consumption has increased for CPU and GPU significantly. Is there any way I can reduce the power consumption of CPU while maintaining the performance ?

Hi,
The power modes are defined in

/etc/nvpmodel/nvpmodel_t194.conf

You can customize one mode to only enable GPU at max clock. The existing power modes are listed in developer guide

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