[論文レビュー] Automated flow for compressing convolution neural networks for efficient edge-computation with FPGA
この論文は、FPGAベースのエッジデバイスにバイナリ化畳み込みニューラルネットワーク(CNN)を圧縮およびデプロイする自動的でエンド・ツー・エンドのフローを提示する。重みを1ビットに量子化し、活性化を2ビットにし、高水準合成を用いて最適化されたCコードおよびFPGAアクセラレータを生成する。モバイルCPUに比べ11.5倍の高速化を達成し、完全な合成が1時間未塔で実現可能であり、Cyclone-V FPGA SoCにデプロイされたYOLOv2で実証された。
Deep convolutional neural networks (CNN) based solutions are the current state- of-the-art for computer vision tasks. Due to the large size of these models, they are typically run on clusters of CPUs or GPUs. However, power requirements and cost budgets can be a major hindrance in adoption of CNN for IoT applications. Recent research highlights that CNN contain significant redundancy in their structure and can be quantized to lower bit-width parameters and activations, while maintaining acceptable accuracy. Low bit-width and especially single bit-width (binary) CNN are particularly suitable for mobile applications based on FPGA implementation, due to the bitwise logic operations involved in binarized CNN. Moreover, the transition to lower bit-widths opens new avenues for performance optimizations and model improvement. In this paper, we present an automatic flow from trained TensorFlow models to FPGA system on chip implementation of binarized CNN. This flow involves quantization of model parameters and activations, generation of network and model in embedded-C, followed by automatic generation of the FPGA accelerator for binary convolutions. The automated flow is demonstrated through implementation of binarized "YOLOV2" on the low cost, low power Cyclone- V FPGA device. Experiments on object detection using binarized YOLOV2 demonstrate significant performance benefit in terms of model size and inference speed on FPGA as compared to CPU and mobile CPU platforms. Furthermore, the entire automated flow from trained models to FPGA synthesis can be completed within one hour.
研究の動機と目的
- エネルギーとコストが制限されたエッジデバイスに、大規模で電力消費の高いディープCNNをデプロイする課題に対処すること。
- 自動量子化とハードウェア生成を通じて、低消費電力FPGA上でのCNNのモデルサイズと推論遅延を低減すること。
- データ順序とメモリアクセスパターンの最適化により、バイナリ化CNNの効率的なFPGAアクセラレーションを実現すること。
- トレーニング済みTensorFlowモデルからFPGA合成可能なハードウェアアクセラレータへの完全自動パイプラインの開発。
提案手法
- 最初および最後の層を除き、トレーニング済みTensorFlowモデルを1ビット重みおよび2ビット活性化に量子化する。
- TensorFlowプロトコルバッファ形式からモデルをパースし、グラフレベルの変換を適用して浮動小数点演算をビットレベルの同等物に置き換える。
- 圧縮されたネットワーク用にコンactな自己完結型の埋め込みCコードを生成し、チップ内での効率的実行を可能にする。
- 高水準合成(HLS)を用いて、モデルの計算およびメモリ要件に適合した自動的なFPGAアクセラレータを生成する。
- 局所メモリ上のビットマスクのオーバーヘッドを低減し、メモリアクセスの連続性を向上させるために、深さ優先のデータ順序戦略を実装する。
- 畳み込み演算中のバーストメモリ性能を向上させ、スループットを向上させるために、カーネル間並列処理を可能にする。
実験結果
リサーチクエスチョン
- RQ1自動フローは、低消費電力FPGA上でのバイナリ化CNNのモデルサイズと推論遅延を顕著に低減できるか?
- RQ2深さ優先のデータ順序戦略は、FPGAベースのバイナリ化CNNアクセラレータにおけるメモリアクセス効率の向上とハードウェア複雑性の低減にどの程度効果的か?
- RQ3バイナリ化CNN推論において、FPGAベースのアクセラレーションはモバイルCPUおよび一般用途CPUに比べ、速度およびエネルギー効率でどの程度優れているか?
- RQ4トレーニング済みTensorFlowモデルを合成可能なFPGAアクセラレータに変換するエンド・ツー・エンドの時間コストは、最小限の人的介入でどの程度か?
主な発見
- 提案された自動フローは、トレーニング済みTensorFlowモデルを約1時間で完全に合成可能なFPGAアクセラレータに変換できる。
- 圧縮されたバイナリ化YOLOv2モデルは8.26 MBにまで小さくなり(元の255.82 MBの32分の1)、大幅に小型化された。
- FPGAアクセラレータを搭載したバイナリ化畳み込みは、モバイルCPUに比べ11.5倍の高速化を達成し、ハイエンドデスクトップCPU(Core i7-6800K)に比べ1.21倍の高速化を実現した。
- FPGA-SoC上での推論時間はモバイルCPUに比べ5.34倍速く、Core i7 CPUに比べは1.78倍遅いが依然として高速であった。
- 深さ優先のデータ順序戦略により、より効率的なビットパックが可能になり、複数回のメモリアクセスやマスク操作の必要性が削減された。
- カーネル間並列処理と最適化されたメモリアクセスを組み合わせることで、より良いバースト性能が得られ、FPGA上のメモリライト回路が洗練された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。