[논문 리뷰] Unifying Data, Model and Hybrid Parallelism in Deep Learning via Tensor Tiling
이 논문은 통신 오버헤드를 최소화하기 위해 최적의 텐서 타일링을 통해 딥러닝에서 데이터, 모델, 하이브리드 병렬 처리를 통합하는 시스템인 SoyBean을 제안한다. 병렬 처리를 텐서 타일링 문제로 모델링하고, 구조화된 DNN 데이터플로우 그래프에서 동적 프로그래밍을 적용함으로써, 8-GPU 환경에서 AlexNet과 VGG에서 순수 데이터 병렬 처리 대비 1.5×–4×의 성능 향상을 달성한다.
Deep learning systems have become vital tools across many fields, but the increasing model sizes mean that training must be accelerated to maintain such systems' utility. Current systems like Tensorflow and MXNet focus on one specific parallelization strategy, data parallelism, which requires large training batch sizes in order to scale. We cast the problem of finding the best parallelization strategy as the problem of finding the best tiling to partition tensors with the least overall communication. We propose an algorithm that can find the optimal tiling. Our resulting parallelization solution is a hybrid of data parallelism and model parallelism. We build the SoyBean system that performs automatic parallelization. SoyBean automatically transforms a serial dataflow graph captured by an existing deep learning system frontend into a parallel dataflow graph based on the optimal tiling it has found. Our evaluations show that SoyBean is 1.5x-4x faster than pure data parallelism for AlexNet and VGG. We present this automatic tiling in a new system, SoyBean, that can act as a backend for Tensorflow, MXNet, and others.
연구 동기 및 목표
- 분산 시스템에서 통신 오버헤드로 인한 딥러닝 학습의 확장성 한계를 해결한다.
- 대규모 배치 크기 필요 및 모델 정확도 저하로 인해 성능이 떨어지는 단순 데이터 병렬 처리에 의존하는 기존 시스템의 한계를 극복한다.
- 텐서 타일링 기반의 단일 프레임워크에서 데이터, 모델, 하이브리드 병렬 처리를 통합하여 통신 최소화 전략을 최적화한다.
- 기존 딥러닝 프레임워크(예: TensorFlow, MXNet)와 통합할 수 있는 자동화되고 백엔드에 종속되지 않는 시스템을 개발한다.
- 데이터플로우 그래프에서 타일링 최적화 문제로 문제를 공식화함으로써, DNN 병렬 처리를 위한 최적의 확장 가능한 솔루션을 제공한다.
제안 방법
- 텐서가 다양한 차원을 따라 타일링되어 병렬 처리가 가능하도록, 계산을 데이터플로우 그래프로 모델링한다.
- 각 텐서의 최적 타일링 전략 선택을 통해 총 통신 비용을 최소화하는 병렬 처리 문제를 공식화한다.
- DNN의 계층적이고 계층화된 구조를 활용하여 데이터플로우 그래프를 효율적인 동적 프로그래밍을 위한 레벨 체인으로 재구성한다.
- 크기, 형상, 모델 구성 요소를 고려하여 각 텐서의 최적 타일링 구성 설정을 계산하기 위해 재귀적 동적 프로그래밍을 적용한다.
- 장치 간 데이터 이동을 나타내는 가중치가 부여된 통신 비용 그래프를 구성하고, 이를 타일링 결정을 안내하는 데 사용한다.
- MXNet용 C++ 백엔드 플러그인으로서 SoyBean을 구현하여, 순차적 데이터플로우 그래프를 최적화된 병렬 그래프로 자동 변환할 수 있도록 한다.
실험 결과
연구 질문
- RQ1공통적인 타일링 추상화를 통해 딥러닝에서 데이터, 모델, 하이브리드 병렬 처리를 통합할 수 있는 프레임워크는 가능한가?
- RQ2DNN 계산 내 모든 텐서에서 통신 비용을 최소화하는 최적의 타일링 전략을 찾는 것이 가능한가?
- RQ3다양한 DNN 아키텍처에서 최적 타일링 전략의 성능이 순수 데이터 병렬 또는 모델 병렬 처리 대비 어떻게 비교되는가?
- RQ4구조화된 DNN 데이터플로우 그래프에 대해 동적 프로그래밍을 효과적으로 적용하여 타일링 문제의 근사 최적 또는 정확한 해를 찾을 수 있는가?
- RQ5사용자 코드 수정 없이 기존 딥러닝 프레임워크에 자동 타일링 시스템을 통합할 수 있는 정도는 어느 정도인가?
주요 결과
- 8-GPU 시스템에서 AlexNet과 VGG를 학습할 때, 순수 데이터 병렬 처리 대비 SoyBean은 1.5×에서 4×의 성능 향상을 달성한다.
- SoyBean이 찾은 최적 타일링 전략은 데이터 병렬과 모델 병렬을 효과적으로 조합하여 단일 전략 접근 방식을 뛰어넘는다.
- 시스템은 통신 오버헤드를 지능적으로 줄이기 위해 장치 간 데이터 이동을 최소화하는 방향으로 텐서를 분할한다.
- 일반적인 타일링 문제의 NP-완전성에도 불구하고, 동적 프로그래밍 접근 방식은 계층 아키텍처를 가진 DNN에 대해 최적 타일링 구성 설정을 성공적으로 계산한다.
- SoyBean의 백엔드 설계 덕분에 MXNet 및 TensorFlow와 같은 기존 딥러닝 프레임워크와 원활하게 통합되어 사용자 코드 수정 없이 자동 병렬 처리를 가능하게 한다.
- 성능 향상은 특히 통신 비용이 지배적인 더 큰 모델(VGG)에서 가장 두드러지며, 이는 방법의 확장성을 입증한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.