I am running multiple processes across several terminals on a single host and want to analyze the system-wide CPU and GPU utilization using nsys . I opened a new terminal and executed nsys profile --sample=system-wide (without specifying any application). However, it only collected CPU-related metrics . When I tried adding --trace=cuda,opengl,osrt , it threw an error stating that the --trace option requires a target application. But my goal is to analyze resource usage across the entire system , not limited to specific applications.
Requirements:
I want to capture process-level metrics :
- CPU utilization
- Memory utilization
- GPU utilization
- GPU memory (VRAM) utilization
Problem:
- If I use
--sample=system-widealone (without--trace), it only captures CPU data. - If I combine
--tracewith--sample=system-wide, it forces me to specify applications, which defeats the purpose of system-wide analysis.
Currently, the only workaround I can think of is packaging all applications into a single script for profiling. However, in our ROS-based system, there are numerous nodes launched via roslaunch. Manually adding all nodes to a shell script is impractical. We want to avoid this and directly use nsys profile --system-wide without explicitly listing applications.
How can I achieve this?