Skip to main content
QUICK REVIEW

[논문 리뷰] TinyCNN: A Tiny Modular CNN Accelerator for Embedded FPGA

Ali Jahanshahi|arXiv (Cornell University)|2019. 11. 15.
CCD and CMOS Imaging Sensors참고 문헌 16인용 수 4
한 줄 요약

이 논문은 임베디드 FPGA에 타이니하고 자원을 고려한 컨볼루션 네트워크(CNN) 가속기를 설계하고 구현하기 위한 모듈식 프레임워크인 TinyCNN을 제안한다. 이 프레임워크는 소프트웨어 백엔드를 통해 하드웨어 인식 CNN 설계를 가능하게 하며, CHISEL을 사용한 자동 RTL 생성과 시뮬레이션을 통한 정밀도 조정을 통해 정확도 손실를 최소화한다. ARM에서 32비트 부동소수점 대비 16비트 고정소수점 산술을 사용할 경우 정확도 손실 3% 이내로 최대 15.75배의 성능 향상을 달성한다.

ABSTRACT

In recent years, Convolutional Neural Network (CNN) based methods have achieved great success in a large number of applications and have been among the most powerful and widely used techniques in computer vision. However, CNN-based methods are computational-intensive and resource-consuming, and thus are hard to be integrated into embedded systems such as smart phones, smart glasses, and robots. FPGA is one of the most promising platforms for accelerating CNN, but the limited on-chip memory size limit the performance of FPGA accelerator for CNN. In this paper, we propose a framework for designing CNN accelerator on embedded FPGA for image classification. The proposed framework provides a tool for FPGA resource-aware design space exploration of CNNs and automatically generates the hardware description of the CNN to be programmed on a target FPGA. The framework consists of three main backends; software, hardware generation, and simulation/precision adjustment. The software backend serves as an API to the designer to design the CNN and train it according to the hardware resources that are available. Using the CNN model, hardware backend generates the necessary hardware components and integrates them to generate the hardware description of the CNN. Finaly, Simulation/precision adjustment backend adjusts the inter-layer precision units to minimize the classification error. We used 16-bit fixed-point data in a CNN accelerator (FPGA) and compared it to the exactly similar software version running on an ARM processor (32-bit floating point data). We encounter about 3% accuracy loss in classification of the accelerated (FPGA) version. In return, we got up to 15.75x speedup by classifying with the accelerated version on the FPGA.

연구 동기 및 목표

  • 자원이 제한된 임베디드 FPGA에 계산적으로 부담이 큰 CNN을 구현하는 데 도전하는 것.
  • 자동화를 통해 임베디드 FPGA에서 커스텀 CNN 가속기의 설계 복잡도와 구현 시간을 줄이는 것.
  • 임베디드 FPGA에서 CNN 추론 시 저해상도 고정소수점 산술(16비트)을 사용할 경우 정확도 손실를 최소화하는 것.
  • 하드웨어 자원 제약 조건을 고려한 일반 목적의 모듈식 프레임워크를 제공하여 CNN 가속기 생성을 가능하게 하는 것.
  • CNN 훈련, RTL 생성, 정밀도 조정을 통합된 파이프라인으로 통합하여 효율적인 하드웨어-소프트웨어 공동 설계를 가능하게 하는 것.

제안 방법

  • 소프트웨어 백엔드는 파이썬을 사용해 CNN을 설계하고 훈련하며, 아키텍처 선택을 안내하기 위해 실시간 하드웨어 자원 추정을 수행한다.
  • 하드웨어 백엔드는 CHISEL을 사용해 RTL 코드를 생성하며, CNN 아키텍처에 기반해 컨볼루션, 풀링, 완전 연결 레이어를 자동으로 조합한다.
  • 시뮬레이션 및 정밀도 조정 백엔드는 분류 오차를 최소화하기 위해 레이어 간 데이터 경로의 비트 폭(정수 및 소수 부분)을 반복적으로 조정한다.
  • 프레임워크는 공유 모드(모든 레이어에 하나의 컨볼루션 유닛 사용)와 전용 모드(각 레이어에 전용 유닛 할당)의 두 가지 하드웨어 모드를 지원하며, 후자는 액세스 경쟁을 감소시킨다.
  • 전체 파이프라인은 Xilinx SDSoC 2016.4를 사용해 통합되었으며, Zynq SoC FPGA의 HLS 기반 합성 및 프로그래밍을 가능하게 한다.
  • 프레임워크는 PYNQ Zynq-7000 보드에서 성능을 검증하기 위해 회색조 입력을 사용한 CIFAR-10과 소형 5층 CNN을 사용한다.

실험 결과

연구 질문

  • RQ1완전 자동화된 프레임워크가 임베디드 FPGA에서 CNN 가속기의 설계 노력과 구현 시간을 줄일 수 있는가?
  • RQ216비트 고정소수점 산술이 FPGA 기반 CNN 추론에서 32비트 부동소수점 대비 분류 정확도를 얼마나 잘 유지할 수 있는가?
  • RQ3특히 BRAM 자원 사용률이 소형 FPGA에서 CNN 설계를 어떻게 제약하는가? 그리고 프레임워크가 이를 완화할 수 있는가?
  • RQ4임베디드 FPGA 가속기에서 전용 컨볼루션 유닛 할당이 공유 할당보다 성능 향상을 이룰 수 있는가?
  • RQ5데이터 경로 비트 폭의 반복적 정밀도 조정이 저해상도 CNN에서 정확도 손실을 상당히 줄일 수 있는가?

주요 결과

  • 16비트 고정소수점 산술을 사용할 경우, ARM Cortex-A9 소프트웨어 구현 대비 TinyCNN 프레임워크는 이미지당 42.54ms 대비 2.70ms로 15.75배의 성능 향상을 달성했다.
  • 전용 모드에서 FPGA 가속 버전의 정확도는 62.28%였으며, 32비트 부동소수점 소프트웨어 기준선의 65.54% 대비 단지 3.26%의 감소를 보였다.
  • 공유 모드 하드웨어 가속기(HW-SM)는 추론 시간 8.12ms, 정확도 62.28%를 기록했으며, 이는 전용 모드가 액세스 경쟁을 제거함으로써 성능 향상을 이룬다는 것을 보여준다.
  • BRAM 사용률이 주요 하드웨어 제약 조건이었으며, 프레임워크의 소프트웨어 백엔드는 자원 한계 내에서 CNN 설계를 효과적으로 안내했다.
  • 정밀도 조정 백엔드는 레이어 간 정수 및 소수 비트 폭을 조정함으로써 분류 오차를 성공적으로 최소화했으며, 저해상도 산술임에도 불구하고 높은 정확도를 유지했다.
  • 프레임워크는 최소한의 수동 조작으로 파이썬 기반 CNN 모델에서 기능하고 최적화된 CNN 가속기를 성공적으로 생성했다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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