如何显示cuda程序各模块的占用时间?nvprof?

ronald1940 2019-01-03 08:27:04
在linux进行cuda程序开发,对于单卡仿真程序可以使用nvprof ./program 来查看各部分时间,
(1)但是现在的程序已经改为多节点多卡MPI版本(准确说是4节点8卡)如何继续查看各部分使用时间?目的是为了提高加速比
(2)或者有什么好的办法查看加速比上不去的瓶颈?
(3)有什么好的加速比的建议也可以提,lz是cuda的小白,可能犯了一些比较明显的错误,加速比偏小现在。
...全文
486 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ronald1940 2019-01-04
  • 打赏
  • 举报
回复
谢谢你,非常感谢
wjsjason 2019-01-04
  • 打赏
  • 举报
回复
(3)关注程序中各个功能模块的运行时间,分析出程序性能受限于传输带宽还是计算能力。比如,测量数据传输的时间和核函数运行时间,看哪一个时间更大,再考虑优化。另外,看看程序中是不是有多余的同步函数,导致程序根本没有异步执行,而是串行执行了
wjsjason 2019-01-04
  • 打赏
  • 举报
回复
(2)还是要通过实际的运行时间来分析加速情况,不能只看总体运行时间,要对程序中各个功能部分分别测时,比如:初始化,数据传入,计算,数据传出
wjsjason 2019-01-04
  • 打赏
  • 举报
回复
(1)可以自己封装一个cpu计时函数或者直接调用CUDA官方的event相关api在程序中实现测时功能,并将运行时间打印出来。

374

社区成员

发帖
与我相关
我的任务
社区描述
CUDA on Linux
社区管理员
  • CUDA on Linux社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧