[논문 리뷰] High-Performance Deep Learning via a Single Building Block
이 논문은 고성능 딥러닝 워크로드를 위한 유니버설한 빌딩 블록으로 배치 감소 GEMM 커널을 도입하며, 단 3,000줄의 고수준 코드로 RNN, CNN, MLP의 효율적 구현을 가능하게 한다. 이 단일 커널을 최적화함으로써 저자들은 CPU에서 벤더 최적화 라이브러리보다 뛰어난 성능을 달성하고 GPU 자동 튜닝 커널과 동등하거나 이를 초월하며, 전용 저수준 커널에 비해 확장 가능하고 유지보수 용이한 대안을 입증한다.
Deep learning (DL) is one of the most prominent branches of machine learning. Due to the immense computational cost of DL workloads, industry and academia have developed DL libraries with highly-specialized kernels for each workload/architecture, leading to numerous, complex code-bases that strive for performance, yet they are hard to maintain and do not generalize. In this work, we introduce the batch-reduce GEMM kernel and show how the most popular DL algorithms can be formulated with this kernel as the basic building-block. Consequently, the DL library-development degenerates to mere (potentially automatic) tuning of loops around this sole optimized kernel. By exploiting our new kernel we implement Recurrent Neural Networks, Convolution Neural Networks and Multilayer Perceptron training and inference primitives in just 3K lines of high-level code. Our primitives outperform vendor-optimized libraries on multi-node CPU clusters, and we also provide proof-of-concept CNN kernels targeting GPUs. Finally, we demonstrate that the batch-reduce GEMM kernel within a tensor compiler yields high-performance CNN primitives, further amplifying the viability of our approach.
연구 동기 및 목표
- 다양한 아키텍처에서 다양한 딥러닝 워크로드를 위해 필요한 저수준 커널 최적화의 조합 폭발 문제를 해결하기 위해.
- 모든 주요 딥러닝 원천을 단일로 고도로 최적화된 커널로 통합함으로써 딥러닝 라이브러리 개발의 복잡성을 줄이기 위해.
- 단일 최적화 커널을 중심으로 루프 튜닝만으로도 RNN, CNN, MLP의 학습 및 추론에서 고성능을 달성하기 위해.
- 단일으로 잘 최적화된 커널이 CPU 및 GPU에서 수작업 튜닝된 벤더 최적화 구현보다 뛰어나다는 것을 입증하기 위해.
- TVM와 같은 텐서 컴파일러와의 통합을 통해 성능 이식성 있는 딥러닝 원천을 가능하게 하기 위해.
제안 방법
- 입력 서브텐서 블록의 배치를 곱하고 부분 결과를 단일 출력 서브텐서 블록으로 감소시키는 배치 감소 GEMM 커널을 제안한다.
- RNN/LSTM, CNN, MLP와 같은 주요 딥러닝 원천을 이 단일 커널의 조합으로 표현하여 저수준 복잡성을 추상화한다.
- 세분화된 메모리 액세스, 프리패칭, 데이터 레이아웃 변환을 통해 CPU 및 GPU 아키텍처에 최적화된 배치 감소 GEMM 커널을 구현한다.
- 최적화된 커널을 중심으로 루프 튜닝만을 사용하여 딥러닝 원천을 3,000줄의 고수준 코드로 구현한다.
- 분산 학습 프레임워크(예: GNMT 및 ResNet-50용)에 커널을 통합하고 다중 노드 클러스터에서의 확장성을 입증한다.
- TVM 텐서 컴파일러에서 배치 감소 GEMM 커널을 사용해 CNN 커널 프로토타입을 구현하여 자동 튜닝된 원천과 동등한 성능을 달성한다.
실험 결과
연구 질문
- RQ1다양한 딥러닝 워크로드와 아키텍처에서 수백 개의 전용 수작업 튜닝 커널이 필요로 하는 상황을 단일 고도 최적화 커널이 대체할 수 있는가?
- RQ2모든 원천을 단일 커널 중심으로 추상화함으로써 딥러닝 라이브러리의 성능 이식성과 유지보수성은 어느 정도 향상될 수 있는가?
- RQ3통합 커널 접근 방식이 CPU 및 GPU 워크로드에서 모두 벤더 최적화 및 특수 설계된 수작업 구현보다 뛰어나게 성능을 낼 수 있는가?
- RQ4배치 감소 GEMM 커널은 다중 노드 환경에서의 분산 및 다중 노드 환경에서의 고성능 추론 및 학습을 얼마나 효과적으로 가능하게 하는가?
- RQ5텐서 컴파일러는 이 커널을 활용해 자동 튜닝된, 벤더 최적화 원천과 동등한 성능을 달성할 수 있는가?
주요 결과
- 배치 감소 GEMM 커널은 Xeon Skylake-SP CPU에서 최고 성능의 83%를 달성하며, 일반 GEMM 기반 접근 방식(61% 및 49%)보다 뛰어나고, 벤더 최적화된 mkl-dnn(81%)과 유사한 성능을 보이며, 효율성은 2% 높다.
- 저자들이 배치 감소 GEMM 커널 기반으로 개발한 CNN 원천은 CPU에서 벤더 최적화된 mkl-dnn 라이브러리보다 1.24배 빠르고, 다중 노드 클러스터에서는 1.4배 빠르다.
- 통합 GPU 환경에서는 벤더 제공 CNN 커널과 비교해 유사한 성능을 달성하여 아키텍처에 관계없이 적용 가능함을 입증한다.
- 다중 노드 CPU 클러스터에서 GNMT 및 ResNet-50의 엔드 투 엔드 학습 성능은 벤더 최적화 라이브러리보다 최대 2.3배 뛰어나다.
- TVM 기반 프로토타입에서 배치 감소 GEMM 커널을 사용한 CNN 원천은 자동 튜닝된 Amazon-AutoTVM 최적화 코드와 동등한 성능을 달성한다.
- 전체 딥러닝 라이브러리 구현은 고수준 코드 3,000줄로만 이루어져 있으며, 기존 라이브러리의 수천 줄에서 수만 줄에 이르는 코드베이스에 비해 복잡도가 크게 감소한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.