基于TensorFlow与CUDA感知MPI的可扩展分布式DNN训练:表征、设计与性能评估
摘要
TensorFlow已成为应用最广泛的机器学习/深度学习框架。然而,文献中鲜有对TensorFlow在大规模计算与通信需求下分布式训练大型ML/DL模型能力的透彻理解。TF最常用的分布式训练方法可归类如下:1)Google远程过程调用(gRPC),2)gRPC+X:X=(InfiniBand Verbs、消息传递接口、GPUDirect RDMA),以及3)无gRPC:Baidu基于MPI的Allreduce、基于MPI的Horovod、基于NVIDIA NCCL的Horovod。本文中,我们在包括Piz Daint系统(Top500中第6名)在内的多个GPU集群上对这些分布式训练方法进行了深入的性能表征与分析。我们通过实验在以下方面获得新见解:1)DNN训练的应用级可扩展性,2)批大小对扩展效率的影响,3)无gRPC方法中使用的MPI库的影响,以及4)DNN架构的类型与规模。基于这些实验,我们提出两个关键见解:1)总体而言,对于多数配置,无gRPC设计比基于gRPC的方法性能更优;2)无gRPC的性能受使用Allreduce的梯度聚合影响显著。最后,我们提出一种真正的CUDA感知MPI Allreduce设计,利用CUDA内核与指针缓存高效执行大规模归约。我们提出的设计对于小和中消息比NCCL2性能提升5-17倍,并将大消息的延迟降低29%。所提优化使Horovod-MPI在64块GPU上训练ResNet-50达到约90%的扩展效率。此外,在Piz Daint集群上,Horovod-MPI对ResNet-50和MobileNet的吞吐量分别比原生gRPC方法高1.8倍和3.2倍。
引用
@article{arxiv.1810.11112,
title = {Scalable Distributed DNN Training using TensorFlow and CUDA-Aware MPI: Characterization, Designs, and Performance Evaluation},
author = {Ammar Ahmad Awan and Jeroen Bedorf and Ching-Hsiang Chu and Hari Subramoni and Dhabaleswar K. Panda},
journal= {arXiv preprint arXiv:1810.11112},
year = {2019}
}
备注
10 pages, 9 figures, submitted to IEEE IPDPS 2019 for peer-review