NVIDIA profiler性能分析工具使用

本文通过实例分析了一个CUDA程序的性能,指出了计算与数据复制比例失衡、并发度不足及内存复制效率低下等问题,并提出了相应的优化建议。

在程序工程名上点右键->profile as->Remote C/C++ Application(我用的远程调试CUDA程序)启用性能分析

profiler性能分析总览:

下图最下部分需要详细分析:它是针对每个程序的分析结果报告。

各种处理过程快速浏览:点击每行都会有不同的提示,有每个函数的使用情况,和平台的性能情况

Overlap:在cudaMemcpy的同时,计算的时间占总的cudaMemcpy时间比例



数据转移和并发的分析示例:

分析结果显示:

1、该程序计算和复制数据的比例较低,即计算量相对于复制数据量差别不大,复制时间太长,显示不出GPU并行计算的效率,大量时间花费到了复制上

2、该程序复制数据和计算的重叠度较低,即复制数据的同时没有进行任何计算,浪费了GPU带宽,本文使用的是矢量相加代码,将数据在cpu生成复制到gpu计算再复制回来,自然不会有任何重复

3、该程序内核并发度较低,即两个核函数并行执行的百分比较低,最好使用更多的核函数在不同的grid执行

4、少量内存复制没有发挥出GPU主机到设备的带宽优势

5、较低的内存通道,内存复制没有使用全部的主机到设备的带宽,仅达到1.542GB/s,现在GPU一般能达到几十GB/s,这是最基础也是最有效地优化方式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值