Skip to main content
QUICK REVIEW

[논문 리뷰] CodeX: Bit-Flexible Encoding for Streaming-based FPGA Acceleration of DNNs

Mohammad Samragh, Mojan Javaheripi|arXiv (Cornell University)|2019. 01. 17.
Advanced Neural Network Applications참고 문헌 32인용 수 8
한 줄 요약

CodeX는 스트리밍 기반 FPGA 가속을 위한 비트 유연성과 비선형 인코딩 프레임워크를 도입하여, 하드웨어 최적화된 스트리밍 버퍼와 강화학습 기반 비트폭 자동 튜닝 알고리즘을 통해 캐시 내에서 인코딩된 활성화를 실행할 수 있도록 한다. 이는 가중치만 인코딩하는 것보다 4.65배 높은 처리량을 달성했으며, ImageNet에서 전정밀도 DNN 가속기 대비 처리량과 파워 효율성에서 각각 3.6배와 2.54배 향상되었다.

ABSTRACT

This paper proposes CodeX, an end-to-end framework that facilitates encoding, bitwidth customization, fine-tuning, and implementation of neural networks on FPGA platforms. CodeX incorporates nonlinear encoding to the computation flow of neural networks to save memory. The encoded features demand significantly lower storage compared to the raw full-precision activation values; therefore, the execution flow of CodeX hardware engine is completely performed within the FPGA using on-chip streaming buffers with no access to the off-chip DRAM. We further propose a fully-automated algorithm inspired by reinforcement learning which determines the customized encoding bitwidth across network layers. CodeX full-stack framework comprises of a compiler which takes a high-level Python description of an arbitrary neural network architecture. The compiler then instantiates the corresponding elements from CodeX Hardware library for FPGA implementation. Proof-of-concept evaluations on MNIST, SVHN, and CIFAR-10 datasets demonstrate an average of 4.65x throughput improvement compared to stand-alone weight encoding. We further compare CodeX with six existing full-precision DNN accelerators on ImageNet, showing an average of 3.6x and 2.54x improvement in throughput and performance-per-watt, respectively.

연구 동기 및 목표

  • FPGA 기반 가속기에서 DNN 활성화의 높은 메모리 프로필이 캐시 내 스트리밍 실행을 제한하고 외부 DRAM 액세스를 증가시키는 문제를 해결한다.
  • 비차별 가능한 비선형 인코딩 DNN을 훈련하는 데 도전하며, 정교 조정을 위한 기울기 근사 루틴을 개발한다.
  • 정확도 손실을 최소화하면서 메모리 절약을 극대화하기 위해 각 레이어의 인코딩 비트폭 선택을 자동화하여 수동으로 하위 최적화된 튜닝을 피한다.
  • PyTorch 모델에서 빠른 FPGA 하드웨어 생성을 위한 고수준, 오픈소스 API를 제공하여 비재현 비용을 감소시킨다.
  • 외부 메모리 액세스를 제거하기 위해 캐시 내 스트리밍 버퍼를 사용하여 인코딩된 DNN의 종단 간 비트 유연성 하드웨어 가속을 실현한다.

제안 방법

  • DNN 활성화의 온라인 비선형 인코딩을 도입하여 메모리 프로필을 크게 감소시켜 외부 DRAM 액세스 없이 캐시 내 전체 스트리밍 실행을 가능하게 한다.
  • 비차별 가능한 인코딩 함수를 위한 기울기 근사 근사치를 개발하여 인코딩된 DNN의 종단 간 역전파 및 정교 조정을 허용한다.
  • 상태-행동-보상 설정을 갖춘 강화학습 기반 알고리즘을 활용하여 정확도와 메모리 절약을 균형 잡는 최적의 각 레이어 비트폭을 자동으로 선택한다.
  • 변수 정밀도 고정소수점 산술과 캐시 내 버퍼링을 지원하는 비트 유연성과 스트리밍 인식 기반 계산 단위(MVAUs)를 갖춘 하드웨어 라이브러리를 설계한다.
  • 고수준의 컴파일러 API를 구축하여 고수준의 PyTorch 스타일 DNN 기술을 Vivado HLS 호환 C++ 코드로 변환하여 FPGA 구현을 가능하게 한다.
  • 중간 특징이 실시간으로 인코딩되고 캐시 내 버퍼를 통해 레이어 간 스트리밍되는 스트리밍 데이터플로우 아키텍처를 사용하여 외부 메모리 액세스를 제거한다.

실험 결과

연구 질문

  • RQ1비선형 인코딩을 통해 DNN 활성화의 메모리 프로필을 줄일 수 있는 방법은 무엇이며, 정확도를 손상시키지 않고 이를 훈련 및 추론 파이프라인에 통합할 수 있는가?
  • RQ2정확도와 메모리 절약을 균형 잡는 최적의 각 레이어 비트폭을 결정하는 효과적이고 자동화된 방법은 무엇인가?
  • RQ3외부 DRAM 액세스 없이 인코딩된 DNN의 캐시 내 스트리밍 실행을 달성할 수 있으며, 이를 통해 어떤 성능 향상이 이루어지는가?
  • RQ4제안된 강화학습 기반 비트폭 선택 전략은 정확도와 효율성 측면에서 수작업 또는 히وري스틱 방법과 비교해 어떻게 성능을 내는가?
  • RQ5고수준 오픈소스 API는 얼마나 많은 엔지니어링 오버헤드 없이 인코딩된 DNN의 FPGA 배포를 단순화할 수 있는가?

주요 결과

  • CodeX는 MNIST, SVHN, CIFAR-10 데이터셋에서 단일 가중치 인코딩 대비 평균 4.65배 높은 처리량을 달성한다.
  • ImageNet에서 CodeX는 여섯 가지 기존 전정밀도 DNN 가속기보다 처리량에서 3.6배, 파워 효율성에서 2.54배 향상된다.
  • MVAU 엔진에서 인코딩/디코딩의 런타임 오버헤드는 무시할 만큼 작으며, 90퍼센트 이상의 사이클이 VDP 계산에 할당되고, 10퍼센트 미만이 인코딩/디코딩 작업에 소요된다.
  • 강화학습 기반 비트폭 선택 알고리즘이 정확도 손실을 최소화하면서 메모리 감소를 극대화하는 근접 최적의 구성 설정을 성공적으로 식별한다.
  • 이 프레임워크는 외부 DRAM 액세스 없이 캐시 내 스트리밍 버퍼만을 사용하여 DNN의 완전한 캐시 내 실행을 가능하게 하여 전력 소모와 지연 시간을 감소시킨다.
  • 오픈소스 API는 최소한의 엔지니어링 노력으로 PyTorch 스타일 DNN 모델을 FPGA 최적화 하드웨어 코드로 직접 변환할 수 있도록 한다.

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

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

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

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