[논문 리뷰] User-transparent Distributed TensorFlow
이 논문은 사용자 코드를 수정하지 않고도 HPC 시스템에서 확장 가능한 훈련을 가능하게 하는 사용자 투명한 분산 Tensorflow 구현인 MaTEx-TensorFlow를 제시한다. MPI를 TensorFlow 런타임에 직접 통합하고 저수준 통신을 추상화함으로써, 표준 AlexNet, GoogLeNet, InceptionV3 및 ResNet-50 모델을 사용할 때 다중 노드 CPU 및 GPU 시스템에서 거의 이상적인 스케일링을 달성하며, 순차적 훈련과 동일한 손실 곡선을 보인다.
Deep Learning (DL) algorithms have become the {\em de facto} choice for data analysis. Several DL implementations -- primarily limited to a single compute node -- such as Caffe, TensorFlow, Theano and Torch have become readily available. Distributed DL implementations capable of execution on large scale systems are becoming important to address the computational needs of large data produced by scientific simulations and experiments. Yet, the adoption of distributed DL implementations faces significant impediments: 1) most implementations require DL analysts to modify their code significantly -- which is a show-stopper, 2) several distributed DL implementations are geared towards cloud computing systems -- which is inadequate for execution on massively parallel systems such as supercomputers. This work addresses each of these problems. We provide a distributed memory DL implementation by incorporating required changes in the TensorFlow runtime itself. This dramatically reduces the entry barrier for using a distributed TensorFlow implementation. We use Message Passing Interface (MPI) -- which provides performance portability, especially since MPI specific changes are abstracted from users. Lastly -- and arguably most importantly -- we make our implementation available for broader use, under the umbrella of Machine Learning Toolkit for Extreme Scale (MaTEx) at { exttt http://hpc.pnl.gov/matex}. We refer to our implementation as MaTEx-TensorFlow.
연구 동기 및 목표
- 사용자가 자신의 TensorFlow 코드를 수정할 필요 없이 분산 딥러닝을 사용할 수 있도록 하여 접근 장벽을 낮추기.
- 고대역폭 인터커넥트(예: InfiniBand)를 갖춘 HPC 시스템에서 gRPC 기반 솔루션에 비해 부적합한 환경에서도 효율적인 분산 Tensorflow 실행을 가능하게 하기.
- 데이터 병렬 처리를 지원하는 생산용, 고성능, 이식 가능한 분산 Tensorflow 런타임을 제공하기.
- 표준 Tensorflow와의 기능 일치를 확보하기 위해 동일한 훈련 동적 특성과 수렴 행동을 유지하기.
- 초대규모 기계학습 툴킷(MaTEx)을 통해 보급함으로써 HPC 기반 딥러닝의 보급을 가속화하기.
제안 방법
- gRPC 기반 통신을 대체하기 위해 MPI를 직접 TensorFlow 런타임에 통합하여 InfiniBand과 같은 고성능 인터커넥트에 대한 네이티브 지원을 가능하게 하기.
- 사용자가 MPI 호출을 작성하거나 기존 TensorFlow 스크립트를 수정할 필요 없이, 런타임 내부에 통합된 방식으로 MPI 전용 로직을 추상화하기.
- MPI 수집 연산을 사용해 복제본 간 기울기를 동기화함으로써 동기식 확률적 경사 하강법(SGD)을 통한 데이터 병렬 처리를 구현하기.
- 기존 TensorFlow 1.0을 확장하여 분산 훈련을 지원하는 새로운 사용자 작업 및 통신 원자성(primitive)을 도입하면서도 기존 호환성 유지하기.
- 다양한 데이터 형식을 지원하는 커스텀 데이터 리더 인터페이스를 구현하여 분산 환경에서의 데이터 로딩을 단순화하기.
- 기존 TensorFlow 계산 그래프와 자동 미분 기능을 그대로 활용하여, AlexNet, ResNet-50 등 모든 표준 모델과의 호환성 확보하기.
실험 결과
연구 질문
- RQ1사용자 스크립트를 수정하지 않고도 분산 Tensorflow를 구현할 수 있는가?
- RQ2MPI를 TensorFlow 런타임에 효과적으로 통합하여 InfiniBand 인터커넥트를 갖춘 HPC 시스템에서 고성능, 확장 가능한 훈련을 가능하게 할 수 있는가?
- RQ3제안된 구현이 순차적 Tensorflow 훈련과 동일한 수렴 행동과 손실 곡선을 유지하는가?
- RQ4성능 이식성 손실 없이 다중 코어 CPU 및 다중 GPU HPC 플랫폼에서 강력한 스케일링을 달성할 수 있는가?
- RQ5MaTEx와 같은 개방형 HPC 소프트웨어 생태계 내에서 생산용, 사용자 투명한 분산 딥러닝 시스템을 제공하는 것은 가능한가?
주요 결과
- MaTEx-TensorFlow는 AlexNet을 사용해 ImageNet LSVRC12 데이터셋에서 훈련하는 동안 순차적 Tensorflow와 동일한 손실 곡선을 보이며, 표준 Tensorflow와의 기능 일치를 입증한다.
- InfiniBand 인터커넥트를 사용해 Intel 다중 코어 시스템과 NVIDIA 다중 GPU 시스템에서 다수의 컴퓨팅 노드로 효과적으로 스케일링된다.
- 사용자가 자신의 TensorFlow 코드를 수정할 필요 없이 분산 훈련이 가능해져, HPC 기반 딥러닝 사용에 있어 접근 장벽이 크게 낮아진다.
- MPI를 TensorFlow 런타임 내부에 통합함으로써 성능 이식성과 슈퍼컴퓨팅 환경에서 흔한 고대역폭 인터커넥트의 효율적 사용이 가능해진다.
- 이 솔루션은 생산용으로 사용 가능하며, http://hpc.pnl.gov/matex 에서 MaTEx 생태계 내에서 공개되어 있으며, GoogLeNet, InceptionV3 및 ResNet-50를 포함한 다양한 딥러닝 모델을 지원한다.
- gRPC 기반 분산 Tensorflow의 한계를 성공적으로 해결하였으며, 이는 이더넷 기반 및 네이티브 RDMA 지원이 없는 환경에서 HPC 시스템에 부적합하기 때문이다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.