Skip to main content
QUICK REVIEW

[논문 리뷰] ShiftCNN: Generalized Low-Precision Architecture for Inference of Convolutional Neural Networks

Denis Gudovskiy, Luca Rigazio|arXiv (Cornell University)|2017. 06. 07.
Advanced Neural Network Applications참고 문헌 16인용 수 53
한 줄 요약

ShiftCNN은 2의 거듭제곱 가중치 표현과 미리 계산된 컨볼루션 항을 사용하여 계산량을 크게 줄이는 일반화된 저정밀도 곱셈 없는 CNN 추론 아키텍처를 도입하며, ImageNet에서의 정확도 손실은 최소화되고 FPGA 전력 절감은 크게 나타난다.

ABSTRACT

In this paper we introduce ShiftCNN, a generalized low-precision architecture for inference of multiplierless convolutional neural networks (CNNs). ShiftCNN is based on a power-of-two weight representation and, as a result, performs only shift and addition operations. Furthermore, ShiftCNN substantially reduces computational cost of convolutional layers by precomputing convolution terms. Such an optimization can be applied to any CNN architecture with a relatively small codebook of weights and allows to decrease the number of product operations by at least two orders of magnitude. The proposed architecture targets custom inference accelerators and can be realized on FPGAs or ASICs. Extensive evaluation on ImageNet shows that the state-of-the-art CNNs can be converted without retraining into ShiftCNN with less than 1% drop in accuracy when the proposed quantization algorithm is employed. RTL simulations, targeting modern FPGAs, show that power consumption of convolutional layers is reduced by a factor of 4 compared to conventional 8-bit fixed-point architectures.

연구 동기 및 목표

  • 곱셈을 피하는 하드웨어 효율적인 저정밀도 CNN 추론 프레임워크를 제시한다.
  • 재학습 없이 가중치를 2의 거듭제곱 코드북으로 표현하는 일반화된 양자화 알고리즘을 제안한다.
  • 컨볼루션 계산을 대폭 감소시키는 선계산 전략을 도입한다.
  • ShiftCNN 아키텍처(ShiftALU)와 시프트-더하기 컨볼루션을 구현하기 위한 메모리 설계를 설계한다.
  • ImageNet에서의 정확도를 평가하고 FPGA 전력 및 복잡도 영향에 대해 분석한다.

제안 방법

  • 비균일한 2의 거듭제곱 코드북(Algorithm 1)을 사용하여 가중치를 양자화하고 CN 코드북의 구성 요소를 가진 결합 가중치 표현 ˜W_hat를 얻는다.
  • 곱셈을 2의 거듭제곱 시프트로 대체하기 위한 컨볼루션 항의 텐서 P를 미리 계산한다(ShiftALU가 시프트와 부호 반전을 수행한다).
  • 가중치 인덱스로 미리 계산된 P를 인덱싱하여 컨볼루션을 계산하고 출력을 누적하며 곱셈 연산을 O(PCHW)로 축소한다.
  • 입력 채널 병렬성을 활용하고 전용 P 메모리 버퍼에서 쓰기/읽기를 수행하는 스케줄링 로직(Algorithm 2)을 제공한다.
  • N 및 B 설정(바이너리/삼진/더 높은 정밀도)에 대한 아키텍처 변형을 제시하고 희소/압축 모델로의 확장을 논의한다.

실험 결과

연구 질문

  • RQ1일반적인 비재학습 양자화가 가중치를 2의 거듭제곱 표현으로 표현해 표준 CNN의 정확도를 보존할 수 있는가?
  • RQ2선계산 컨볼루션 항이 CNN 추론의 계산 비용과 에너지 효율성에 어떤 영향을 미치는가?
  • RQ3ShiftCNN 기반의 곱셈 없는 아키텍처의 FPGA/ASIC 전력 및 자원 영향은 무엇인가?
  • RQ4다양한 N(항의 수) 및 B(비트폭) 설정이 인기 있는 CNN들에 걸쳐 정확도와 하드웨어 복잡도에 어떤 영향을 미치는가?

주요 결과

  • ShiftCNN 변형은 ImageNet에서 N>2이고 B=4일 때 여러 모델에서 Top-1 정확도 감소가 1% 미만이다.
  • N=2, B=4의 경우 정확도 감소는 대략 1% 내에 있으며(예: ResNet-50: Top-1 손실 0.67%; GoogleNet: 0.39%),
  • 컨볼루션 계층의 연산은 P가 미리 계산된 항의 개수에 비례해 감소시키고, 곱셈 연산은 거의 제거되며 대략 (C̃HfWf)/P 배 수준의 축소가 가능하다; SqueezeNet에서 260배, GoogleNet에서 687배, ResNet-18에서 1090배의 속도 향상이 관찰된다.
  • FPGA RTL 시뮬레이션은 ShiftCNN이 8비트 고정소수 곱셈기에 비해 약 2.5배 적은 자원과 약 4배의 다이나믹 전력을 사용하며, 전력의 75%가 가산기 트리로 인해 발생하므로 곱셈 없는 하드웨어에서 큰 이점이 있다.
  • ShiftCNN은 이진/삼진 또는 더 높은 정밀도 가중치 표현을 수용할 수 있는 유연한 코드북을 가능하게 하여 정확도와 복잡도 간의 트레이드오프를 가능하게 한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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