Use GPU Kernel Summary (Analyze the Data) to identify hottest kernels launched to GPU and it’s count, total execution time on GPU cores.
Use Data Transfer Summary (Analyze the Data) to identify how much time spent in data transfer between host and device, how many times data transfer initiated.
Use Per Thread Timeline to analyze the following.
- GPU Usage, GPU Memory usage and GPU Power of your application over the profile duration.
- GPU Kernels executed over the profile duration.
- Data Transfer between host and device over the profile duration, it will help to identify the time spent in data copy.
- For each kernel execution and data copy, refer the HIP trace to check which hip API is causing this activity on GPU. Refer the callstack section for CPU callstack at that time.
From this analysis, we can identify whether application is CPU bound or GPU bound. If application is GPU bound, then use GPU Profiling for further analysis and optimization in kernel execution.
Figure 1. Per Thread Timeline