卷积神经网络的FPGA并行加速设计与实现
2021-11-30郭子豪曲志坚
满 涛,郭子豪,曲志坚
(山东理工大学 计算机科学与技术学院,山东 淄博 255049)
0 引 言
随着计算机视觉和深度学习的迅速发展和广泛应用,对于卷积神经网络(Convolutional Neural Network,CNN)的关注度越来越高。但是,随着CNN的网络深度和规模越来越大,由此带来的功耗较大和计算效率低等问题又使得人们关注于使用不同架构的硬件来加速CNN的计算[1-3]。对于CNN,现场可编程门阵列(Field Programmable Gate Array,FPGA)使用软硬件协作来执行CNN网络,可重构配置以便在速度、功耗和灵活性之间权衡,可以大大提高计算效率并降低功耗。
目前的研究主要针对CNN模型的压缩和终端推理计算的设计与优化。在模型压缩方面,Choi等[4]分别对目标权重和激活分别量化并形成一个整体量化神经网络(Quantized Neural Network,QNN)的新技术;Ding等[5]提出使用2的幂的有限组合替代权重,从而用移位操作代替乘累加操作,实现了更高的准确性和更快的速度。在FPGA的设计与优化方面,Zhang等[6]设计了一种对特征图分块展开的加速方法并提出Roofline模型优化资源利用率,Li等[7]设计了一种单指令多数据(Single Instruction Multiple Data,SIMD)的卷积与流水线结构进行CNN加速,Stylianos等[8]提出一种以同步数据流(Synchronous Dataflow,SDF)计算模型为基础的加速器框架,Yang等[9]使用移位操作和1×1卷积优化网络设计了新的加速器架构和CNN模型。
本文针对使用浮点数进行卷积计算导致的计算复杂度高、模型占用空间大和运算速度慢的问题,设计了一种基于FPGA的卷积神经网络加速器。首先,通过设计动态定点量化方法,实现了将浮点CNN模型各层的权值和特征图参数动态量化为定点模型;……
