Skip to main content
QUICK REVIEW

[논문 리뷰] Automatic Compiler Based FPGA Accelerator for CNN Training

Shreyas Kolala Venkataramanaiah, Yufei Ma|arXiv (Cornell University)|2019. 08. 15.
Advanced Neural Network Applications인용 수 5
한 줄 요약

이 논문은 16비트 고정소수점 정밀도를 사용하여 엔드 투 엔드 CNN 훈련을 위한 자동화된 컴파일러 기반 FPGA 가속기의 설계 및 구현을 제시한다. 가변적인 RTL 컴파일러와 최적화된 하드웨어 라이브러리를 활용하여 전체 훈련(전방, 역방향, 가중치 갱신)을 위한 FPGA 최적화 가속기를 생성하였으며, 200만 파라미터를 가진 CIFAR-10 네트워크에서 인텔 스트라티스 10 GX FPGA에서 최대 479 GOPS의 성능을 달성하였다.

ABSTRACT

Training of convolutional neural networks (CNNs)on embedded platforms to support on-device learning is earning vital importance in recent days. Designing flexible training hard-ware is much more challenging than inference hardware, due to design complexity and large computation/memory requirement. In this work, we present an automatic compiler-based FPGA accelerator with 16-bit fixed-point precision for complete CNNtraining, including Forward Pass (FP), Backward Pass (BP) and Weight Update (WU). We implemented an optimized RTL library to perform training-specific tasks and developed an RTL compiler to automatically generate FPGA-synthesizable RTL based on user-defined constraints. We present a new cyclic weight storage/access scheme for on-chip BRAM and off-chip DRAMto efficiently implement non-transpose and transpose operations during FP and BP phases, respectively. Representative CNNs for CIFAR-10 dataset are implemented and trained on Intel Stratix 10-GX FPGA using proposed hardware architecture, demonstrating up to 479 GOPS performance.

연구 동기 및 목표

  • 자원 제약이 있는 임베디드 플랫폼에서 유연하고 에너지 효율적인 CNN 훈련을 구현하는 데 도전한다.
  • 에너지 효율성과 현장 학습 능력 측면에서 GPU 기반 훈련의 한계를 극복한다.
  • 다양한 CNN 아키텍처를 위한 확률적 경사 하강법(SGD) 훈련의 모든 단계를 지원하는 완전 자동화된 FPGA 기반 가속기 설계를 목표로 한다.
  • 순환 저장 방식을 활용하여 전방, 역방향, 가중치 갱신 단계의 효율적인 메모리 액세스 및 계산 매핑을 실현한다.
  • 정확도를 플로ating-point 훈련 수준으로 유지하면서도 높은 스루풋과 에너지 효율성을 달성한다.

제안 방법

  • 전방, 역방향, 가중치 갱신 연산을 위한 파rameterized Verilog 모듈을 포함한 훈련 전용 RTL 모듈 라이브러리를 개발하였다.
  • 고수준 CNN 구성 및 설계 제약 조건에서 FPGA 합성 가능한 RTL을 자동으로 생성하는 RTL 컴파일러를 구축하였다.
  • 내장형 BRAM와 외부 DRAM을 활용한 순환 가중치 저장/액세스 방식을 구현하여 비전치(전방) 및 전치(역방향) 연산을 효율적으로 처리하였다.
  • 타일링과 더블 버퍼링 기법을 도입하여 DRAM 지연 시간을 숨기고 내장 버퍼 사용량을 줄였다.
  • MAC 어레이 간의 로드 밸런싱을 통해 가중치 갱신 레이어의 논리 지연 시간을 4배 감소시켰다.
  • FPGA 구현의 기능 정확성을 검증하기 위해 파이토치 기반의 고유한 고정소수점 훈련 모델을 설계하였다.
Figure 1: SGD based CNN training dataflow illustrated for a simple 2C-2P-1FC model.
Figure 1: SGD based CNN training dataflow illustrated for a simple 2C-2P-1FC model.

실험 결과

연구 질문

  • RQ1다양한 네트워크 크기를 지원하는 자동화된 FPGA 기반 가속기 설계는 어떻게 가능할 수 있는가?
  • RQ2전방, 역방향, 가중치 갱신 단계에서 지연 시간을 최소화하기 위해 가장 효과적인 메모리 액세스 패턴과 데이터플로우 최적화는 무엇인가?
  • RQ3제안된 순환 저장 방식은 전치 및 비전치 연산에 대해 메모리 대역폭 활용도를 어떻게 향상시키는가?
  • RQ4GPU 기반 솔루션과 비교해 볼 때, 완전 자동화된 FPGA 기반 CNN 훈련 가속기의 구현 가능한 스루풋과 에너지 효율성은 어느 정도인가?
  • RQ5고정소수점 정밀도는 FPGA에서 고성능 훈련을 가능하게 하면서도 모델 정확도를 어느 정도 유지할 수 있는가?

주요 결과

  • FPGA 가속기는 인텔 스트라티스 10 GX FPGA에서 240 MHz에서 4배 확대된 CIFAR-10 CNN 모델에 대해 최대 479 GOPS의 스루풋을 달성하였다.
  • 배치 크기가 40인 경우, 가속기는 13.45 GOPS/W의 에너지 효율성을 확보하였으며, 더 작은 배치 크기에서 테이탄 XP GPU를 능가하는 에너지 효율성을 보였다.
  • 가중치 갱신 레이어는 배치 반복당 총 지연 시간의 51%를 차지하였으며, 주로 과거 기울기와 가중치에 대한 DRAM 액세스 때문이었다.
  • 더블 버퍼링 기법을 통해 가중치 갱신 레이어의 지연 시간이 11% 감소하였다.
  • 1X CNN 모델은 학습률 0.002, 배치 크기 40로 50 에포크 후 73%의 CIFAR-10 정확도를 기록하였으며, 플로ating-point 기준 성능과 일치하였다.
  • 더 작은 배치 크기에서 안정적이고 신뢰할 수 있는 훈련이 가능했으며, 이는 더 최신의 기울기 추정치를 제공하기 때문이다.
(a) Feedforward convolutions.
(a) Feedforward convolutions.

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

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

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

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