Skip to main content
QUICK REVIEW

[論文レビュー] CodeX: Bit-Flexible Encoding for Streaming-based FPGA Acceleration of DNNs

Mohammad Samragh, Mojan Javaheripi|arXiv (Cornell University)|Jan 17, 2019
Advanced Neural Network Applications参考文献 32被引用数 8
ひとこと要約

CodeXは、DNNのストリーミングベースFPGAアクセラレーションのためのビットに柔軟な非線形符号化フレームワークを導入し、ハードウェア最適化されたストリーミングバッファと強化学習にインspiredされたビット幅自動チューニングアルゴリズムにより、オンチップでの符号化された活性化の実行を可能にした。ImageNetにおいて、重みのみの符号化と比較して4.65倍高いスループットを達成し、フル精度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は6つの既存のフル精度DNNアクセラレータを3.6倍のスループットと2.54倍のパフォーマンス・パーウォットで上回った。
  • MVAUエンジンにおける符号化/復号化のランタイムオーバーヘッドは無視できるほど小さく、90%以上のサイクルがVDP計算に、10%未塔のサイクルが符号化/復号化操作に割り当てられていた。
  • 強化学習ベースのビット幅選択アルゴリズムは、精度損失を最小限に抑えながらメモリ削減を最大化する近似的最適な設定を効果的に同定した。
  • このフレームワークにより、オフチップDRAMアクセスを排除し、オンチップストリーミングバッファのみを用いてDNNの完全なオンチップ実行が可能になった。
  • オープンソースAPIにより、PyTorchスタイルのDNNモデルを最小限の工数でFPGA最適化されたハードウェアコードに直接変換できるようになった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。