[论文解读] Exploring Hidden Dimensions in Parallelizing Convolutional Neural Networks
引入分层并行,使每个 CNN 层使用自己的并行化策略,通过基于图的成本模型优化每层执行以提高吞吐量并在不牺牲准确性的情况下减少通信。
The past few years have witnessed growth in the computational requirements for training deep convolutional neural networks. Current approaches parallelize training onto multiple devices by applying a single parallelization strategy (e.g., data or model parallelism) to all layers in a network. Although easy to reason about, these approaches result in suboptimal runtime performance in large-scale distributed training, since different layers in a network may prefer different parallelization strategies. In this paper, we propose layer-wise parallelism that allows each layer in a network to use an individual parallelization strategy. We jointly optimize how each layer is parallelized by solving a graph search problem. Our evaluation shows that layer-wise parallelism outperforms state-of-the-art approaches by increasing training throughput, reducing communication costs, achieving better scalability to multiple GPUs, while maintaining original network accuracy.
研究动机与目标
- 由于异构层特性,促使对 CNN 各层灵活并行的需求。
- 提出分层并行以允许每层配置并保持网络准确性。
- 开发成本模型和图搜索算法,以找到全局最优的逐层并行化策略。
- 在标准 CNN 上展示相对于最先进方法的吞吐量和通信改进。
提出的方法
- 将每层的并行化配置定义为按维度并行度的乘积。
- 用 t_c、t_x 和 t_s 来建模计算和通信成本,以估计每层和层间的时间。
- 使用动态规划将优化转化为设备图和计算图上的图搜索问题。
- 应用节点和边消除简化计算图,同时保持最优策略。
- 提供一种算法(Algorithm 1)在成本模型下计算全局最优的逐层策略。
实验结果
研究问题
- RQ1层级并行是否能在 CNN 训练中超越单一策略方法(数据并行或模型并行)?
- RQ2成本模型和基于图的搜索如何识别逐层并行配置以最小化每次迭代时间?
- RQ3逐层并行对吞吐量和跨设备通信在标准 CNN 中的影响如何?
- RQ4该方法对大规模 GPU 集群和不同 CNN 架构的扩展性如何?
- RQ5学习到的策略是否能保持原始网络的准确性?
主要发现
- 在 AlexNet、VGG-16 和 Inception-v3 上,16 个 GPU 的情形下,层级并行提供比最先进策略高出 1.4–2.2× 的训练吞吐量。
- 与数据和模型并行相比,层级并行将通信成本降低了 1.3–23.0×。
- 层级并行实现更好的扩展性,例如在 1 到 16 GPU 的情况下,Inception-v3 的加速达到 15.5×,而其他策略最高可达 11.2×。
- 成本模型在测试配置中将每一步的执行时间估计在实际测量时间的 ~10% 内。
- 该方法将网络训练成与数据/模型并行相同的网络,同时在保持原始网络准确性的前提下改进运行时性能。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。