《OpenACC并行程序设计:性能优化实践指南》一 3.10 使用Score-P和Vampir记录OpenACC运行时事件...

3.10 使用Score-P和Vampir记录OpenACC运行时事件

编译器和运行时在实现OpenACC指令时有一定的自由度。因此,检查编译器和运行时对OpenACC指令转换和最终程序执行非常重要。例如,kernels指令触发设备初始化、设备内存分配和没有明确指定相应操作的数据传输。OpenACC 2.5引入的分析接口定义了一组事件,这些事件揭示了OpenACC指令的实现和执行细节。这使得Score-P之类的工具能够测量OpenACC区域的持续时间、在主机上的等待时间和任务提交开销,以及跟踪加速器上的内存分配。例如GPU内核开始和结束时间、CPU和GPU数据传输等更多的GPU事件可以使用CUDA的CUPTI接口或OpenCL库包装(Dietrich & Tschüter, 2015)。OpenACC事件将低级别加速器事件与应用程序的源代码相关联。OpenACC事件被标记为隐式或显式的,并且根据它们的类型,还可以提供有关数据传输的变量名或内核启动操作的内核名称的信息。
图3-12展示了Vampir可视化使用MPI、OpenMP和OpenACC的应用程序的执行间隔。在所选间隔中,两个MPI进程执行相同的程序区域,每个运行两个OpenMP线程和带有两个CUDA流的一个GPU。加速器活动是异步的,但是主机大部分时间在等待加速器活动的完成。例如,右边的调用树显示更新构件触发加速器向CPU的数据拷贝和等待操作。OpenACC和OpenMP区域使用文件名和行号注释以便于源代码相对应。

screenshot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值