论文部分内容阅读
卷积神经网络(Convolutional Neural Network,CNN)是一种具有多层结构的深度学习模型,通过大规模的训练学习从高维度的数据中提取复杂的特征。卷积神经网络的训练过程具有处理流程复杂,计算量庞大的特点,同时涉及大量数据的传输以及隐层数据的缓存。为了解决更抽象和复杂的问题,卷积神经网络的规模越来越大,传统通用计算机平台的串行操作模式已经很难满足网络训练的需求。而具有大量逻辑、运算单元的现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)在性能、并行运算、功耗和尺寸等诸多方面具有突出的优势,很适合用于加速卷积神经网络的训练过程。论文对卷积神经网络的训练过程进行了深入的研究,分析了训练过程的并行性和现有的FPGA硬件加速架构。在此基础上,本文提出了一种全新的基于Zynq系列FPGA架构的硬件训练框架,用于加速卷积神经网络的训练过程。Zynq芯片的PS(Processing System)作为整个框架的控制中心,PL(Programmable Logic)被设计成训练计算核心负责训练过程的计算加速,由前向引擎、反向引擎和隐层数据队列构成,实现训练过程前向传播和反向传播的同时运算。根据训练过程的特点,本文分别设计了前向、反向引擎中的子模块,通过模块级联实现实际网络训练模型的搭建。本文在训练框架的基础上采用了四点优化策略进一步提高训练框架的加速性能。改进数据传输形式和卷积计算方式,有效地降低模块的计算输出延迟;通过对隐层数据进行编码实现数据的压缩,能够将数据存储量压缩到原来的4%,大幅降低数据存储量;根据反向传播的数学特性,对反向传播的计算量进行缩减,减少反向传播中的无效计算,提高了计算资源的利用率。为测试验证基于Zynq芯片的训练框架的加速性能,本文利用赛灵思的FPGA开发套件进行设计的仿真和实现。以LeNet-5网络为示例,利用提出的训练框架搭建网络的训练模型,并利用ZC706评估板进行硬件的板级实现。然后本文对实现的硬件系统进行了性能测试:采用计算缩减的方法可以将网络层反向传播的计算量平均降低34%;在32位浮点数精度下,采用本文的框架训练LeNet-5网络的的计算性能可达33.6GOPS,每次mini-batch取100的训练迭代仅需要7.9ms,且消耗的功率不到5W。同时本文将基于FPGA的实现与CPU和GPU平台进行了性能比对。同样进行LeNet-5网络的训练,论文提出的训练框架的计算性能是CPU平台的6.8倍,能量效率(energy efficiency)是GPU平台的9.7倍。因此,相对于CPU和GPU平台,本文设计的训练框架能在更低的功率消耗下达到更高的计算性能,更高效地实现卷积神经网络训练的加速。