Deep learning is increasingly popular as it is applied to many problems of various fields with excellent performance. Unfortunately, it often takes a large amount of time to train a practical deep model for real-world quality. While distributed deep learning that harnesses multiple GPUs in parallel can potentially reduce training time significantly, it is not only onerous but also error-prone to manually write the logic for distributed training of each model. Some research works have tackled the problem by proposing algorithms that automatically parallelize deep learning models given a single-GPU model. However, they often support only basic functions for distributed training, and misses a number of important factors for efficient distributed deep learning.In this paper, we propose an automatic parallelization for efficient distributed training beyond basic parallelization of a deep learning model. First, we minimize the overhead in switching the device set to a new configuration, which allows fast re-adjustment of aggregate resource of a GPU cluster. Second, it enables training with a large batch size even with a single GPU, which leads to better utilization of cluster resource. Finally, it realizes near-uniform load balancing, reducing the variation of processing latency and better resource utilization. Evaluation shows that our auto-parallelization expands a device set up to 6 times faster and shrink a device set almost instantly, and improves the scalability up to 2.97 times, compared to existing methods.
딥 러닝 알고리즘은 뛰어난 성능을 바탕으로 다양한 분야에서 많은 문제해결에 적용되고 있다. 하지만 수 많은 데이터와 연산을 필요로 하는 딥 러닝 모델은 학습에 굉장히 오랜 시간이 소요된다. 여러 대의 GPU를 활용한 분산 학습을 통해 학습에 걸리는 시간을 많이 단축할 수 있지만, 모델 개발자가 분산 학습을 위한 코드를 매번 직접 구현하는 것은 번거로울 뿐만 아니라 구현 상의 오류를 범하기 쉽다. 이를 위해 딥 러닝 모델을 자동으로 병렬화 하여 분산 학습을 할 수 있도록 하는 알고리즘이 제시되었지만 기본적인 기능 외에 효율적인 분산 학습을 위한 고려는 부족하다. 본 논문에서는 딥 러닝 모델의 기본적인 자동 병렬화 뿐만 아니라, 효율적인 분산 학습을 위한 알고리즘을 제시한다. 첫 번째로 학습 도중 디바이스셋을 확장 혹은 축소할 때 발생하는 오버헤드를 최소화 함으로써, 효율적인 자원 활용을 위한 빠른 자원 재조정이 가능하게 했고, 두 번째로 하나의 GPU 에서도 큰 배치사이즈에 대한 학습이 가능하게 함으로써 기존 시스템으로 불가능했던 자원 활용이 가능하게 했다. 마지막으로 굉장히 균일한 로드 밸런싱을 통해 디바이스별 연산 소요시간의 차이를 줄임으로써 디바이스들을 더 효율적으로 학습에 활용할 수 있게 했다. 결과적으로 이 논문에서 제안한 기법을 활용하면, 기존의 방식에 비해 디바이스셋 확장을 최대 6배 빠르게 할 수 있고, 디바이스셋 축소는 즉각적으로 할 수 있는 것은 실험을 통해 확인했다. 또한 학습 속도는 최대 2.97배 향상시킬 수 있는 것을 확인하였다.