一种基于FPGA的通用卷积神经网络加速器的设计与实现

作者:李沙沙; 李夏禹; 刘珊珊; 赵晓冬; 俞军*
来源:复旦学报(自然科学版), 2022, 61(01): 69-84.
DOI:10.15943/j.cnki.fdxb-jns.2022.01.003

摘要

针对卷积神经网络中算子众多、网络结构变化迅速的特点,本文提出一种基于现场可编程门阵列(FPGA)的较为通用的卷积神经网络(CNN)加速器,可适应多种应用需求、达到较好的加速效果。该加速器采用专用的CNN指令集,可通过软件编译网络来生成指令,控制硬件灵活地实现多种网络的推理工作。在设计上,该加速器有如下几个特点:第一,采用状态握手的控制方式,让各个模块能够并行执行;第二,对FPGA的DSP进行拆分,成倍的提高计算资源;第三,通过片上RAM乒乓的方式,进一步减少MAC等待的时间,提高利用率;第四,采用类脉动阵列的形式,让工程的时序更加收敛,主频进一步提高。另外,本文还对第1层卷积以及平均池化等特殊算子,进行特殊支持来进一步提升运行性能。本文在Xilinx Kintex-7 XC7K325T FPGA上进行了实验,核心加速引擎可工作在200 MHz,卷积MAC阵列峰值算力为0.8TOPS,能效比达到63.00 GOP/(s·W)。对于YOLO V2网络,它的平均MAC利用率为91.9%;对于VGG16网络,它的平均MAC利用率为73.5%。