Skip to main content
QUICK REVIEW

[논문 리뷰] PipeDream: Fast and Efficient Pipeline Parallel DNN Training

Aaron Harlap, Deepak Narayanan|arXiv (Cornell University)|2018. 06. 08.
Advanced Neural Network Applications참고 문헌 4인용 수 97
한 줄 요약

PipeDream은 파이프라인 병렬 모델과 데이터 병렬성을 결합하여 빠른 파이프라인 병렬 DNN 학습을 가능하게 하며, 통신을 크게 줄이고 계산과 통신의 중첩을 통해 데이터-병렬 BSP 대비 정확도 도달까지 필요한 시간을 단축합니다.

ABSTRACT

PipeDream is a Deep Neural Network(DNN) training system for GPUs that parallelizes computation by pipelining execution across multiple machines. Its pipeline parallel computing model avoids the slowdowns faced by data-parallel training when large models and/or limited network bandwidth induce high communication-to-computation ratios. PipeDream reduces communication by up to 95% for large DNNs relative to data-parallel training, and allows perfect overlap of communication and computation. PipeDream keeps all available GPUs productive by systematically partitioning DNN layers among them to balance work and minimize communication, versions model parameters for backward pass correctness, and schedules the forward and backward passes of different inputs in round-robin fashion to optimize "time to target accuracy". Experiments with five different DNNs on two different clusters show that PipeDream is up to 5x faster in time-to-accuracy compared to data-parallel training.

연구 동기 및 목표

  • 데이터 병렬화가 높은 통신 비용과 대역폭 한계로 인해 대형 DNN 교육이 어려운 문제의 필요성을 동기화합니다.
  • 계산과 통신의 균형을 맞추기 위해 파이프라인 병렬 모델 병렬성과 데이터 병렬성을 결합한 파이프라인 병렬 학습 접근법을 제안합니다.
  • 만들어질 때 makespan을 최소화하고 유익한 경우 복제를 가능하게 하도록 DNN을 파이프라인 스테이지로 자동 분할합니다.
  • 파이프라인화에 따른 가중치 버전 관리 및 스테이지 간 동기화를 통해 올바른 학습을 보장합니다(가중치 저장 및 수직 동기화).
  • 실제 클러스터의 CNN 및 RNN에서 일반 하드웨어를 사용하는 실험으로 경험적 성능 향상을 입증합니다.

제안 방법

  • GPU 간에 계층을 스테이지로 분할하여 계산 균형을 맞추고 스테이지 간 통신을 최소화합니다.
  • 파티션을 위한 각 레이어의 계산 시간, 활성화 크기, 파라미터 크기를 추정하기 위해 DNN의 짧은 실행을 프로파일링합니다.
  • 다이나믹 프로그래밍을 사용해 스테이지 복제 및 NOAM(활성 미배치 수)을 포함한 최적의 파이프라인 분할을 찾습니다.
  • 1-forward-1-backward (1F1B) 스케줄링 정책을 적용하여 정상 상태에서 모든 GPU를 바쁘게 유지합니다.
  • 가중치 저장을 적용하여 각 미니배치의 순방향 및 역방향 패스를 주어진 가중치 버전과 일관되게 유지하고, 수직 동기화를 사용해 스테이지 간 업데이트를 정렬합니다.
  • 최소 할당 오버헤드를 위해 미니배치 및 중간 상태를 위한 GPU 메모리를 사전에 할당합니다.

실험 결과

연구 질문

  • RQ1데이터 병렬이라면 충분하지 않은 GPU의 통신 비용과 하드웨어 효율을 개선하기 위해 DNN 학습을 데이터 병렬을 넘어서 어떻게 병렬화할 수 있을까?
  • RQ2레이어를 파이프라인 스테이지로 자동 분할하고 선택적 복제를 허용하는 것이 대형 모델의 학습 시간을 최소화할 수 있을까?
  • RQ3수렴성을 보존하기 위해 필요한 스케줄링 및 일관성 메커니즘(가중치 저장 및 수직 동기화)은 무엇인가?
  • RQ4파이프라인 병렬 학습이 CNN 및 RNN 모델에서 데이터 병렬 BSP에 비해 시간-대-정확도 측면에서 어떤 성능을 보이는가?
  • RQ5다양한 모델과 하드웨어 구성으로 구성된 실제 클러스터에서 PipeDream을 사용할 때의 실용적 이득은 무엇인가?

주요 결과

  • PipeDream은 대형 DNN에 대해 데이터-병렬 학습에 비해 문자열적 간섭을 통해 피연산자 간 통신을 최대 95%까지 감소시킵니다.
  • PipeDream은 통신과 계산을 중첩시키며 BSP보다 더 높은 하드웨어 효율을 달성합니다.
  • 다섯 모델(Inception-v3, VGG16, ResNet-50, AlexNet, S2VT)을 포함하여 PipeDream은 시간-대-정확도를 최대 5.12배 가속합니다(모델에 따라 다름).
  • PipeDream은 두 클러스터에서 AlexNet에서 최대 6.76배, S2VT에서 최대 3배의 속도 향상을 보여주며 데이터-병렬 BSP 대비 향상됩니다.
  • 이 시스템은 CNN과 RNN(seq-to-seq) 모두를 지원하며 일반 클라우드 GPU에서 작동합니다.
  • 실험 결과 PipeDream은 테스트 구성에서 데이터-병렬 학습 대비 시간-대-정확도에서 최대 5배 빠릅니다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.