TY - GEN
T1 - Extremely Low-bit Convolution Optimization for Quantized Neural Network on Modern Computer Architectures
AU - Han, Qingchang
AU - Hu, Yongmin
AU - Yu, Fengwei
AU - Yang, Hailong
AU - Liu, Bing
AU - Hu, Peng
AU - Gong, Ruihao
AU - Wang, Yanfei
AU - Wang, Rui
AU - Luan, Zhongzhi
AU - Qian, Depei
N1 - Publisher Copyright:
© 2020 ACM.
PY - 2020/8/17
Y1 - 2020/8/17
N2 - With the continuous demand for higher accuracy of deep neural networks, the model size has increased significantly. Quantization is one of the most widely used model compression methods, which can effectively reduce the model size without severe accuracy loss. Modern processors such as ARM CPU and NVIDIA GPU have already provided the support of low-bit arithmetic instructions. However, there lack efficient and practical optimizations for convolution computation towards extremely low-bit on ARM CPU (e.g., 2 ∼8-bit) and NVIDIA GPU (e.g., 4-bit and 8-bit). This paper explores the performance optimization methods of extremely low-bit convolution on diverse architectures. On ARM CPU, we propose two instruction schemes for 2 ∼3-bit and 4 ∼8-bit convolution with corresponding register allocation methods. In addition, we re-design the GEMM computation with data padding and packing optimizations. We also implement winograd algorithm for convolution with some specific bit width (e.g., 4 ∼6-bit) to achieve higher performance. On NVIDIA GPU, we propose a data partition mechanism and multi-level memory access optimizations, to better adapt the computation to GPU thread and memory hierarchy. We also propose quantization fusion to eliminate unnecessary data access. The experiment results demonstrate our implementations achieve better performance of extremely low-bit convolution compared to the state-of-the-art frameworks and libraries such as ncnn and cuDNN. To the best of our knowledge, this is the first work that provides efficient implementations of extremely low-bit convolutions covering 2 ∼8-bit on ARM CPU and 4-bit/8-bit on NVIDIA GPU.
AB - With the continuous demand for higher accuracy of deep neural networks, the model size has increased significantly. Quantization is one of the most widely used model compression methods, which can effectively reduce the model size without severe accuracy loss. Modern processors such as ARM CPU and NVIDIA GPU have already provided the support of low-bit arithmetic instructions. However, there lack efficient and practical optimizations for convolution computation towards extremely low-bit on ARM CPU (e.g., 2 ∼8-bit) and NVIDIA GPU (e.g., 4-bit and 8-bit). This paper explores the performance optimization methods of extremely low-bit convolution on diverse architectures. On ARM CPU, we propose two instruction schemes for 2 ∼3-bit and 4 ∼8-bit convolution with corresponding register allocation methods. In addition, we re-design the GEMM computation with data padding and packing optimizations. We also implement winograd algorithm for convolution with some specific bit width (e.g., 4 ∼6-bit) to achieve higher performance. On NVIDIA GPU, we propose a data partition mechanism and multi-level memory access optimizations, to better adapt the computation to GPU thread and memory hierarchy. We also propose quantization fusion to eliminate unnecessary data access. The experiment results demonstrate our implementations achieve better performance of extremely low-bit convolution compared to the state-of-the-art frameworks and libraries such as ncnn and cuDNN. To the best of our knowledge, this is the first work that provides efficient implementations of extremely low-bit convolutions covering 2 ∼8-bit on ARM CPU and 4-bit/8-bit on NVIDIA GPU.
KW - ARM CPU
KW - Computation Optimization
KW - Extremely Low-bit Convolution
KW - NVIDIA GPU
KW - Quantized Neural Network
UR - https://www.scopus.com/pages/publications/85090551234
U2 - 10.1145/3404397.3404407
DO - 10.1145/3404397.3404407
M3 - 会议稿件
AN - SCOPUS:85090551234
T3 - ACM International Conference Proceeding Series
BT - Proceedings of the 49th International Conference on Parallel Processing, ICPP 2020
PB - Association for Computing Machinery
T2 - 49th International Conference on Parallel Processing, ICPP 2020
Y2 - 17 August 2020 through 20 August 2020
ER -