[논문 리뷰] Optimizing CNN Model Inference on CPUs
NeoCPU는 CPUs에서 제3자 라이브러리 없이 CNN 추론을 엔드-투-엔드로 최적화하는 프레임워크를 제시하며, 최첨단 대비 최대 3.45x의 지연 시간 감소를 달성합니다. x86 및 ARM 아키텍처에서 연산 및 그래프 수준의 최적화를 수행하며 TVM의 일부로 오픈 소스화되어 있습니다.
The popularity of Convolutional Neural Network (CNN) models and the ubiquity of CPUs imply that better performance of CNN model inference on CPUs can deliver significant gain to a large number of users. To improve the performance of CNN inference on CPUs, current approaches like MXNet and Intel OpenVINO usually treat the model as a graph and use the high-performance libraries such as Intel MKL-DNN to implement the operations of the graph. While achieving reasonable performance on individual operations from the off-the-shelf libraries, this solution makes it inflexible to conduct optimizations at the graph level, as the local operation-level optimizations are predefined. Therefore, it is restrictive and misses the opportunity to optimize the end-to-end inference pipeline as a whole. This paper presents \emph{NeoCPU}, a comprehensive approach of CNN model inference on CPUs that employs a full-stack and systematic scheme of optimizations. \emph{NeoCPU} optimizes the operations as templates without relying on third-parties libraries, which enables further improvement of the performance via operation- and graph-level joint optimization. Experiments show that \emph{NeoCPU} achieves up to 3.45$ imes$ lower latency for CNN model inference than the current state-of-the-art implementations on various kinds of popular CPUs.
연구 동기 및 목표
- 일반 목적으로 배포되는 CPU의 광범위한 활용과 서버, 에지 및 클라이언트 기기에서 증가하는 CNN 사용으로 효율적인 CNN 추론의 필요성을 자극한다.
- 타사 라이브러리에 의존하지 않는 연산- 및 그래프 수준 최적화를 결합한 프레임워크를 제안한다.
- 다양한 CPU 아키텍처(x86 및 ARM) 전반에서 엔드-투-엔드 최적화를 입증한다.
- 공동 레이아웃 및 연산 템플레이팅이 기존 솔루션 대비 엔드-투-엔드 성능을 우수하게 나타냄을 보여준다.
제안 방법
- SIMD/FMA를 활용하는 제3자 커널 없이 전체 스택의 템플릿 기반 컨벌루션(CONV) 구현으로 NeoCPU를 개발한다.
- 가능한 한 CONV 계층 간에 최적화된 NCHW[x]c 레이아웃을 유지하여 불필요한 데이터 레이아웃 변환을 제거하는 그래프 수준 최적화를 도입한다.
- 로컬 개별 CONV 스케줄 탐색과 전역 그래프 수준 DP 기반 또는 PBQP 유사 탐색을 결합한 2단계 최적화 체계를 구현하여 엔드-투-엔드 레이아웃을 선택한다.
- TVM과의 통합으로 자체 연산 템플릿과 그래프 수준 최적화를 가능하게 하되 불변 커널 가중치를 컴파일 타임에 사전 변환한다.
- 다양한 CPU 벤더를 대상으로 프레임워크 기반(MXNet/TensorFlow) 및 프레임워크 비의존(OpenVINO) 기준선과 비교한다.
실험 결과
연구 질문
- RQ1CPU에서 엔드-투-엔드 CNN 추론을 제3자 고성능 라이브러리에 의존하지 않고도 크게 가속화할 수 있는가?
- RQ2다양한 CPU 아키텍처에서 연산- 및 그래프 수준의 공동 최적화가 엔드-투-엔드 지연 시간에 미치는 영향은 무엇인가?
- RQ3데이터 레이아웃 관리(NCHW[x]c) 및 레이아웃 변환이 전반적인 성능 및 오버헤드에 어떤 영향을 미치는가?
- RQ4로컬 대 글로벌 최적화 탐색이 최적의 엔드-투-엔드 성능에 근접하는 데 얼마나 효과적인가?
주요 결과
- NeoCPU는 다양한 CPU에서 현재 최첨단 구현 대비 CNN 모델 추론 지연 시간을 최대 3.45x 낮춘다.
- Intel Skylake에서 13/15 네트워크, AMD EYPC에서 14/15 네트워크, ARM Cortex-A72 CPU에서 모든 15 네트워크에 대해 높은 성능을 제공합니다.
- 의존성 footprint가 최소화된 독립형 프레임워크 독립 모듈이 생산되어 다양한 플랫폼에 쉽게 배포됩니다.
- 이 방법의 오픈 소스 릴리스가 TVM 프로젝트에 통합되어 더 넓은 채택을 촉진합니다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.