论文部分内容阅读
卷积神经网络作为深度学习领域的核心算法,将特征提取与分类进行结合,与人工提取特征进行分类相比,具有更高的检测精度。由于其网络结构复杂,每层包含大量并行的乘加运算,需要硬件平台具有强大的并行计算能力。FPGA作为一种可编程逻辑器件,具有高并行度和可编程性等优势,可针对不同的算法进行并行加速,成为实现卷积神经网络的一种重要的选择。本文基于Xilinx公司的ZYNQ芯片对卷积神经网络进行硬件加速研究。对卷积神经网络的结构特点进行分析,采用软硬件协同设计的方式,充分发挥ARM和FPGA的优点。ARM端完成Linux操作系统的移植以及软硬件协同程序的设计;FPGA端实现卷积计算模块、深度可分离卷积计算模块、池化计算模块、数据输入和输出模块的设计。针对并行展开的方式易造成长广播、多扇入扇出的数据通路问题,本文采用脉动阵列代替并行展开,将长距离的数据通路转换为每个处理单元之间的短距离数据通路,并完成卷积计算模块的设计工作。在数据传输的实现方式上,采取多通道数据传输加中间缓存的方式,减少数据在DDR存储器和片上缓存之间传输的时间,并完成对数据输入和输出模块的设计。在硬件IP优化上,采用乒乓流水化操作方式执行各个模块,增加各模块的使用效率,减少硬件IP的总体运行时间。对浮点数据进行定点量化,减少片上存储资源的使用。针对FPGA片上存储资源无法存储全部权重参数和中间数据的问题,对卷积神经网络进行分块操作,并通过Roofline性能评估模型优化硬件结构以满足硬件资源限制。卷积神经网络硬件IP总体设计采用Vivado HLS高层次综合工具完成。实验采用Zedboard开发板,通过两种不同结构的卷积神经网络对软硬件协同设计进行评估。结果表明,本文利用ZYNQ芯片以软硬件协同设计的方式实现了卷积神经网络的硬件加速,在与浮点数据类型的检测精度基本一致的情况下,具有加速效果好,系统功耗低等优点。