Nsight Compute使用方法(心得)
如何使用Nsight Compute
一定要用管理员模式打开软件!!!!! 不然没有权限去调用硬件测试
(1)点击快速启动Quick Launch
(2)红框中填入可执行文件,interactive profile页面下所勾选的launch,是在线分析。通过profile页面下所勾选的launch,启动的是离线分析,会将所有的报告一次性输出至报告存储位置,分析过程中不需要进行手动的参与。
(3)选用Profile时,输入输出文档,并在Section选项进行相应勾选,其他选项一般默认就可以,点击launch开始运行
各个性能指标,如何优化内核函数
以下实验为1024*1024向量加法的kernel分析结果
1.计算单元和内存单元占用率
根据上图可基本了解计算和内存占用率情况,根据不同领域的内核代码,占用率有自身的特点(比如大数据kernel的内存占用率会高点,某类深度学习的计算占用率会高点),但是一般情况而言两者进度条相差不大性能较好。
(借鉴:矩阵转置时,SM占用率较低,使用共享内存进行矩阵转置的优化后,SM的占用有所提高,性能也更好)
2.内存细节使用情况
根据上图,未使用共享内存单元,结合矩阵转置性能提升可得,性能高的代码尽量保持L1和L2的读写大小差距尽量小
3.Warp使用分析
根据上图分析可得,首先要让图1中增加每次调度时的warp数量(Theoretical warps理论线程束数量和active warps激活线程束数量),其次要让图2中warp发射等待周期尽量短
4.指令使用分析
根据上图,可了解程序指令使用情况,观察使用最多的那些指令导致的性能瓶颈,做出优化
5.warp occupancy占用率情况
根据上图,第一个表格表示每个线程中的寄存器大小最终影响warp占用率的情况,第二个表格表示Block Size引起的warp占用率情况,第三个表格为共享内存的影响情况。
调整寄存器数量,block大小,让占用率达到性能最优。