Skip to main content
QUICK REVIEW

[논문 리뷰] Performance Evaluation of Deep Learning Tools in Docker Containers

Pengfei Xu, Shaohuai Shi|arXiv (Cornell University)|2017. 11. 09.
Advanced Neural Network Applications참고 문헌 28인용 수 7
한 줄 요약

이 논문은 딥러닝 도구를 도커 컨테이너에서 실행할 때와 네이티브 호스트 시스템에서 실행할 때의 성능 오버헤드를 평가한다. CPU, GPU, I/O 워크로드에 대한 벤치마크와 텐서플로우 및 MXNet과 같은 인기 있는 프레임워크에서의 실제 학습 워크로드를 통해 분석한 결과, 계산 작업과 I/O 작업에서 거의 미치지 못할 정도로 작은 성능 저하가 발생함을 확인하였으며, 도커 컨테이너가 최소한의 오버헤드로 딥러닝 애플리케이션을 배포하는 데 실현 가능하고 효율적인 솔루션임을 보여주었다.

ABSTRACT

With the success of deep learning techniques in a broad range of application domains, many deep learning software frameworks have been developed and are being updated frequently to adapt to new hardware features and software libraries, which bring a big challenge for end users and system administrators. To address this problem, container techniques are widely used to simplify the deployment and management of deep learning software. However, it remains unknown whether container techniques bring any performance penalty to deep learning applications. The purpose of this work is to systematically evaluate the impact of docker container on the performance of deep learning applications. We first benchmark the performance of system components (IO, CPU and GPU) in a docker container and the host system and compare the results to see if there's any difference. According to our results, we find that computational intensive jobs, either running on CPU or GPU, have small overhead indicating docker containers can be applied to deep learning programs. Then we evaluate the performance of some popular deep learning tools deployed in a docker container and the host system. It turns out that the docker container will not cause noticeable drawbacks while running those deep learning tools. So encapsulating deep learning tool in a container is a feasible solution.

연구 동기 및 목표

  • 도커 컨테이너가 딥러닝 애플리케이션에 미치는 성능 영향을 체계적으로 평가하기 위해.
  • 공유 컴퓨팅 환경에서 복잡한 소프트웨어 종속성과 버전 충돌 문제를 해결하기 위해.
  • 컨테이너화가 CPU, GPU, I/O 집약적인 딥러닝 워크로드에서 심각한 성능 오버헤드를 유발하는지 여부를 규명하기 위해.
  • 생산 환경과 공유 컴퓨팅 환경에서 딥러닝 도구를 도커 컨테이너를 통해 배포하는 것이 가능한지 평가하기 위해.
  • 딥러닝 프레임워크의 도커라이즈드 배포와 네이티브 배포 간의 성능 동등성을 실증적으로 입증하기 위해.

제안 방법

  • CPU 워크로드를 위해 HPL 및 HPCG를 사용한 시스템 수준 성능 벤치마킹, GPU 워크로드를 위해 GPU 커널 사용.
  • 순차적 및 랜덤 액세스를 포함한 직접 I/O 및 캐시 기반 액세스를 위한 ioping을 통한 디스크 I/O 성능 평가.
  • Caffe, CNTK, MXNet, 텐서플로우, Torch 등 다섯 가지 딥러닝 프레임워크의 여러 신경망 아키텍처와 데이터셋을 대상으로 종단 간 학습 시간 측정.
  • 도커 컨테이너와 호스트 시스템 간의 학습 성능 비교를 통해 배치 처리 시간과 첫 번째 에포크 I/O 영향에 중점을 둔 분석.
  • 컨테이너화된 실행과 네이티브 실행 간의 I/O 성능 차이에 영향을 주는 프리로딩 및 캐싱 메커니즘의 영향 분석.
  • NVIDIA 도커를 사용하여 GPU 액세스 호환성을 확보하고 컨테이너 내에서 GPU 가속 학습 성능 측정.

실험 결과

연구 질문

  • RQ1딥러닝 워크로드를 도커 컨테이너에서 실행할 경우 CPU 및 GPU에서 측정 가능한 성능 오버헤드가 발생하는가?
  • RQ2도커 컨테이너화가 순차적 및 랜덤 액세스 패턴에 대해 디스크 I/O 성능에 어떤 영향을 미치는가?
  • RQ3도커 컨테이너에서 실행되는 딥러닝 도구와 호스트 시스템에서 네이티브로 실행되는 도구 간의 종단 간 학습 성능 차이는 무엇인가?
  • RQ4왜 MXNet은 도커 컨테이너에서 호스트보다 첫 번째 에포크 학습이 크게 빠른가?
  • RQ5도커 컨테이너는 공유 시스템에서 여러 딥러닝 프레임워크와 버전을 성능 저하 없이 공존시킬 수 있는가?

주요 결과

  • 도커 컨테이너 내 CPU 및 GPU 워크로드는 대부분의 벤치마크에서 5% 이내의 미미한 성능 오버헤드를 보이며, 거의 영향을 미치지 않는다.
  • 도커 컨테이너 내 순차적 I/O 성능은 호스트 시스템과 동일한 수준이므로 심각한 I/O 병목 현상이 없다는 것을 시사한다.
  • 한 대의 디스크 드라이브에서 랜덤 액세스 I/O 성능은 도커 컨테이너에서 호스트 시스템보다 빠르며, NAND 캐시를 더 효과적으로 활용하기 때문으로 추정된다.
  • MXNet의 첫 번째 에포크 학습 시간은 도커 컨테이너에서 호스트보다 최대 77.2% 빠르며, 이는 초기 I/O 처리 방식의 차이 때문이지만 이후 에포크에서는 이 격차가 줄어든다.
  • 전반적으로 도커 컨테이너 내 딥러닝 학습 워크로드는 호스트 시스템과 동일하거나 더 뛰어난 성능을 보이며, 눈에 띄는 성능 저하가 없다.
  • 이 연구는 도커를 통한 딥러닝 도구의 컨테이너화가 공유 환경과 클라우드 환경에서 실현 가능하고 효율적인 배포 전략임을 확인한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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