You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update 2023-11-16: Add support for live benchmark mode
46
47
47
48
## Supported Platforms
48
49
@@ -181,21 +182,21 @@ Included in the log is information on the host system on which results were meas
181
182
182
183
The following are the performance results measured with `ros2_benchmark` on `aarch64` and `x86_64` platforms, using ROS 2 Humble in March 2023. The table below also contains links to the packages forthe nodes usedin the benchmark and to the complete results JSON files.
183
184
184
-
| Node | Input Size | Intel NUC Corei7 11th Gen | AGX Orin (CPU only)|
| [AprilTag Graph](scripts/apriltag_ros_apriltag_graph.py) | 720p | [88.1 fps](results/apriltag_ros_apriltag_graph-nuc_4060ti.json)<br>12 ms | [56.3 fps](results/apriltag_ros_apriltag_graph-agx_orin.json)<br>22 ms |
196
+
| [Stereo Disparity Graph](scripts/stereo_image_proc_graph.py) | 1080p | [99.4 fps](results/stereo_image_proc_graph-nuc_4060ti.json)<br>16 ms | [63.5 fps](results/stereo_image_proc_graph-agx_orin.json)<br>28 ms |
196
197
197
198
198
-
>**Note**: All results above are using ROS 2 nodes from open source that run computation on the CPU only. For GPU-accelerated equivalent packages, see [Isaac ROS](https://gitlab-master.nvidia.com/isaac_ros).
199
+
>**Note**: All results above are using ROS 2 nodes from open source that run computation on the CPU only. For GPU-accelerated equivalent packages, see [Isaac ROS](https://github.com/NVIDIA-ISAAC-ROS/).
199
200
200
201
### Explanation of the Results JSON Format
201
202
@@ -396,16 +397,21 @@ Follow these steps to ensure that everything in the template is configured corre
396
397
5. Insert your custom nodes declared in step 1 to the composable node container.
397
398
6. Revise/add benchmark configurations under `ROS2BenchmarkConfig` declaration based on your custom graph.
398
399
399
-
The full benchmark configuration options can be found [here](https://gitlab-master.nvidia.com/isaac_ros/ros2_benchmark/-/blob/dev/ros2_benchmark/ros2_benchmark/default_ros2_benchmark_config.yaml) in the default `ros2_benchmark` configuration file.
400
+
The full benchmark configuration options can be found [here](ros2_benchmark/ros2_benchmark/default_ros2_benchmark_config.yaml) in the default `ros2_benchmark` configuration file.
400
401
401
402
## Profiling
402
403
403
404
When seeking to optimize performance, profiling is often used to gain deep insight into the call stack, and where processing time is spent in functions. [ros2_tracing](https://github.com/ros2/ros2_tracing) provides a tracing instrumentation to better understand performance on a CPU, but lacks information on GPU acceleration.
404
405
405
406
[Nsight Systems](https://developer.nvidia.com/nsight-systems) provides tracing instrumentation forCPU, GPU, and other SOC (system-on-chip) hardware accelerators for both `aarch64` and `x86_64` platforms, and is freely available for download. We use this tooling to profile our graphs of computationin ROS, to identify areas of improvement for compute optimization, and improvement of synchronization between heterogenous computing hardware. These tools allow for comparison of before and after to inspect profile differences with the benchmark tooling.
406
407
408
+
## Live Benchmark Mode
409
+
410
+
Besides benchmarking a graph with data loaded from rosbags, `ros2_benchmark` also supports a live benchmark mode that enables measuring performance outcome of a graph with its data source (e.g., a grph consists of a camera node). A [Realsense benchmark script](scripts/realsense2_node.py) is provided as an example to showcase the use of the live benchmark mode.
0 commit comments