论文部分内容阅读
随着人工智能的发展,卷积神经网络算法在图像处理、分类识别、目标追踪等领域得到了广泛的应用。针对卷积神经网络硬件加速的研究,提出了卷积神经网络加速模块设计方案,设计了相应的数据通路与硬件架构,基于FPGA开发平台实现,加速模块具有高效率、高性能和低BRAM资源消耗的特点。首先,针对常见卷积神经网络的特性,重点对卷积层进行加速设计。在对卷积层硬件加速设计空间的探索中,对卷积运算循环展开和并行计算进行分析,总结了数据复用方式对内存访问的影响;通过分析不同分块方式对片外内存访问(EMA)数据量的影响,选择在输出高度和输出通道上进行卷积分块,提出了不同数据复用方式下EMA数据量的计算方法,为后续硬件加速结构在缓存与数据复用方式设计上提供了理论支持。其次,为了适应常见卷积神经网络中不同类型的网络层,提出了一种统一架构的卷积神经网络加速结构设计方案。在数据通路上,为优化EMA和减少片上内存资源使用,在加速结构内部进行分层次缓存和双缓冲设计,设计数据存储格式优先储存输入输出通道数据,在内部数据传输中分阶段复用输入特征图和权重。在硬件架构上,在输入输出通道上并行计算,将其映射到乘加阵列中,增强对不同卷积尺寸的适应性;在卷积加速模块中设计了融合乘加树和脉动阵列的高效率乘加阵列,引入5级流水线,提升加速性能;在池化加速模块中对池化操作进行二维分离处理,减少片上内存资源使用;利用控制模块执行卷积分块下的数据复用,调度卷积模块与池化模块共同完成加速工作。基于Xilinx VC707开发平台,实验表明,提出的加速结构对常见卷积神经网络具有一定的通用性,在运行Alex Net卷积层时相比Eyeriss有着5.3倍的性能提升,在DSP模块性能效率与BRAM资源消耗上相比其他FPGA加速方案表现优异,其中DSP模块专指FPGA上的DSP Slice计算单元。最后,提出了一种专用型卷积神经网络加速器设计方案。为优化片外访存,对具体网络选择合适的块缓存设计和数据复用策略。在优化设计上,对第一层卷积层进行数据处理,设计独立的全连接模块,提升计算效率与计算性能;将池化模块合并到卷积模块中,减少片外内存传输数据总量。基于Xilinx VC707开发板搭建加速系统,实验表明优化后性能分别提升1.56倍和2.57倍。进行了多乘加阵列加速器并行设计和流水线设计的方案对比,实验发现对VGG-16分阶段进行流水线加速运算时,在DSP模块性能效率和BRAM资源消耗上效果最佳;与嵌入式GPU TX2相比,性能与能效上提升1.7倍;与基于FPGA的加速方案相比,在DSP模块性能效率上有着1.4倍的提升,在性能BRAM比参数上有着5.5倍的提升,同时BRAM资源使用量节省了48%以上。