NVIDIA 计算能力7.5及以上的GPU设备不再支持nvprof工具进行性能剖析,提示使用Nsight Compute作为替代品,如下图所示。
Nsight Compute Cli(命令行)性能剖析的参数与nvprof不一样,当输入nvprof的参数抓取数据时,因为参数不识别,无法抓取希望得到的指标,如下图所示,因为输入nvprof的性能参数,无法识别,因此没有抓到有用信息;同时,Nsight Compute Cli性能参数成千上万,虽然可以将这些参数全部抓取,但是会对使用者筛选关注信息带来很大的麻烦。
因此,非常有必要找到两款工具性能参数之间的对应关系。这里记录命令行使用Nsight Compute Cli的方法以及两个工具常用参数之间的对应关系,方便查阅与工具间使用的过度。
Nsight Compute Cli上手说明
以执行可执行文件剖析性能为例,Linux系统上 Nsight Compute Cli使用格式为
ncu --metrics param target
说明:param为要抓取参数,target为可执行文件。程序执行后会在终端输出抓取的信息,参考如下:
这里输入了正确的参数,可以看到核函数加载全局内存的吞吐量为46.13 GB/s.
Nsight Compute 与nvprof 参数映射
这里只整理了 SM占用率,全局内存,共享内存 三个方面常用参数对照关系,更多参数对照可以参考官方提供的CUDA手册《NSIGHT COMPUTE COMMAND LINE INTERFACE》。
SM占用率
nvprof | nsight compute cli |
---|---|
achieved_occupancy | sm__warps_active.avg.pct_of_peak_sustained_active |
全局内存读写
nvprof | nsight compute cli |
---|---|
gld_throughput | l1tex__t_bytes_pipe_lsu_mem_global_op_ld.sum.per_second |
– | – |
gst_throughput | l1tex__t_bytes_pipe_lsu_mem_global_op_st.sum.per_second |
– | – |
gld_efficiency | smsp__sass_average_data_bytes_per_sector_mem_global_op_ld.pct (x) |
– | – |
gst_efficiency | smsp__sass_average_data_bytes_per_sector_mem_global_op_st.pct(x) |
– | – |
gld_transactions | l1tex__t_sectors_pipe_lsu_mem_global_op_ld.sum |
– | – |
gst_transactions | l1tex__t_sectors_pipe_lsu_mem_global_op_st.sum |
– | – |
gld_transactions_per_request | l1tex__average_t_sectors_per_request_pipe_lsu_mem_global_op_ld.ratio(x) |
– | – |
gst_transactions_per_request | l1tex__average_t_sectors_per_request_pipe_lsu_mem_global_op_st.ratio(x) |
共享内存读写
nvprof | nsight compute cli |
---|---|
shared_efficiency | smsp__sass_average_data_bytes_per_wavefront_mem_shared.pct(x) |
– | – |
shared_load_throughput | l1tex__data_pipe_lsu_wavefronts_mem_shared_op_ld.sum.per_second |
– | – |
shared_load_transactions | l1tex__data_pipe_lsu_wavefronts_mem_shared_op_ld.sum.per_second |
– | – |
shared_load_transactions_per_request | n/a |
– | – |
shared_store_throughput | l1tex__data_pipe_lsu_wavefronts_mem_shared_op_st.sum.per_second |
– | – |
shared_store_transactions | l1tex__data_pipe_lsu_wavefronts_mem_shared_op_st.sum.per_second |
– | – |
shared_store_transactions_per_request | n/a |