[論文レビュー] PipeCNN: An OpenCL-Based FPGA Accelerator for Large-Scale Convolution Neuron Networks
この論文では、大規模な畳み込みニューラルネットワーク(CNN)向けに、OpenCLベースのFPGAアクセラレータであるPipeCNNを提案する。パイipeliningされたカーネルとデータ再利用技術を活用することで、性能とリソース効率を向上させる。FPGAのパイプライン機能を活用し、カーネルマッピングを最適化することで、先行研究と比較してDSP使用量を34%削減しながら33.9 GOPSの性能を達成。また、フル精度(32ビット浮動小数点)の推論および学習互換性をサポートする。
Convolutional neural networks (CNNs) have been widely employed in many applications such as image classification, video analysis and speech recognition. Being compute-intensive, CNN computations are mainly accelerated by GPUs with high power dissipations. Recently, studies were carried out exploiting FPGA as CNN accelerator because of its reconfigurability and energy efficiency advantage over GPU, especially when OpenCL-based high-level synthesis tools are now available providing fast verification and implementation flows. Previous OpenCL-based design only focused on creating a generic framework to identify performance-related hardware parameters, without utilizing FPGA's special capability of pipelining kernel functions to minimize memory bandwidth requirement. In this work, we propose an FPGA accelerator with a new architecture of deeply pipelined OpenCL kernels. Data reuse and task mapping techniques are also presented to improve design efficiency. The proposed schemes are verified by implementing two representative large-scale CNNs, AlexNet and VGG on Altera Stratix-V A7 FPGA. We have achieved a similar peak performance of 33.9 GOPS with a 34% resource reduction on DSP blocks compared to previous work. Our design is openly accessible and thus can be reused to explore new architectures for neural network accelerators.
研究の動機と目的
- 組み込みシステムにおけるGPUベースのCNNアクセラレータの高消費電力とスケーラビリティの限界を解決すること。
- 先行のOpenCLベースのFPGA設計がパイプライン化とメモリ帯域幅最適化を十分に活用できていないという制限を克服すること。
- OpenCLおよびハイレベル合成を用いて、高性能でスケーラブルかつ再利用可能なFPGAアクセラレータを大規模CNN用に開発すること。
- Stratix-V A7 FPGAにおけるCNN推論用パイプライン化カーネルの設計空間を調査・最適化すること。
- 将来のニューラルネットワークアクセラレータ設計研究のためのオープンソースで再利用可能なフレームワークを提供すること。
提案手法
- アーキテクチャは、データストリーミングを実現するOpenCLチャネルで接続された4つのOpenCLカーネル(畳み込み、プーリング、LRN、全結合)を採用する。
- スループットを最大化し、メモリ帯域幅の圧力を軽減するために、深くパイプライン化されたカーネル設計を採用する。
- 再利用可能なデータとタスクマッピング技術を適用することで、重複するメモリアクセスを削減し、データ局所性を向上させる。
- 推論および学習におけるバックプロパゲーションとの完全な互換性を確保するため、32ビット浮動小数点精度を採用する。
- LRNカーネルでは、面積オーバーヘッドを最小限に抑えて効率的に正規化を計算するため、区分線形近似(pwlf)法を用いる。
- パフォーマンスとリソース使用量の最適化を図るため、ベクトルサイズ(VEC_SIZE)と計算ユニット数(CU_NUM)を変化させた設計空間探索を実施する。
実験結果
リサーチクエスチョン
- RQ1FPGAベースのCNNアクセラレータにおいて、パイプライン化されたOpenCLカーネルを効果的に活用することで、メモリ帯域幅の圧力をどのように軽減できるか?
- RQ2Stratix-V A7 FPGA上でパフォーマンスとリソース効率を最大化するための最適なベクトルサイズと計算ユニット数の設定は何か?
- RQ3OpenCLベースのFPGAアクセラレータは、先行のHLSベースの設計と比較して、競争力のあるパフォーマンスを達成しつつ、DSPリソース使用量を削減できるか?
- RQ4FPGAベースのCNNアクセラレータにおいて、フル精度(32ビット浮動小数点)計算がパフォーマンスとリソース利用に及ぼす影響はどの程度か?
- RQ5既存のFPGAベースのCNNアクセラレータと比較して、提案アーキテクチャのパフォーマンス密度(DSPあたりのGOPS)はどの程度か?
主な発見
- PipeCNNは、Stratix-V A7 FPGA上でピークパフォーマンス33.9 GOPSを達成し、先行研究と同等の性能を発揮しながら、DSPブロックの使用量を顕著に削減した。
- FPGA2016の研究と比較してDSP使用量を34%削減し、パフォーマンス密度は0.21 GOPS/DSPを達成。これはベースライン比で60%高い。
- DE5-netボードにおける最適な設定はVEC_SIZE=8およびCU_NUM=16であり、AlexNetでは43 ms、VGG-16では718 msの推論時間となった。
- 計算ユニット数が増加するにつれ、メモリ帯域幅がボトルネックとなる。12.8 GB/sのDRAM制限によりパイプラインスタールが発生し、利得の逓減が見られた。
- AlexNetでは27.3W、VGG-16では29.8Wの消費電力であり、フル精度計算を実行しているにもかかわらず、高い効率を維持した。
- 設計のオープンソース化により、将来のニューラルネットワークアクセラレータ開発研究における再利用と拡張が可能となった。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。