[논문 리뷰] BaPipe: Exploration of Balanced Pipeline Parallelism for DNN Training
BaPipe는 가속기 간에 부하가 균형 잡힌 분할을 통해 내배치 파이프라인 병렬 처리를 자동으로 탐색하는 혁신적인 분산 DNN 훈련 프레임워크이다. 적응형 스케줄링(예: 1F1B-SNO)과 자원 인식 부하 균형 조정을 통해 메모리 사용량을 최대 4배 줄이고, GPU 및 FPGA 클러스터에서 최신 프레임워크 대비 최대 3.2배의 속도 향상을 달성한다.
The size of deep neural networks (DNNs) grows rapidly as the complexity of the machine learning algorithm increases. To satisfy the requirement of computation and memory of DNN training, distributed deep learning based on model parallelism has been widely recognized. We propose a new pipeline parallelism training framework, BaPipe, which can automatically explore pipeline parallelism training methods and balanced partition strategies for DNN distributed training. In BaPipe, each accelerator calculates the forward propagation and backward propagation of different parts of networks to implement the intra-batch pipeline parallelism strategy. BaPipe uses a new load balancing automatic exploration strategy that considers the parameters of DNN models and the computation, memory, and communication resources of accelerator clusters. We have trained different DNNs such as VGG-16, ResNet-50, and GNMT on GPU clusters and simulated the performance of different FPGA clusters. Compared with state-of-the-art data parallelism and pipeline parallelism frameworks, BaPipe provides up to 3.2x speedup and 4x memory reduction in various platforms.
연구 동기 및 목표
- 메모리 병목 현상과 높은 통신 오버헤드로 인해 대규모 DNN 훈련에서 데이터 병렬 처리의 한계를 해결하기 위해.
- 일致한 가중치 버전을 갖춘 내배치 스케줄링을 통해 기존 파이프라인 병렬 처리 프레임워크의 비효율성을 극복하기 위해.
- 이종 가속기 클러스터에서 계산, 메모리, 통신을 균형 잡기 위해 최적의 파이프라인 스케줄링 및 모델 분할 전략을 자동 탐색하기 위해.
- 훈련 속도와 수렴 안정성을 유지하면서 메모리 프로파일을 줄여 더 큰 DNN 모델 훈련을 가능하게 하기 위해.
- GPU 및 FPGA 클러스터를 포함한 다양한 하드웨어 플랫폼을 지원하며, 적응형 부하 균형 조정과 통신-계산 겹침을 제공하기 위해.
제안 방법
- 각 가속기가 마이크로배치를 사용하여 파이프라인 방식으로 서로 다른 네트워크 분할을 처리하는 새로운 내배치 파이프라인 병렬 처리 전략을 제안한다.
- 모델 파arameter와 하드웨어 자원(계산, 메모리, 통신)을 분석하여 최적의 분할 및 스케줄링를 선택하는 자동 부하 균형 탐색 전략을 도입한다.
- 1F1B-SNO(한 번의 순방향, 한 번의 역방향, 겹침 없음)와 같은 다수의 파이프라인 스케줄링 기법을 활용하여 통신과 계산을 균형 잡고 파이프라인 버블을 줄인다.
- 하드웨어 제약 조건과 모델 특성에 기반해 최적의 구성(예: 마이크로배치 크기, 분할 방식, 스케줄링 모드)을 선택하는 동적 스케줄링 엔진을 구현한다.
- 특히 FPGA 클러스터에서 고대역폭 내장 메모리에 모델 가중치와 중간 특징을 저장함으로써 메모리 사용량을 최적화한다.
- 플랫폼 전용 메모리 계층과 통신 백엔드(예: GPU용 GLOO, FPGA용 시뮬레이션)에 적응함으로써 GPU 및 FPGA 클러스터를 모두 지원한다.
실험 결과
연구 질문
- RQ1DNN 훈련에서 높은 처리량을 달성하면서도 훈련 일致성을 유지하기 위해 파이프라인 병렬 처리는 어떻게 설계할 수 있는가?
- RQ2내배치 파이프라인 병렬 처리에서 파이프라인 버블을 최소화하고 가속기 활용도를 극대화하기 위한 스케줄링 전략은 무엇인가?
- RQ3계산, 메모리, 통신 제약 조건을 고려할 때 이종 가속기 간에 부하 균형을 자동으로 달성하는 방법은 무엇인가?
- RQ4훈련 속도나 모델 정확도를 희생시키지 않고 DNN 훈련에서 메모리 사용량을 얼마나 줄일 수 있는가?
- RQ5제안된 프레임워크는 GPU 및 FPGA와 같은 다양한 하드웨어 플랫폼에서 속도 향상과 모델 크기 지원 측면에서 어떻게 스케일링되는가?
주요 결과
- GPU 클러스터에서 VGG-16 및 ResNet-50와 같은 작은 DNN에 대해 BaPipe는 데이터 병렬 처리(DP) 대비 최대 3.2배의 속도 향상을 기록했고, 최신 파이프라인 병렬 처리(GPipe) 대비 1.4배의 속도 향상을 달성했다.
- GPU 클러스터에서 BaPipe는 데이터 병렬 처리 대비 최대 4배 더 큰 DNN 모델을 지원하고, GPipe 대비 2배 더 큰 모델을 지원한다. 이는 부하 균형 잡힌 분할을 통한 효과적인 메모리 감소 덕분이다.
- FPGA 클러스터에서 BaPipe는 DP 대비 최대 1.14배의 속도 향상을 기록했으며, 내장 메모리에 가중치를 저장하고 외부 메모리 액세스를 최소화함으로써 메모리 사용량을 최대 4배 줄였다.
- 프레임워크는 최적의 스케줄링(예: 1F1B-SNO) 및 분할 전략을 자동으로 선택하여 수동 튜닝 없이 성능을 향상시켰다.
- ResNet-50에 대해, 통신 비용이 계산 이득을 초월할 경우 BaPipe는 PipeDream보다 DP를 최적의 전략으로 선택하여 성능을 뛰어넘었다.
- BaPipe는 GPU 클러스터에서 DP 대비 최대 4배 더 큰 파rameter 수를 가진 GNMT-L 모델을 훈련시킬 수 있어 거대 DNN에 대한 확장성을 입증했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.