We run signal processing programmes based on ROS. We calculate the execution time using the Chrono library that comes with C++11. The signal processing is measured in frames, and each frame performs exactly the same processing flow.
During the processing task, the performance is low and unstable at the beginning of the programme. After a few frames have been processed (always takes about 1.8 seconds), the performance starts to increase and time consuming going to be stabily in each frame (100ms/frame → 70ms/frame).
However, for the same programme and data, the time taken for each frame is always approximately in same when we run it on another servers which equipped with Intel processors.
The uneven time consuming of each frame is a fatal problem for my task, so I would like to know how I can solve this problem.
For more information:
I noticed that the cpu usage is 100% and power is 18w when processing is solw, but around 40%, 9W when the speed increased.
Thanks for your reply !
It’s right, our task only use CPU for calculation.
I tried the command but it seems like nothing was changed. The processing still slow at first and then faster.
just like:
Moreover, we found the value of EMC usage in jtop tools always be 2~4% when the performance is low, but the EMC usage keep around 7% when processing get faster.
In jtop, EMC stays at 3.2GHz and All CPUs stay at 2.2GHz, but the problem is still there. The CPU Usage value and the CPU CV Power value will go down while processing will be faster.