Skip to main content
QUICK REVIEW

[논문 리뷰] Scheduling Computation Graphs of Deep Learning Models on Manycore CPUs

Linpeng Tang, Yida Wang|arXiv (Cornell University)|2018. 07. 16.
Advanced Neural Network Applications참고 문헌 50인용 수 13
한 줄 요약

이 논문은 자원 간섭을 최소화하고 프로파일링을 통해 최적의 병렬성을 찾으며, 핵심 경로 우선 스케줄링을 적용함으로써 멀티코어 CPU에서 딥러닝 계산 그래프 스케줄링을 최적화하는 고성능 실행 엔진 Graphi를 제안한다. Graphi 는 네 개의 신경망을 대상으로 68코어 인텔 Xeon Phi 프로세서에서 텐서플로우 대비 2.1×에서 9.5× 빠른 학습을 달성한다.

ABSTRACT

For a deep learning model, efficient execution of its computation graph is key to achieving high performance. Previous work has focused on improving the performance for individual nodes of the computation graph, while ignoring the parallelization of the graph as a whole. However, we observe that running multiple operations simultaneously without interference is critical to efficiently perform parallelizable small operations. The attempt of executing the computation graph in parallel in deep learning frameworks usually involves much resource contention among concurrent operations, leading to inferior performance on manycore CPUs. To address these issues, in this paper, we propose Graphi, a generic and high-performance execution engine to efficiently execute a computation graph in parallel on manycore CPUs. Specifically, Graphi minimizes the interference on both software/hardware resources, discovers the best parallel setting with a profiler, and further optimizes graph execution with the critical-path first scheduling. Our experiments show that the parallel execution consistently outperforms the sequential one. The training times on four different neural networks with Graphi are 2.1x to 9.5x faster than those with TensorFlow on a 68-core Intel Xeon Phi processor.

연구 동기 및 목표

  • 서브옵티멀한 스케줄링과 스레드 간 간섭으로 인한 딥러닝 워크로드에서 멀티코어 CPU의 활용도 저하 문제를 해결한다.
  • 기존 프레임워크인 텐서플로우가 멀티코어 CPU에서 순차적이고 단순한 병렬 실행 방식으로 인해 겪는 한계를 극복한다.
  • 다양한 딥러닝 계산 그래프에 대해 동적으로 병렬성과 스케줄링을 최적화할 수 있는 일반적인 실행 엔진을 설계한다.
  • 병행 실행 동안 소프트웨어 및 하드웨어 자원 경쟁을 최소화하여 CPU 활용도를 극대화한다.
  • 지능적인 스케줄링과 프로파일링이 현대적인 멀티코어 아키텍처에서 상당한 성능 향상을 이끌 수 있음을 입증한다.

제안 방법

  • 스케줄러와 실행자에 대한 최적의 병렬성 설정과 자원 할당을 찾기 위해 계산 그래프를 프로파일링한다.
  • 핵심 경로 우선 스케줄링을 적용하여 고의존성 작업을 우선 처리하고 유휴 시간을 줄이는 중심화된 스케줄러를 구현한다.
  • CPU 및 메모리 자원을 분리하여 스레드 간 간섭을 최소화하는 자원 격리 기법을 사용한다.
  • 전용 실행자와 중심 스케줄러를 갖춘 다중 에이전트 아키텍처를 적용하여 실행을 조율하고 경쟁을 줄인다.
  • 인텔 Xeon Phi(68코어, MIC 아키텍처)의 하드웨어 특성을 활용하여 프로파일링과 스케줄링을 통해 성능을 최적화한다.
  • 모델 특화 없이 다양한 신경망 아키텍처를 지원하는 일반적인 인터페이스를 설계하여 기존 딥러닝 프레임워크와 통합한다.

실험 결과

연구 질문

  • RQ1멀티코어 CPU에서 스레드 간 간섭과 자원 경쟁을 줄이기 위해 계산 그래프 스케줄링을 어떻게 최적화할 수 있는가?
  • RQ2멀티코어 CPU에서 딥러닝 계산 그래프의 작은 독립적 연산에 대해 최적의 병렬성 수준는 무엇인가?
  • RQ3중앙집중식 지능형 스케줄러가 단순하거나 순차적 실행 대비 처리량과 지연 시간 측면에서 뛰어난 성능을 낼 수 있는가?
  • RQ4프로파일링과 동적 설정이 다양한 딥러닝 모델에서 성능 향상에 얼마나 기여하는가?
  • RQ5모델 특화 최적화 없이도 일반적인 실행 엔진이 다양한 신경망 아키텍처에서 높은 성능을 달성할 수 있는가?

주요 결과

  • Graphi 는 네 가지 다른 신경망을 대상으로 68코어 인텔 Xeon Phi 프로세서에서 텐서플로우 대비 2.1×에서 9.5× 빠른 학습을 달성한다.
  • 간섭이 없는 병렬 실행은 동일 하드웨어에서 순차적 실행 대비 성능을 최대 3.4× 향상시킨다.
  • 핵심 경로 우선 스케줄링 전략은 단순한 스케줄링 방식 대비 8%에서 19% 성능 향상을 이룬다.
  • 행렬 곱셈 및 원소별 연산은 Xeon Phi에서 8코어 또는 16코어에서 포화 상태에 도달하여, 이 이상에서는 경쟁이 수익을 상쇄함을 시사한다.
  • Graphi 는 수작업으로 최적화된 병렬화 기법(예: LSTM 네트워크의 cuDNN)과 동일한 성능을 자동으로 회복하고 이를 충족한다.
  • 이 프레임워크는 인텔 Xeon 플래티넘 8180과 같은 현대 다중코어 CPU에서도 양호한 스피드업을 달성하여, Xeon Phi 외에도 넓은 적용 가능성을 입증한다.

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

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

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

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