Tools to Profile ROS2 Algorithms for FPGA Acceleration

asked 2022-12-02 12:56:45 -0500

mp8x gravatar image

I'm part of a group that interested in accelerating some commonly-used ROS2 algorithms such as SLAM and those used in the Navigation Stack. Right now, we are focused on profiling these algorithms to find bottlenecks and potential data dependencies, especially ones between different nodes, to potentially accelerate. We have been using the Callgrind tool for profiling, along with KCacheGrind for visualization, which gives us function cost, but it does not give us a good code map or data dependency graph to visualize or learn more about the algorithms. We have also been experimenting with ROS2 tracing, but are not able to get much information from it as we are not able to trace data through algorithms.

Are there any tools that would help us understand the code flow and the data dependencies of these complex algorithms better?

edit retag flag offensive close merge delete

Comments

Have you considered improving ros2_tracing to be able to "trace data through [your] algorithms"? I'm assuming you've seen this: https://arxiv.org/pdf/2204.10208.pdf. Seems like this is the tool you need, but it needs to be adapted a bit.

christophebedard gravatar image christophebedard  ( 2022-12-05 15:20:53 -0500 )edit

Thank you so much for the suggestion! We haven't seen the message flow analysis tool yet, so we'll try it out and see how it goes!

mp8x gravatar image mp8x  ( 2022-12-10 04:36:45 -0500 )edit