- 简介高性能计算(HPC)架构的异构性增加和编译器的进步导致OpenMP经常用于在异构设备上进行计算。然而,在异构计算平台上有效地移动数据对于实现高利用率至关重要。隐式的OpenMP数据映射规则通常会导致冗余数据传输,这可能成为程序性能的瓶颈。程序员必须显式地在主机和连接的加速器设备之间映射数据以实现高效的数据移动。为此,OpenMP提供了目标数据和目标更新结构。确保有效的数据传输需要程序员考虑复杂的数据流。这可能是一个费力且容易出错的过程,因为程序员必须在跨多个数据环境的数据有效性和生命周期上保持心理模型。任何自动化分析都应最大化数据重用,最小化数据传输,并考虑函数调用现场的控制流和上下文,使分析具有跨过程和上下文敏感性。本文介绍了一种静态分析工具OMPDart(OpenMP数据减少工具),用于OpenMP程序,该工具对主机和设备区域之间的数据依赖关系进行建模,并应用源代码转换以实现高效的数据传输。该分析基于将抽象语法树(AST)与控制流图(CFG)结合的混合数据结构。我们对九个HPC基准进行的评估表明,OMPDart能够生成有效的数据映射结构,从而大大减少主机和设备之间的数据传输。OMPDart通过85%减少数据传输,并提高运行时性能1.6倍,超过了LULESH 2.0的专家定义实现。
- 图表
- 解决问题解决 OpenMP 程序中数据传输效率低的问题,提高程序性能。
- 关键思路提出了一种静态分析工具 OMPDart,基于抽象语法树和控制流图的混合数据结构,对 OpenMP 程序进行数据依赖分析,通过源代码转换来实现有效的数据传输。
- 其它亮点OMPDart 可以将数据传输减少 85%,并且在 LULESH 2.0 上提高了 1.6 倍的运行时性能。实验使用了九个 HPC 基准测试,并且提供了开源代码。
- 相关研究包括:基于 OpenACC 的异构计算加速、基于 CUDA 的数据传输优化、基于 MPI 的高效通信等。
沙发等你来抢
去评论
评论
沙发等你来抢