Distributed Training Large-Scale Deep Architectures
arXiv:1709.06622
Abstract
Scale of data and scale of computation infrastructures together enable the current deep learning renaissance. However, training large-scale deep architectures demands both algorithmic improvement and careful system configuration. In this paper, we focus on employing the system approach to speed up large-scale training. Via lessons learned from our routine benchmarking effort, we first identify bottlenecks and overheads that hinter data parallelism. We then devise guidelines that help practitioners to configure an effective system and fine-tune parameters to achieve desired speedup. Specifically, we develop a procedure for setting minibatch size and choosing computation algorithms. We also derive lemmas for determining the quantity of key components such as the number of GPUs and parameter servers. Experiments and examples show that these guidelines help effectively speed up large-scale deep learning training.
References in corpus (11)
- Caffe: Convolutional Architecture for Fast Feature Embedding
- Recurrent Neural Network Regularization
- cuDNN: Efficient Primitives for Deep Learning
- One weird trick for parallelizing convolutional neural networks
- Revisiting Distributed Synchronous SGD
- Practical recommendations for gradient-based training of deep architectures
- Fast Convolutional Nets With fbfft: A GPU Performance Evaluation
- Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-Normalized Models
- Benchmarking State-of-the-Art Deep Learning Software Tools
- Caffe con Troll: Shallow Ideas to Speed Up Deep Learning
- Speech Recognition with Deep Recurrent Neural Networks