[論文レビュー] Block Convolution: Towards Memory-Efficient Inference of Large-Scale CNNs on FPGA
本論文は、FPGAベースのCNN推論において中間特徴マップの外部メモリへの転送を排除するハードウェアにやさしい畳み込み演算「ブロック畳み込み」を提案する。特徴マップを独立した空間ブロックに分割することで、タイル境界の依存関係を解消し、最小限のオンチップバッファ使用でエンドツーエンドのレイヤーフュージョンを可能にする。これにより、外部メモリ転送を99.9%以上削減し、メモリ制限のあるFPGA上でエネルギー効率と遅延を顕著に向上させる。ImageNet分類、COCO検出、スーパーレゾリューションのタスクにおいて、同等の精度を維持する。
Deep convolutional neural networks have achieved remarkable progress in recent years. However, the large volume of intermediate results generated during inference poses a significant challenge to the accelerator design for resource-constraint FPGA. Due to the limited on-chip storage, partial results of intermediate layers are frequently transferred back and forth between on-chip memory and off-chip DRAM, leading to a non-negligible increase in latency and energy consumption. In this paper, we propose block convolution, a hardware-friendly, simple, yet efficient convolution operation that can completely avoid the off-chip transfer of intermediate feature maps at run-time. The fundamental idea of block convolution is to eliminate the dependency of feature map tiles in the spatial dimension when spatial tiling is used, which is realized by splitting a feature map into independent blocks so that convolution can be performed separately on individual blocks. We conduct extensive experiments to demonstrate the efficacy of the proposed block convolution on both the algorithm side and the hardware side. Specifically, we evaluate block convolution on 1) VGG-16, ResNet-18, ResNet-50, and MobileNet-V1 for ImageNet classification task; 2) SSD, FPN for COCO object detection task, and 3) VDSR for Set5 single image super-resolution task. Experimental results demonstrate that comparable or higher accuracy can be achieved with block convolution. We also showcase two CNN accelerators via algorithm/hardware co-design based on block convolution on memory-limited FPGAs, and evaluation shows that both accelerators substantially outperform the baseline without off-chip transfer of intermediate feature maps.
研究の動機と目的
- メモリ制限のあるFPGA上でCNN推論を行う際、頻繁な外部メモリ転送が引き起こす高遅延と高消費電力の問題を解決すること。
- 従来のタイルベースのCNNアクセラレータで見られる、空間タイル間のデータ依存関係を解消し、中間特徴マップの繰り返し外部メモリ転送を防ぐこと。
- オンチップバッファ要件を増加させることなく、エンドツーエンドのレイヤーフュージョンを可能にするハードウェアにやさしい畳み込み演算を設計すること。
- VGG-16、ResNet、MobileNet、SSD、FPN、VDSRなど多様なCNNアーキテクチャにわたるブロック畳み込みの広範な適用可能性と効率性を示すこと。
- Xilinx ZC706およびUltra96 MPSoCプラットフォーム上で共同設計されたFPGAアクセラレータを用いて、ブロック畳み込みの性能向上を検証すること。
提案手法
- ブロック畳み込みは、入力特徴マップを独立した空間ブロックに分割することで、タイル間の計算を分離し、外部メモリ転送を要する境界依存関係を排除する。
- 各ブロックが中間結果を外部に保存せずに入力から出力までエンドツーエンドで処理できるため、マルチレイヤーのフュージョンが可能になる。
- FPGA上でのハードウェア最適化技術(固定小数点量子化、パイipelインド処理など)と互換性がある。
- 高水準合成(HLS)を用いてブロック畳み込みを実装するハードウェアアクセラレータを共同設計し、重みと中間結果のオンチップバッファを備え、外部データ移動を最小限に抑える。
- 入力と出力タイルのための単一のバッファを採用することで、ダブルバッファリングや散乱アクセス(scatter-gather)メモリアクセスパターンの必要性が解消される。
- 200MHzで動作するXilinx Ultra96 MPSoCおよびZC706 SoCプラットフォーム上で評価を行い、リソース使用量と外部メモリ転送量を測定した。
実験結果
リサーチクエスチョン
- RQ1ブロック畳み込みは、FPGAベースのCNN推論において中間特徴マップの外部メモリ転送を排除できるか?
- RQ2VGG-16、ResNet、MobileNet、SSD、FPN、VDSRなどの多様なCNNアーキテクチャにおいて、ブロック畳み込みはモデルの精度にどのような影響を与えるか?
- RQ3リソース制限のあるFPGAにおいて、ブロック畳み込みはオンチップバッファ要件と外部メモリ帯域幅の圧力をどの程度軽減できるか?
- RQ4従来のタイリング方式を用いたベースラインアクセラレータと比較して、ブロック畳み込みベースのアクセラレータの遅延、エネルギー、リソース使用量における性能向上はいかほどか?
- RQ5異なるブロッキングパターンやサイズは、ブロック畳み込みを用いた際の精度とハードウェア効率にどのような影響を与えるか?
主な発見
- ブロック畳み込みにより、外部メモリへの特徴マップ転送量が99.9%以上削減され、VDSRアクセラレータでは36.48 Gbitsから31.64 Mbitsにまで低下し、エネルギー消費と帯域幅圧力を顕著に削減した。
- ブロックメモリ(BRAM)使用量は432中352から432中264にまで削減され、顕著なオンチップメモリの節約が確認された。
- ベースラインアクセラレータではダブルバッファリングと複雑なメモリアクセスパターンが必須であるが、ブロック畳み込みバージョンではこれらの機構の必要性が解消された。
- VDSRモデルでは、ブロック畳み込みアクセラレータが1%未満の劣化で同等のPSNR性能を達成し、精度損失が最小限であることを確認した。
- 画像分類(VGG-16、ResNet-18/50、MobileNet-V1)、COCOオブジェクト検出(SSD、FPN)、Set5スーパーレゾリューション(VDSR)といった多様なタスクにおいて、mAP/PSNRの劣化が1%未満に抑えられ、高い精度を維持した。
- 共同設計されたアクセラレータは、外部メモリ転送の排除とメモリアクセスの単純化により、ベースラインと比較して顕著な性能向上を示し、遅延とエネルギー消費が低減した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。