[论文解读] Efficient Training of Convolutional Neural Nets on Large Distributed Systems
本文提出了三项关键优化,以实现卷积神经网络高效分布式训练:通过内存中数据加载消除I/O瓶颈,采用多色MPI Allreduce算法降低通信开销,以及优化Torch框架中数据并行表的线程级实现。这些技术使在256个GPU上训练ImageNet-1k的ResNet-50模型仅用48分钟完成——比先前最先进方法快18%——同时保持了峰值准确率。
Deep Neural Networks (DNNs) have achieved im- pressive accuracy in many application domains including im- age classification. Training of DNNs is an extremely compute- intensive process and is solved using variants of the stochastic gradient descent (SGD) algorithm. A lot of recent research has focussed on improving the performance of DNN training. In this paper, we present optimization techniques to improve the performance of the data parallel synchronous SGD algorithm using the Torch framework: (i) we maintain data in-memory to avoid file I/O overheads, (ii) we present a multi-color based MPI Allreduce algorithm to minimize communication overheads, and (iii) we propose optimizations to the Torch data parallel table framework that handles multi-threading. We evaluate the performance of our optimizations on a Power 8 Minsky cluster with 32 nodes and 128 NVidia Pascal P100 GPUs. With our optimizations, we are able to train 90 epochs of the ResNet-50 model on the Imagenet-1k dataset using 256 GPUs in just 48 minutes. This significantly improves on the previously best known performance of training 90 epochs of the ResNet-50 model on the same dataset using 256 GPUs in 65 minutes. To the best of our knowledge, this is the best known training performance demonstrated for the Imagenet- 1k dataset.
研究动机与目标
- 解决在分布式DNN训练中因小批量数据加载时文件I/O缓慢而引起的性能瓶颈。
- 通过优化MPI Allreduce集体通信操作,减少同步数据并行SGD中的通信开销。
- 提升Torch框架中数据并行表模块的多线程效率,以更好地利用多GPU系统。
- 在不牺牲模型准确率的前提下,实现ResNet-50和GoogLeNet等大模型在大规模GPU集群上的更快训练时间。
- 在256个GPU上实现ImageNet-1k的最佳已知训练性能,树立分布式DNN训练的新性能标准。
提出的方法
- 实施一种内存中数据分发策略,将整个ImageNet-1k数据集预先加载到分布式系统内存中,以消除训练迭代过程中的重复磁盘I/O操作。
- 设计一种基于多色的MPI Allreduce算法,通过在GPU节点间重叠计算与通信阶段,降低通信延迟。
- 优化Torch框架中数据并行表模块,以改善线程级负载均衡,并减少在多GPU、多节点训练环境中的竞争。
- 使用Torch深度学习框架,结合Lua脚本和C语言的FFI,实现高效的底层计算,从而支持高性能分布式训练。
- 将优化集成到使用OpenMPI的分布式Torch应用中,并在配备128个P100 GPU的POWER8 Minsky集群上评估性能。
- 通过测量不同节点数量(8、16、32)下的每轮训练时间与验证准确率,评估系统的可扩展性与正确性。
实验结果
研究问题
- RQ1在使用ImageNet-1k等大规模数据集时,如何最小化分布式DNN训练中的文件I/O开销?
- RQ2哪些通信优化技术能显著降低同步数据并行SGD中MPI Allreduce步骤的延迟?
- RQ3Torch数据并行表框架中的线程级低效在多GPU系统上在多大程度上限制了训练性能?
- RQ4I/O、通信和线程优化的组合能否在不造成准确率下降的前提下,显著提升ResNet-50等大模型的训练速度?
- RQ5在相同硬件和数据集条件下,所提出系统与最先进实现相比,在训练时间和模型准确率方面表现如何?
主要发现
- 内存中数据加载策略显著降低了文件I/O开销,大幅提升了数据吞吐量,并减少了每轮训练时间。
- 多色MPI Allreduce算法降低了通信延迟,在GoogLeNet和ResNet-50模型上均实现了每轮训练时间15–18%的减少。
- 优化后的Torch数据并行表提升了线程利用率并减少了同步瓶颈,尤其在较大节点数量下表现更优。
- 在所有优化应用后,使用256个GPU在ImageNet-1k上训练ResNet-50仅用48分钟完成90轮——比先前最佳记录的65分钟快18%。
- 优化后系统达到75.4%的峰值验证准确率,与先前最先进方法报告的76.2%相当,证实无准确率损失。
- 在不同节点数量下,ResNet-50的加速比达到110–130%,GoogLeNetBN达到58–72%,展现出强大的可扩展性与性能提升。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。