论文部分内容阅读
近年来,人工智能在理论和应用上都取得了巨大成功,深度学习作为人工智能最重要的研究方向,可以解决更加抽象复杂的问题。然而,由于问题变得更加抽象和复杂,深度学习网络的规模也在逐渐增加,模型的学习时间也随之剧增。所以对深度学习算法加速技术的研究成为大势所趋。相比于中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和专用集成电路(Application Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)在深度学习算法加速上具有高速度、低功耗、稳定而又延迟极低、适用于流式的计算密集型任务和通信密集型任务、灵活而开发周期短、成本低、便于携带等优势。目前,对深度学习算法的FPGA实现的具体架构的研究并不多,对训练过程的FPGA加速设计研究也较少。卷积神经网络(Convolutional Neural Network,CNN)算法是最常见最重要的深度学习算法之一,它在语音和图像识别等常见应用中取得了突破性成就,因此本文主要基于CNN,从算法基本原理,优化模型并仿真建模,通用硬件架构设计和FPGA实现四个方面对深度学习算法的FPGA加速进行研究与实现。首先,本文介绍了深度神经网络(Deep Neural Network,DNN)算法和CNN算法等深度学习理论。并对模型基本参数的优化选择和正则化、弃权技术等其他优化方法进行了研究,提出了一个具体的Lenet CNN模型,该模型在小规模的简化模型前提下,拥有良好的性能,准确率可达96.64%。然后,本文研究了CNN前向预测过程及后向训练过程的通用硬件架构,提出了基于移位寄存器的串矩转换结构和基于脉动阵列(Systolic Array,SA)的卷积层和池化层的主要运算单元的硬件架构。该架构具有模块化和可扩展性,可搭建任意规模的CNN模型,并且提高了频率和计算吞吐量,减小了I/O带宽需求。同时综合考虑计算时间及资源消耗后,提出了分段拟合逼近的Softmax层硬件设计框架。最后,基于硬件实现架构,分别对Lenet CNN的预测和训练过程进行FPGA实现和系统性能分析验证。首先对预测和训练过程进行Matlab定点仿真验证,然后搭建系统模块,并在Modelsim中进行功能仿真验证,随后分别在XC7K325T-2FFG900和XC7VX690T-2FFG1157上进行FPGA实现。最后分析对比了FPGA实现系统与CPU和GPU等在速度和功耗上的性能,在速度上FPGA比CPU有了3倍左右的提高,在功率上CPU和GPU是FPGA的100倍以上。