论文部分内容阅读
卷积神经网络(CNN)算法是人工智能深度学习领域的研究重点与热点,近年来,随着算法与硬件技术的发展,CNN正越来越广泛地推动着人类社会信息化、智能化的进程。由于CNN算法计算量与数据量巨大,因此,其算法加速成为必然。目前针对CNN算法的计算加速平台主要分为GPU、ASIC与FPGA三类,GPU虽然开发效率高、通用性好,但其功耗高,很难在嵌入式平台发挥优势;ASIC能效比高,但其开发周期长与开发成本高,也很难做到广泛的适配;基于FPGA开发的硬件加速系统综合了GPU开发效率高、通用性好与ASIC能效比高的优势,更适合应用于嵌入式平台的CNN算法计算加速。本文针对CNN算法在嵌入式设备或边缘计算设备中的应用,以其硬件计算加速为目标,进行了以下研究:首先,对CNN算法并行优化方法进行研究,通过对算法的拆分与重组和循环展开,分析适合算法硬件加速的优化方式,确定硬件系统设计研究重点。其次,基于FPGA可自定义数字逻辑、硬件可重构与门级并行等优势,提出硬件实现的计算与存储优化方法,其中包括用于计算的可配置定点小数运算模块,用于数据位宽匹配的串并行转换存储结构,用于适配不同尺寸特征图的动态深度可配置FIFO。再次,提出了一种基于SOPC软硬件协同技术设计的模块化可配置CNN硬件加速系统,通过可配置的并行流水线乘累加硬件计算结构对卷积与全连接净输入乘累加运算进行加速,通过可配置的激活池化模块对算法中偏置激活和池化运算进行加速,并编程实现了硬件设计自动化编译器用于CNN模型硬件加速系统源文件的自动生成。最后,针对MNIST数据集,利用提出的设计自动生成了手写数字识别网络的硬件加速系统,并在EP4CE115F29C7型中低端FPGA上进行硬件加速系统测试,当配置为16位定点小数精度、4组并行计算通道与16输入乘累加树时,系统逻辑资源与DSP占用分别为11%与25%,系统时钟能稳定运行在100MHz,峰值数据吞吐率达到12.4 GOPS,测试计算速度为i5-6500型CPU的24.26倍,与GTX750型GPU性能相当。对比C语言双精度浮点计算结果,输出层累计误差在0.095以内。结果表明,本文所提出的硬件加速系统资源占用较少,能准确有效地实现CNN算法计算,具有高度的可配置性与可移植性,适用于嵌入式平台CNN算法的计算加速。