How to profile GPU on Jetson Xavier?

Hello. So I struggle with GPU profiling on Jetson Xavier. Let say we have 3 processes that are utilizing GPU. All 3 processes are running simultaneously over the same video stream. As they utilize the same GPU they can stuck for a while during executing cuda kernel, as other process executes its own kernel at given time. In theory, if combined GPU processing time per second is less then a second, they should keep up with the framerate, but if it is bigger, then processes will throttle. So, let say they throttle, then I need to figure out how long each process occupies the GPU. I could do that with CUDA timers, if that are my applications, but they are not and they are black boxes for me, so that is not an option. I tried to use Nsight Systems, but at best it just provides cuDNN and cuBLAS usage. I guess I need select “Collect GPU metrics” for show GPU usage, but it says that “target doesn’t support this feature”. So, my question is: how I would get information about GPU occupancy for a process on Jetson Xavier?

Hi,

You can use Nsight System or Nsight Compute.
But please note that the GPU is shared between processes in a time-slicing manner.
If you want the task can run simultaneously, please implement it with a single process multi-thread.

Thanks.

ok, but how to get that information from Nsight System? What params I should pick to include that info in report?

Hi,

Please find the usage in our document below:

Thanks.

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