[论文解读] Optimized Broadcast for Deep Learning Workloads on Dense-GPU InfiniBand Clusters: MPI or NCCL?
本文提出了一种在MVAPICH2-GDR中增强调优的流水线环形MPI_Bcast设计,以优化密集-GPU InfiniBand集群上的深度学习工作负载。与NCCL相比,该设计在节点内和节点间GPU广播中分别实现了高达14倍和16.6倍的延迟降低,并在使用Microsoft CNTK的128个GPU上训练VGG时实现了最高7%的训练加速,证明了经过优化的MPI可以超越专用库(如NCCL)的性能。
Dense Multi-GPU systems have recently gained a lot of attention in the HPC arena. Traditionally, MPI runtimes have been primarily designed for clusters with a large number of nodes. However, with the advent of MPI+CUDA applications and CUDA-Aware MPI runtimes like MVAPICH2 and OpenMPI, it has become important to address efficient communication schemes for such dense Multi-GPU nodes. This coupled with new application workloads brought forward by Deep Learning frameworks like Caffe and Microsoft CNTK pose additional design constraints due to very large message communication of GPU buffers during the training phase. In this context, special-purpose libraries like NVIDIA NCCL have been proposed for GPU-based collective communication on dense GPU systems. In this paper, we propose a pipelined chain (ring) design for the MPI_Bcast collective operation along with an enhanced collective tuning framework in MVAPICH2-GDR that enables efficient intra-/inter-node multi-GPU communication. We present an in-depth performance landscape for the proposed MPI_Bcast schemes along with a comparative analysis of NVIDIA NCCL Broadcast and NCCL-based MPI_Bcast. The proposed designs for MVAPICH2-GDR enable up to 14X and 16.6X improvement, compared to NCCL-based solutions, for intra- and inter-node broadcast latency, respectively. In addition, the proposed designs provide up to 7% improvement over NCCL-based solutions for data parallel training of the VGG network on 128 GPUs using Microsoft CNTK.
研究动机与目标
- 为解决大规模深度学习工作负载中通用MPI运行时与专用库(如NCCL)之间的性能差距。
- 针对密集-GPU InfiniBand集群中的节点内和节点间GPU通信,优化MPI_Bcast,尤其关注深度学习训练中常见的大消息尺寸。
- 评估CUDA感知MPI运行时(如MVAPICH2-GDR)是否可通过调优实现与NCCL相当或更优的广播性能。
- 通过微基准测试和真实世界DNN训练(如VGG)对NCCL、集成NCCL的MPI与优化后的MPI_Bcast进行全面性能对比。
- 证明高效的MPI运行时设计可消除数据并行DNN训练中对外部库(如NCCL)的依赖。
提出的方法
- 设计一种流水线链式(环形)算法用于MPI_Bcast,以降低多GPU节点中的延迟并提升可扩展性。
- 在MVAPICH2-GDR中集成增强的集体通信调优框架,以动态适应不同的消息大小和系统拓扑。
- 利用InfiniBand硬件特性(如RDMA和硬件多播)加速GPU到GPU的数据传输。
- 通过GPU内存注册和对等访问优化数据传输模式,以最小化CPU参与并降低延迟。
- 在微基准测试和使用Microsoft CNTK及VGG网络的真实训练中实现并评估所提出的MPI_Bcast。
- 在节点内和节点间通信场景下,与基于NCCL的广播及集成NCCL的MPI_Bcast进行性能对比。
实验结果
研究问题
- RQ1在密集-GPU集群中,基于流水线环形的MPI_Bcast设计是否能超越NCCL在GPU广播中的性能?
- RQ2在深度学习工作负载中,使用标准MPI运行时进行大消息通信时的性能瓶颈是什么?
- RQ3在不同消息大小和系统配置下,优化后的MPI_Bcast与NCCL的性能相比如何?
- RQ4CUDA感知MPI运行时是否可通过调优超越专用库(如NCCL)在DNN训练工作负载中的性能?
- RQ5在真实深度学习框架(如Microsoft CNTK)中使用优化后的MPI_Bcast,其应用级优势是什么?
主要发现
- 所提出的MVAPICH2-GDR优化版MPI_Bcast在节点内GPU广播中,与NCCL相比延迟最高降低14倍。
- 在节点间广播中,所提设计相比基于NCCL的解决方案延迟最高降低16.6倍。
- 在使用Microsoft CNTK于128个GPU上训练VGG网络时,优化后的MPI_Bcast相比集成NCCL的MPI将训练时间最多缩短7%。
- 性能提升在小消息和中等消息尺寸下最为显著,此时NCCL因设计限制而表现受限。
- 在大消息尺寸下,优化后的MPI_Bcast与NCCL性能相当,证明其在全消息尺寸范围内的鲁棒性。
- 结果表明,通过合理调优,通用MPI运行时可匹配甚至超越专用库(如NCCL)在深度学习通信工作负载中的性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。