[GTC2023 Poster SpotLight]——用于GPU系统的高效MPI广播相关算法

Highly Efficient Alltoall and Alltoallv Communication Algorithms for GPU Systems

来源

本文章为NVIDIA GTC2023中的Posters Spotlight: High Performance Computing [S52408] 的会议技术分享总结。
文章为Highly Efficient Alltoall and Alltoallv Communication Algorithms for GPU Systems

研究动机

涉及MPI的高性能计算应用中,由于进程之间经常需要多对多的交换信息, 所以使用最多的两个MPI通信操作是MPI_AlltoallMPI_Alltoallv.

MPI_Alltoall用于给通信区域中的所有进程发送相同信息,类似广播
MPI_Alltoallv用于给通信区域中的所有进程依据进程号的不同从同一个buffer中取不同数据发送(如一个数组,按进程号取不同数据)

同时,通信模式往往是是大规模密集GPU系统的性能瓶颈,其主要原因是当前的但是目前的MPI算法没有考虑到现代GPU系统的一些特性。以DGXA100为例子,
image.png
上图中简要描述了DGXA100系统的架构。单节点有8个使用NVLINKNVSWITCH互联的A100 GPU。但是,没有为这种新型的以GPU为主导的集群设计相关的MPI通信算法,大多数现有的实现只是简单使用基于send-recv方法来进行自动(应该是说MPI+CPU的通信算法)的通信。
因此,现代的密集GPU系统迫切需要新设计一种通信模式。

挑战

如何使用混合IPC-Advance技术给现代密集GPU系统创建一种高效的基于GPU的自动通信算法是主要挑战.
能否利用密集GPU系统的特性,例如:NVLink,来激发对MPI算法的优化需求,从而充分利用这种高效连接(指的是高效的NVLink)?
如何利用IPC的零拷贝load-store机制来设计GPU感知的IPC-Advance所有集合操作?
能否优化依赖alltoall实现FFT和矩阵转置的高性能计算和深度学习的工作负载性能来提供良好的拓展性?

创新点

提出了混合 IPC-AdvancedAlltoallAlltoallv通信算法,以优化GPU感知的mpi AlltoallvAlltoallv在不同密集GPU平台上的性能。
提出了一种基于Kernel和基于MemcpyIPC-Advanced算法。
提出的IPC-Advanced设计通过使用零拷贝load-store IPC机制提供了重叠节点内部和节点间通信的潜力

性能表现

micro-benchmark表现

ThetaGPU@ALCF系统上使用OSU-micro-benchmark suite中的osu_alltoall时,我们提出的设计与当前的设计相比:
在16个节点(128个GPU)上,使用(16字节大小的)小消息时,我们提出的Alltoall设计的可以获得12倍的加速。
在16个节点(128个GPU)上,使用(1MB大小的)大消息时,我们提出的Alltoall设计可以获得为20%的加速。

heFFTe

image.png
image.png
ThetaGPU@ALCF系统上,在heFFTe中,与最先进的CUDA-aware通信库相比,我们的设计的的性能为:

  • alltoall通信的吞吐量为16倍
  • alltoallv通信的的吞吐量为28倍

DeepSpeed PSDNS

  1. ThetaGPU@ALCF系统中,使用8个节点(64个GPU)上,在DeepSpeed中我们提出的设计为OpenMPl的吞吐量的59倍。

image.png

  1. Lassen@LLNL系统中,使用64个Lassen节点(256个GPU),在PSDNS中,使用我们的设计可获得3.5倍的加速。

image.png

主要贡献

  1. 基于OSU-micro-benchmark suite的密集GPU系统MPI_AlltoallMPI_Alltoallv的综合表征与评价,并于当前使用的先进库作比较。
  2. 提出一种高性能和可扩展的Alltoallv通信设计
  3. 在最多128GPU上的FFT应用heFFTAlltoall Alltoallv, 最多64GPU上的的深度学习应用 DeepSpeedAlltoall, 最多256GPU上的高性能计算应用PSDNSAlltoall 这些项目上,将我们的设计与现在主流库进行对比分析

个人总结

文章主要针对当前使用大量GPU的异构系统中的MPI通信做优化,当前的算法没有考虑到类似使用NVLINK之类的GPU 通信技术来加速使用MPI 的进程间信息交换。通过提出针对GPU系统特别优化后的信息交换算法,可以极大加速异构应用进程间的信息交换速度,而目前异构应用(高性能计算、深度学习等)的瓶颈往往就是通信。打破这样的瓶颈就可以获得极大的应用性能提升,这也是工作的主要创新点。而实验结果也验证了这一点,可以获得超高的通信加速比。可以用于通信瓶颈的异构应用。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值