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

简介: 本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.10节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

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

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
SQL 运维 关系型数据库
使用Binlog日志恢复误删的MySQL数据
今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。
2119 1
|
负载均衡 安全 算法
深入解析线程安全的Hashtable实现
深入解析线程安全的Hashtable实现
|
7月前
|
机器学习/深度学习 算法 测试技术
DeepSeek-R1-0528:小更新大升级
今天,DeepSeek R1 开源发布了其“小版本”升级——DeepSeek-R1-0528。
949 23
DeepSeek-R1-0528:小更新大升级
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
算法 数据安全/隐私保护 索引
索引OFDM调制解调系统的matlab性能仿真
本文对m索引OFDM调制解调系统性能进行了仿真分析,增加了仿真图并配有语音讲解视频,使用Matlab2022a完成仿真,代码无水印。研究了OFDM-IM技术,通过激活不同子载波组合传输额外信息,提高频谱效率和降低PAPR。提出了OFDM联合子块索引调制技术(OFDM-JS-IM)和OFDM全索引方法(OFDM-AIM),并通过遗传算法优化子块查找表,有效提升系统性能。提供了核心MATLAB程序示例。
355 3
|
算法
动态规划算法学习二:最长公共子序列
这篇文章介绍了如何使用动态规划算法解决最长公共子序列(LCS)问题,包括问题描述、最优子结构性质、状态表示、状态递归方程、计算最优值的方法,以及具体的代码实现。
609 0
动态规划算法学习二:最长公共子序列
|
人工智能 架构师 搜索推荐
通义大模型使用指南之通义千问
本文介绍了如何注册并使用通义大模型,该平台提供了通义千问、通义万相和通义听悟三大功能。通义千问包含对话和百宝箱两个子功能。在对话中,用户需按照特定格式提问,如设定角色、背景等,但实际体验中,回复可能不够理想。百宝箱提供不同场景的应用,如健身教练和办公助理。通过示例展示了健身计划的生成,但与专业教练相比仍有差距。对于职场问题,通义千问的回答显得较为通用,难以满足个性化需求。
5254 0
|
Ubuntu NoSQL API
Ubuntu下安装GTK的三种方法
我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1。 一、安装 1、安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get install build-essential 2、安装 libgtk2.
3767 0
|
运维 数据挖掘
服务器数据恢复—Raid5重建导致原raid阵列数据丢失的数据恢复案例
服务器数据恢复环境: 一台服务器上搭建了一组由5块硬盘组建的raid5阵列,服务器上层存放单位重要数据,无备份文件。 服务器故障&分析: 服务器上raid5有一块硬盘掉线,外聘运维人员在没有了解服务器具体情况下,将服务器上raid5阵列中4块正常硬盘(除去掉线的那块磁盘)重建为一组新的raid5阵列,导致服务器中的原始数据全部丢失。
|
存储 编译器 C++
《C++避坑神器·十五》动态库只有dll文件,没有.lib文件时动态调用dll的中类和成员函数
《C++避坑神器·十五》动态库只有dll文件,没有.lib文件时动态调用dll的中类和成员函数
1096 0