[논문 리뷰] Hoard: A Distributed Data Caching System to Accelerate Deep Learning Training on the Cloud
Hoard는 클라우드 클러스터의 다수의 GPU 노드에 분산 파일 시스템을 사용해 로컬 NVMe 디스크에 데이터셋을 캐시하는 분산 캐싱 시스템으로, 딥러닝 훈련을 가속화한다. Hoard는 공유 저장소에 비해 빠른 가속기(예: GPU)와 비교해 느린 중앙 저장소로 인한 I/O 병목 현상을 제거하고, 공유 캐시 및 POSIX 호환 접근을 통해 I/O 병목 현상을 제거함으로써 10Gb/s NFS 대비 2.1배 빠른 성능 향상을 이끌어내며, 시스템 활용도를 두 배로 높인다.
Deep Learning system architects strive to design a balanced system where the computational accelerator -- FPGA, GPU, etc, is not starved for data. Feeding training data fast enough to effectively keep the accelerator utilization high is difficult when utilizing dedicated hardware like GPUs. As accelerators are getting faster, the storage media \& data buses feeding the data have not kept pace and the ever increasing size of training data further compounds the problem. We describe the design and implementation of a distributed caching system called Hoard that stripes the data across fast local disks of multiple GPU nodes using a distributed file system that efficiently feeds the data to ensure minimal degradation in GPU utilization due to I/O starvation. Hoard can cache the data from a central storage system before the start of the job or during the initial execution of the job and feeds the cached data for subsequent epochs of the same job and for different invocations of the jobs that share the same data requirements, e.g. hyper-parameter tuning. Hoard exposes a POSIX file system interface so the existing deep learning frameworks can take advantage of the cache without any modifications. We show that Hoard, using two NVMe disks per node and a distributed file system for caching, achieves a 2.1x speed-up over a 10Gb/s NFS central storage system on a 16 GPU (4 nodes, 4 GPUs per node) cluster for a challenging AlexNet ImageNet image classification benchmark with 150GB of input dataset. As a result of the caching, Hoard eliminates the I/O bottlenecks introduced by the shared storage and increases the utilization of the system by 2x compared to using the shared storage without the cache.
연구 동기 및 목표
- 빠른 가속기(예: GPU)와 비교해 느린 중앙 저장소로 인한 딥러닝 훈련에서의 I/O 병목 현상을 해결하기 위해.
- 데이터를 로컬 디스크로 복사하는 데 비효율적이고 자원 경쟁이 심한 다중 GPU, 다중 작업 환경에서의 시스템 활용도를 향상시키기 위해.
- 중앙 저장소에서 다시 복사하지 않고도 여러 훈련 작업과 하이퍼파라미터 튜닝 실험 간에 캐시된 데이터를 효율적으로 재사용할 수 있도록 하기 위해.
- 기존 딥러닝 프레임워크와의 원활한 통합을 위해 코드 수정 없이도 사용할 수 있는 투명하고 즉시 사용 가능한 캐싱 솔루션을 제공하기 위해.
- 더 나은 자원 효율성을 위해 데이터셋 수명 주기와 작업 수명 주기를 분리하는 확장 가능한 클라우드 네이티브 캐싱 미들웨어를 설계하기 위해.
제안 방법
- Hoard는 분산 파일 시스템을 사용해 여러 GPU 노드의 로컬 NVMe 디스크에 훈련 데이터를 스토리지 스크립트 방식으로 분산 캐시한다.
- 캐시 생성, 작업 스케줄링과의 공존, 독립적인 데이터 수명 주기 관리를 위해 마이크로서비스 세트를 활용한다.
- 시스템은 기존 딥러닝 프레임워크가 코드 변경 없이 캐시된 데이터에 접근할 수 있도록 POSIX 호환 파일 시스템 인터페이스를 노출한다.
- 데이터는 작업 실행 이전 또는 도중에 중앙 저장소 시스템(예: NFS, S3)에서 사전 캐시되며, 이로 인해 에포크 및 작업 간 데이터 재사용이 가능해진다.
- 데이터 국지성 최적화 및 네트워크 간섭 감소를 위해 랙 인식 스케줄링을 지원한다.
- 훈련 작업과 그 데이터를 동일한 노드 또는 랙에 공존시켜 I/O 지연과 네트워크 부하를 최소화한다.
실험 결과
연구 질문
- RQ1분산 캐싱 시스템은 GPU 클러스터에서 딥러닝 훈련의 I/O 병목 현상을 줄일 수 있는가?
- RQ2로컬 NVMe 스토리지에 여러 노드에 걸쳐 데이터를 캐싱하는 것과 비교해 중앙 NFS 또는 오브젝트 스토리지에 의존하는 것의 성능 차이는 어떠한가?
- RQ3다중 작업, 다중 GPU 클라우드 환경에서 캐싱 시스템은 시스템 활용도와 훈련 처리량을 얼마나 향상시킬 수 있는가?
- RQ4코드 수정 없이도 기존 딥러닝 워크플로우에 투명하고 POSIX 호환 캐싱 계층을 효과적으로 통합할 수 있는가?
- RQ5데이터셋 수명 주기와 작업 수명 주기를 분리함으로써 하이퍼파라미터 튜닝 워크로드에서 성능과 자원 재사용에 어떤 영향을 미치는가?
주요 결과
- Hoard는 150GB 데이터셋을 가진 AlexNet ImageNet 벤치마크에서 16-GPU 클러스터에서 10Gb/s NFS 스토리지 시스템 대비 2.1배 빠른 성능 향상을 달성한다.
- I/O 경쟁 감소와 더 빠른 데이터 접근 덕분에 캐싱 없이 공유 스토리지 사용 시 대비 시스템 활용도가 2배 향상된다.
- 캐싱 메커니즘이 I/O 고갈을 제거하여 GPU가 훈련 전반에 걸쳐 높은 활용도를 유지할 수 있도록 한다.
- 캐시된 데이터는 여러 에포크 및 동일한 데이터 요구 사항을 가진 다른 작업 간에 재사용되어 중복된 데이터 전송을 줄인다.
- 더 큰 클러스터로의 효율적 확장이 가능하며, 공유 스토리지 부하가 증가할수록 성능 향상이 기대된다.
- POSIX 인터페이스 덕분에 기존 딥러닝 프레임워크에 코드 수정 없이 원활한 통합이 가능하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.