Nsight System
SM是Streaming Multiprocessor,即流多处理器
一些点
- Nsight System可以用来profile GPU的异步操作、性能监控、debugging工具
- 设置尽可能小的trace选项,避免trace的开销过大
- NVTX可以用来在代码中标记特定的events或者sections来trace
- collect CUDA trace比较重要
- 在Thread中可以看到的是CPU中调用CUDA API的trace,memcopy从cpu到gpu,memcopy从gpu到cpu,memfree等
- 在CUDA HW(Hardware)中可以看到GPU的实际操作
- 比如memCopy
- CUDA的操作
流程
可能的问题
- CUDA kernel在GPU上运行太久了
- 或者一些CPU的处理成为瓶颈
- 或者是Disk IO的问题
- 或者是CPU和GPU之间在PCIE BUS上的copy