Core Concepts
本論文では、オフチップメモリを活用したストリーミングアーキテクチャを提案し、最新のCNNモデルを効率的にFPGAにマッピングする手法を示す。
Abstract
本論文では、ストリーミングアーキテクチャにおけるオンチップメモリの制限を克服するため、重みとアクティベーションのオフチップへの部分的なオフロードを提案している。具体的には以下の3つの手法を導入している:
アクティベーションのオフチップへの逐次的なエビクション
長いスキップ接続を持つモデルでは、オンチップバッファの容量が不足するため、アクティベーションデータの一部をオフチップメモリにストリーミングする。
重みのフラグメンテーション
重みパラメータの一部をオフチップメモリから動的にロードすることで、オンチップメモリの使用量を削減する。
サブグラフベースのパーティショニング
FPGAの再構成機能を活用し、CNNグラフをサブグラフに分割してパイプラインを構築する。これにより、デバイスリソースの制限に対応できる。
提案手法は、これらの3つの手法を組み合わせて最適な設計を自動的に探索する。これにより、UNet、YOLOv8、X3D、UNet3Dなど、複雑な構造を持つ最新のCNNモデルをFPGAに効率的にマッピングできる。実験結果では、従来手法と比較して最大10.65倍の性能向上を達成している。
Stats
UNetモデルのMAC数は130.12Gであり、従来手法と比べて23.3倍大きい。
UNet3Dモデルのマック数は918.64Gと非常に大きい。
YOLOv8sモデルのMAC数は30.5G、YOLOv8nモデルは4.4Gである。
X3D-Mモデルのマック数は6.97Gである。