论文部分内容阅读
在人工智能领域,目前大多数神经网络的计算任务由CPU和GPU完成,传统的芯片计算架构已无法支撑神经网络所需求的大规模并行计算要求,这就需要新的底层硬件来更好地加速计算过程,为整个人工智能的实现提供算力。FPGA基于其出色的可重构性及并行运算等特性非常适合用来提升神经网络的计算性能,因此研究基于FPGA的神经网络计算架构具有重要的现实意义。本文通过分析神经网络计算的特点以及FPGA芯片的硬件特性,总结了FPGA实现神经网络过程中需要研究的几个关键问题,并针对性的给出的优化的设计方案。主要的研究内容包括:(1)讨论了典型激活函数的几种拟合方法,在对比分析的基础上提出了一种最佳等距分段逼近法对激活函数进行线性拟合,提高激活函数的拟合精度;(2)通过对比不同定点位数组合下神经网络的预测误差,得到定点位数与误差之间的关系,并据此确定定点位数的优选值;(3)介绍了两种脉动阵列的运算模式,分析了这种运算模式对于神经网络的乘加运算的适应性,应用潜力和局限性;(4)由于CSD编码可以极大的减少了乘法运算过程中产生的部分积数量,因此设计了一种基于CSD编码的可重载系数乘法运算模块,不但减少了乘法运算占用的资源,而且减少了运算过程中的门翻转次数。基于以上关键技术的研究,提出了一种适用于并行运算的脉动阵列神经网络硬件架构,该结构根据神经网络的计算需求对脉动阵列进行了进一步改进,保证了运算具有深度流水线特性,简化了运算过程的控制;更为重要的是该架构使得单层神经网络结构具备可重用性,极大地降低了芯片资源的消耗。最后将这种神经网络的设计方法应用到PID控制的仿真模型中,通过仿真发现,基于FPGA实现的神经网络控制算法达到了预定的控制要求,证明了本文所述方法的可行性。