Demystifying Parallel and Distributed Deep Learning: An In-Depth Concurrency Analysis
It provides a theoretical and practical overview for researchers and practitioners tackling scalability challenges in deep learning, but is incremental as a survey.
This survey analyzes the problem of accelerating deep neural network training through parallel and distributed techniques, reviewing concurrency types from single operators to distributed systems and extrapolating future directions.
Deep Neural Networks (DNNs) are becoming an important tool in modern computing applications. Accelerating their training is a major challenge and techniques range from distributed algorithms to low-level circuit design. In this survey, we describe the problem from a theoretical perspective, followed by approaches for its parallelization. We present trends in DNN architectures and the resulting implications on parallelization strategies. We then review and model the different types of concurrency in DNNs: from the single operator, through parallelism in network inference and training, to distributed deep learning. We discuss asynchronous stochastic optimization, distributed system architectures, communication schemes, and neural architecture search. Based on those approaches, we extrapolate potential directions for parallelism in deep learning.