《The International Journal of High Performance Computing Applications》:Optimizing GPU-aware halo exchange for computations on structured grids
编辑推荐:
摘要:Halo交换是在分布式计算中,将细分计算网格的边界与相邻进程进行通信的任务。随着图形处理器(graphics processors)增强世界上最快的超级计算机,必须仔细编排跨异构内存层次结构的数据移动,以便大规模利用这些加速器。在这项工作中,研究人员实现
摘要:Halo交换是在分布式计算中,将细分计算网格的边界与相邻进程进行通信的任务。随着图形处理器(graphics processors)增强世界上最快的超级计算机,必须仔细编排跨异构内存层次结构的数据移动,以便大规模利用这些加速器。在这项工作中,研究人员实现并优化了在异构系统上使用GPU感知MPI(GPU-aware MPI)进行高效halo交换所必需的打包、进程间通信、域分解和拓扑感知进程分配。测试案例包括在一维到五维网格上对AMD和Nvidia图形处理器进行的halo交换基准测试。研究发现,在多维halo交换中,与基于MPI数据类型(MPI datatypes)的MPICH和OpenMPI实现相比,自定义打包内核(custom packing kernels)提供了高达两个数量级的加速。此外,与更简单的方法相比,分层拓扑感知进程分配(hierarchical topology-aware process assignment)在异构系统上的不同网格尺寸下提供了更一致的性能。研究人员应用该方法改进了磁流体动力学模拟的强扩展性,在高进程数的并行计算和通信中展示了1.58倍的加速。研究结果强调了核融合(kernel fusion)对于缓解图形处理器上小内核开销的重要性,即使它阻碍了打包与通信的流水线化。
面向结构化网格计算的GPU感知Halo交换优化:论文解读
一、研究背景与问题
在现代高性能计算领域,图形处理器已成为提升计算性能的关键加速器。然而,异构系统的普及带来了软件和硬件碎片化的挑战。特别是在大规模分布式计算中,halo交换——即交换子计算域边界数据的通信模式——成为影响整体性能的核心瓶颈。当前存在的主要问题包括:首先,主流MPI实现(如MPICH和OpenMPI)在处理多维非连续数据时的内置工具效率低下,特别是其派生的MPI数据类型在GPU内存上的表现远不如预期。其次,异构系统的内存层次结构复杂,包含不同带宽和延迟的链路(如GPU片内互联、节点内GPU间互联、节点间网络),如何有效组织数据移动以充分利用这些资源是一个难题。第三,多物理场应用中通常涉及多个耦合的物理场变量同时进行halo交换,这进一步增加了通信模式的复杂性。因此,该研究旨在回答两个核心问题:现代MPI实现是否为多物理场应用中的多维halo交换提供了高效工具?如果不是,那么实现可扩展的GPU感知halo交换所需的关键技术是什么?
二、关键技术方法
研究人员开发了一个开源通信工具包作为基准测试套件。研究中采用了四种关键技术方法:
- 1.
自定义打包内核:设计了多种打包策略,包括非融合(non-fused)、部分融合(partially-fused)和完全融合(fully-fused)的自定义GPU内核,用于从多个输入张量收集非连续数据到连续缓冲区。
- 2.
GPU感知MPI通信:利用MPI_Isend和MPI_Irecv实现全异步的点对点通信,并比较了基于MPI子数组数据类型与自定义内核的性能差异。
- 3.
分层拓扑感知域分解:提出了一种基于层次化索引的系统拓扑简化信息的域分解方法,递归地划分计算域以最小化halo与计算域的比率,并考虑了系统拓扑层次(如节点数、每节点GPU数)。
- 4.
分层进程分配:通过构建分层坐标系统,将线性进程索引映射到多维空间坐标,实现了考虑系统拓扑的秩重排序(rank reordering),优先将相邻进程分配到具有更快链路的设备上。
三、研究结果
1. 打包性能
在二维及以上维度的打包测试中,自定义打包内核比基于MPI数据类型的实现(MPI-PACK和MPI-PACK-HINDEXED)表现出一个数量级甚至更高的性能优势。例如,在三维大网格上,自定义内核加速比可达两个数量级。随着聚合张量数量nf的增加,完全融合的自定义内核由于减少了内核启动次数,展现出最佳的扩展性,而非融合方法因大量小内核开销而性能下降明显。
2. 通信性能
在64个GPU设备上的多维halo交换测试中,采用自定义打包的通信方案(ACM-HE-PIPELINED和ACM-HE-FULLY-FUSED)同样大幅优于基于MPI数据类型的方案(MPI-HE和MPI-HE-HINDEXED)。在小网格尺寸下,完全融合方案表现更优;而在大网格尺寸下,流水线方案(允许打包与通信重叠)更具优势。在Nvidia A100和V100平台上的验证实验得出了相同结论。
3. 域分解与进程分配
分层拓扑感知的域分解和进程分配方法(HIERARCHICAL)在不同网格尺寸下提供了最一致且最优的性能。相比之下,MPI内置的MPI_Dims_create和MPI_Cart_create的秩重排序功能未能有效利用系统拓扑信息,导致性能波动较大。特别是在非立方体计算域上,分层方法的优势更为明显。
4. 实际应用验证
研究人员将该方法应用于磁流体动力学模拟的模板计算框架中,在高进程数条件下实现了1.58倍的强扩展加速比,验证了所提技术的实用价值。
四、总结与结论
研究结论指出,当前MPI实现的内置功能(特别是针对非连续数据的派生数据类型)在GPU感知的多维halo交换中效率严重不足,自定义打包内核是实现高性能的关键。同时,核融合对于缓解GPU上小内核的开销至关重要,尽管它会阻止打包与通信的流水线化。此外,结合简化拓扑信息的分层域分解和进程分配方法能够提供跨系统的一致性能优势。该工作发表在《The International Journal of High Performance Computing Applications》期刊上,其开源通信工具包为后续研究和实践提供了宝贵的基准参考。