[논문 리뷰] Efficient Execution of Quantized Deep Learning Models: A Compiler Approach
이 논문은 다양한 하드웨어 플랫폼에서 사전 양자화된 8비트 정수 딥러닝 모델을 효율적으로 실행하기 위해 새로운 양자화된 신경망(QNN) 다이어ект를 사용하는 컴파일러 수준의 솔루션을 제안한다. Apache TVM와 같은 딥러닝 컴파일러에 양자화 컨텍스트를 확장함으로써, 인텔 CPU, 엔비디아 GPU, ARM 엣지 디바이스에서 고성능 추론을 가능하게 하며, FP32 실행 대비 최대 2.35배의 성능 향상을 달성하면서도 프레임워크 전용 최적화 수준을 유지한다.
A growing number of applications implement predictive functions using deep learning models, which require heavy use of compute and memory. One popular technique for increasing resource efficiency is 8-bit integer quantization, in which 32-bit floating point numbers (fp32) are represented using shorter 8-bit integer numbers. Although deep learning frameworks such as TensorFlow, TFLite, MXNet, and PyTorch enable developers to quantize models with only a small drop in accuracy, they are not well suited to execute quantized models on a variety of hardware platforms. For example, TFLite is optimized to run inference on ARM CPU edge devices but it does not have efficient support for Intel CPUs and Nvidia GPUs. In this paper, we address the challenges of executing quantized deep learning models on diverse hardware platforms by proposing an augmented compiler approach. A deep learning compiler such as Apache TVM can enable the efficient execution of model from various frameworks on various targets. Many deep learning compilers today, however, are designed primarily for fp32 computation and cannot optimize a pre-quantized INT8 model. To address this issue, we created a new dialect called Quantized Neural Network (QNN) that extends the compiler's internal representation with a quantization context. With this quantization context, the compiler can generate efficient code for pre-quantized models on various hardware platforms. As implemented in Apache TVM, we observe that the QNN-augmented deep learning compiler achieves speedups of 2.35x, 2.15x, 1.35x and 1.40x on Intel Xeon Cascade Lake CPUs, Nvidia Tesla T4 GPUs, ARM Raspberry Pi3 and Pi4 respectively against well optimized fp32 execution, and comparable performance to the state-of-the-art framework-specific solutions.
연구 동기 및 목표
- 이질적인 하드웨어 플랫폼에서 사전 양자화된 INT8 모델을 실행하는 데 있어 기존 딥러닝 프레임워크의 비효율성을 해결하기 위해.
- 다양한 프레임워크와 하드웨어 타겟에서 통합된 배포 파이프라인을 제공함으로써 개발자의 노력을 줄이기 위해.
- 프레임워크 전용 커널 라이브러리 및 연산자 구현 방식의 한계를 극복하여 사전 양자화된 모델의 플랫폼 간 이식성을 향상시키기 위해.
- 표준화된 양자화 인식 표현을 사용해 딥러닝 컴파일러가 사전 양자화된 모델을 네이티브로 최적화하고 효율적인 코드를 생성할 수 있도록 하기 위해.
제안 방법
- 스케일 및 제로포인트 매개변수를 포함한 양자화 컨텍스트를 컴파일러의 내부 표현에 추가하는 그래프 수준의 다이어렉트인 양자화된 신경망(QNN)을 도입한다.
- TensorFlow Lite, PyTorch, MXNet 등의 프레임워크에서 온 사전 양자화된 모델의 컴파일을 지원하기 위해 Apache TVM와 같은 기존 딥러닝 컴파일러에 QNN 다이어렉트를 통합한다.
- QNN 표현을 통해 하드웨어 전용 커널 라이브러리(예: 인텔 DNNL, CuDNN, ACL)를 활용하여 INT8 연산을 위한 최적화된 기계어 코드를 생성한다.
- QNN 다이어렉트 내에서 텐서별, 채널별, 대칭형, 비대칭형을 포함한 다양한 양자화 방식을 지원하여 모델 정확도를 유지하면서도 효율적인 실행을 가능하게 한다.
- QNN 다이어렉트를 사용해 모델 양자화를 하드웨어 전용 최적화에서 분리함으로써, 하나의 컴파일러 파이프라인으로 다양한 플랫폼을 타겟으로 할 수 있도록 한다.
- QNN 다이어렉트를 컴파일러 최적화 파이프라인에 통합하여 INT8 계산에 맞춤형으로 최적화된 통합 및 레이아웃 변환을 자동으로 수행할 수 있도록 한다.
실험 결과
연구 질문
- RQ1프레임워크 전용 포팅이 필요 없이 통합된 컴파일러 기반 접근 방식이 다양한 하드웨어 플랫폼에서 사전 양자화된 INT8 모델을 효율적으로 실행할 수 있는가?
- RQ2QNN가 강화된 딥러닝 컴파일러의 성능은 다양한 하드웨어에서 네이티브 FP32 실행 및 프레임워크 최적화된 INT8 실행과 비교해 어떻게 되는가?
- RQ3컴파일러 다이어렉트 내의 일반화된 양자화 컨텍스트가 모델 정확도를 유지하면서도 사전 양자화된 모델의 플랫폼 간 배포를 얼마나 효과적으로 지원할 수 있는가?
- RQ4QNN 다이어렉트가 하나의 컴iles 파이프라인 내에서 다양한 양자화 전략(예: 채널별, 대칭형 등)을 효과적으로 지원할 수 있는가?
주요 결과
- QNN가 강화된 Apache TVM 컴파일러는 인텔 Xeon 케이블라크 쿠버에서 최적화된 FP32 실행 대비 2.35배의 성능 향상을 달성한다.
- 엔비디아 테슬라 T4 GPU에서는 QNN 접근 방식이 FP32 실행 대비 2.15배의 성능 향상을 보이며, INT8 추론에 대한 강력한 GPU 가속 성능을 입증한다.
- ARM 코어텍스트-A CPU에서는 라즈베리 파이 3과 4에서 각각 1.35배와 1.40배의 성능 향상을 기록하여 FP32 실행을 능가한다.
- QNN로 컴iles된 모델의 성능는 그 타겟 플랫폼에서 최신 프레임워크 전용 솔루션(TFLite, TensorRT 등)과 유사한 성능을 보인다.
- QNN 접근 방식은 텐서플로우 라이트, 파이토치, MXNet에서 온 모델을 포함해 사전 양자화된 모델을 최소한의 개발자 노력으로 플랫폼 간 배포를 가능하게 한다.
- QNN 다이어렉트는 모델 양자화를 하드웨어 전용 최적화에서 분리하여 하나의 툴체인으로 다양한 하드웨어 플랫폼을 효율적으로 타겟팅할 수 있도록 성공적으로 구현했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.