YOLOv3-tiny的硬件加速设计及FPGA实现*
2021-12-23陈浩敏姚森敬辛文成王龙海
陈浩敏,姚森敬,席 禹,张 凡,辛文成,王龙海,任 超
(1.南方电网数字电网研究院有限公司,广东 广州 510623;2.天津大学电气自动化与信息工程学院,天津 300072)
1 引言
随着人工智能浪潮的不断迭起,各种网络模型层出不穷,在图像分类领域有:AlexNet(Alex Network)[1]、VGGNet(Visual Geometry Group Network)[2]、GoogLeNet(Google LeNet)[3]和ResNet(Residual neural Network)[4]等,在目标检测领域有:RCNN(Regions with CNN features)[5]、Fast RCNN(Fast Regions with CNN features)[6]、SSD(Single Shot multibox Detector)[7]和YOLO(You Only Look Once)[8]等。表1列举了几种典型的图像分类网络模型,从表1中可以看出,网络模型的精度越来越高,但随之而来的是网络的结构越来越复杂,网络的规模越来越大,因此网络模型的训练及前向推理过程也变得十分缓慢。表1中,GMACs表示每秒10亿(=109)次的定点乘累加运算。

Table 1 Typical image classification network models表1 典型图像分类网络模型
网络的性能越强其所需要的计算力也就越高,为了加速网络的运算通常使用专用的硬件,如现场可编程门阵列FPGA(Field Programmable Gate Array)。FPGA是一种半定制、可重构的专用集成电路,具有功耗低、灵活性好、性能强的特点。Cloutier等人[9]使用FPGA进行手写字母识别的相关加速工作,受制于当时芯片的制造工艺没能取得较好的结果。Zhang等人[10]使用HLS(High Level Synthesis)的设计方法,提出了基于Roofline的模型分析方法,在XILINX Virtex7 FPGA上实现了AlexNet网络的卷积层设计,消耗了较多硬件资源。Ghaffari等人[11]提出一种通用卷积神经网络加速框架,使用LeNet5对设计架构进行测试,未能取得较高的计算力。Lu等人[12]使用快速 Winograd 算法进行卷积运算的加速,提出了一个能够在FPGA上运行Winograd快速运算的算法架构,设计较为复杂。Li等人[13]提出一种基于FPGA的端到端卷积神经网络加速器设计方法,以此提高加速器的吞吐率,然而灵活性较差。Venieris等人[14]提出一种基于FPGA的动态可重构卷积神经网络加速框架,采用脉动阵列的方式设计硬件加速单元,动态可重构的设计需要在使用时对FPGA反复烧写,模型部署较为复杂。……
