一种基于FPGA的稀疏度神经网络加速系统技术方案

技术编号:19647450 阅读:22 留言:0更新日期:2018-12-05 20:40
本发明专利技术公开了一种基于FPGA的稀疏度神经网络加速系统,包括硬件加速器和软件执行程序,所述硬件加速器包括系统控制单元及分别与其连接的剪枝处理单元、权值压缩单元、数据存储单元、数据传输单元、计算处理单元,所述软件执行程序包括分别存储于剪枝处理单元、权值压缩单元内的剪枝处理程序和权值处理程序,软件执行程序对稀疏网络参数矩阵剪枝处理,并进行压缩存储;硬件加速器基于FPGA硬件开发平台,对压缩参数后后续计算过程进行硬件加速。本发明专利技术对使用新型剪枝技术生成的神经网络模型进行优化处理,根据不同类型神经层使用的剪枝方法针对性的处理该层的权值参数,对网络参数进行压缩存储,减少网络模型使用的存储空间。

A Sparse Neural Network Acceleration System Based on FPGA

The invention discloses a sparse neural network acceleration system based on FPGA, which includes hardware accelerator and software execution program. The hardware accelerator includes system control unit and pruning processing unit, weight compression unit, data storage unit, data transmission unit and computing processing unit connected with it respectively. The software execution program includes the pruning processing program and the weight processing program stored in the pruning processing unit, the weight compression unit respectively. The software execution program prunes the sparse network parameter matrix and carries on the compression storage. The hardware accelerator is based on the hardware development platform of the FPGA, and carries on the subsequent calculation process after the compression parameter. Hardware acceleration. The invention optimizes the neural network model generated by the new pruning technology, and processes the weight parameters of the layer according to the pruning method used by different types of nerve layers, compresses and stores the network parameters and reduces the storage space used by the network model.

【技术实现步骤摘要】
一种基于FPGA的稀疏度神经网络加速系统
本专利技术涉及计算机硬件加速领域,特别涉及一种基于FPGA的稀疏度神经网络加速系统及其设计方法。
技术介绍
深度神经网络一种效果良好的方法,广泛应用于多种领域。在图像分类应用中常用的卷积神经网络是深度神经网络的一种变化形式。卷积神经网络模型在发展中尺寸不断增大,从而拥有计算密集与参数存储量大的特点,在很多资源受限的设备中无法部署应用。传统的神经网络剪枝技术在计算特点不同的卷积层与全连接层使用相同的剪枝策略,删除神经网络模型中冗余的神经元与突触连接,以减少计算操作数量与存储空间,最终形成不同稀疏度的神经网络模型,适应不同的硬件资源。神经网络模型使用矩阵的数据结构存储网络参数,原始网络模型的参数矩阵为稠密矩阵,剪枝后的网络模型参数表示为稀疏矩阵,即在参数矩阵中含有大量零值元素,这些零值元素能够在计算和存储中省略,并且不影响最终的预测准确度。同时,大多数神经网络加速器仅考虑处理稠密参数的神经网络模型,在处理稀疏参数的神经网络模型时,对于参数矩阵中的零值元素仍然按照传统的方式存储于计算,并没有从稀疏化中得到相应的性能提升。而近期提出的稀疏神经网络加速器处理该类稀疏网络模型,对稀疏的参数矩阵进行压缩存储,随后对压缩的参数进行计算,该稀疏网络加速器的性能的提升也与网络参数减少的程度不成比例。例如,手写数字识别应用中使用的一个卷积神经网络模型,在原始神经网络模型中,第一个全连接层原始的输入神经元数量为800,输出神经元数量为500,则该层的突触连接数量为100000,使用500QUOTE800矩阵数据结构存储每个突触连接上的权值参数。使用剪枝技术处理该模型,删除权值小于某个阈值的突触连接。在得到的稀疏神经网络模型的该全连接层中,突触连接数量变为8000,剪枝删掉的连接相应位置的权值参数数值设置为零,即,原始的500QUOTE800权值矩阵中相应位置的元素为零值。由于神经网络层进行的计算为乘法与非线性整流函数QUOTE运算,因此乘数为零值的乘法运算后结果为零,零值又在后续的ReLU函数中滤过,因此,权值矩阵中的零值元素对后续的计算结果不产生影响,因此可以不存储并参与后续计算。理论上,在该全连接层,经过剪枝处理后的稀疏参数的存储空间应为原始稠密参数的十分之一,计算性能应为原始稠密参数性能的10倍。但是,使用大多数处理稠密神经网络的加速器时,会将稀疏权值矩阵相应的零值元素仍旧存储并进行乘法运算操作,因此,加速器处理稀疏神经网络的性能与处理稠密神经网络的性能相似,网络参数的存储空间也没有改变。此外,针对传统剪枝技术的稀疏网络专用加速器,会消耗额外空间存储参数索引,消耗额外的时间开销处理压缩参数的计算,也不能达到理想的加速效果。综上所述,不论是稠密神经网络加速器,还是稀疏神经网络加速器,处理传统剪枝技术生成的这类稀疏神经网络时,均不能达到理想性能加速效果。
技术实现思路
本专利技术目的是:有鉴于现有技术的缺陷与不足,本专利技术提出了一种基于新型剪枝技术的神经网络加速器系统(以下简称加速系统),该加速系统针对新型剪枝技术生成的稀疏神经网络,使用软硬件协同的工作方式,对该类稀疏神经网络进行性能加速。本专利技术的技术方案是:一种基于FPGA的稀疏度神经网络加速系统,包括硬件加速器和软件执行程序,所述硬件加速器包括系统控制单元及分别与其连接的剪枝处理单元、权值压缩单元、数据存储单元、数据传输单元、计算处理单元,所述软件执行程序包括分别存储于剪枝处理单元、权值压缩单元内的剪枝处理程序和权值处理程序,软件执行程序对稀疏网络参数矩阵剪枝处理,并进行压缩存储;硬件加速器基于FPGA硬件开发平台,对压缩参数后后续计算过程进行硬件加速。优选的,所述软件执行程序的剪枝处理程序分别使用卷积层剪枝子程序与全连接层剪枝子程序对稠密网络模型进行剪枝操作,删除模型中数值低于特定阈值的神经元或突触连接;所述软件执行程序的权值处理程序用于对剪枝后的稀疏参数矩阵进行压缩存储处理。优选的,所述系统控制单元控制整个系统的执行流程,将神经网络参数进行剪枝、压缩、存储与计算;所述数据存储单元存储剪枝处理后的稀疏参数矩阵与压缩处理后的参数压缩数据结构;所述数据传输单元采用直接内存存取方式将压缩的参数传输至硬件缓存上准备进行后续的计算;计算处理单元进行神经网络应用中的乘法运算、累加运算与激活函数运算。优选的,所述的剪枝处理程序的卷积层剪枝子程序以神经元为单位对神经网络卷积层进行剪枝处理,在卷积层中以特征图为单位。优选的,所述的软件剪枝处理程序的全连接层剪枝子程序以一组权值参数为单位对神经网络全连接层进行剪枝处理;按照计算处理单元的计算能力将全连接层的权值参数进行分组,计算每一个权值组内所有元素的均方根,将均方根小于某一阈值的权值组删除,权值矩阵的相应位置元素将被置为零。优选的,软件剪枝处理程序处理的神经网络模型,卷积层参数扔为稠密形式,为多个卷积核矩阵的数据结构;全连接层参数为稀疏形式,为稀疏参数矩阵的数据结构;所述的权值处理程序对全连接层的稀疏参数矩阵进行压缩存储,使用CSR的稀疏矩阵压缩存储格式。优选的,所述的硬件加速器结构中计算处理单元内部的计算功能结构,包括定点乘法器、累加树、激活函数与非零值滤过器,其中,定点乘法器将全连接层的输入向量与权值数组中非零值进行矩阵乘法运算;累加树将定点乘法器输出的结果通过累加树并行计算;激活函数将累加树输出的求和结果进行激活操作;非零值滤过部件将激活函数值的输出进行滤过,当输出结果为零时不存储,输出结果为非零值存储至输出数据缓存中。优选的,所述硬件加速器中计算处理单元的数量,即系统并行度为p,根据FPGA硬件开发平台上的资源限制情况,确定p的取值。优选的,所述的计算处理单元,在计算时需要对参与计算的数据进行划分,计算后将部分结果进行整合,得到最终的输出结果。优选的,所述的数据划分的方法,在卷积层内,将每个通道上的小尺寸卷积核矩阵组成一个矩阵集合,以卷积核为单位对卷积层的参数进行数据划分,同时尽量避免数据划分带来的数据复制数量;在全连接层内,将权值参数按照原始的行向量进行划分,对每个计算处理单元中的输入向量,只复制相应非零权值对应的输入向量元素,其余的向量不复制。优选的,所述硬件加速器处理稀疏神经网络预测算法的计算流程为,在通用处理器的控制下,通过数据传输控制器将数据存储单元中的输入数据与网络参数数据加载到计算处理单元的缓存结构,其中,卷积层中的计算数据为输入特征图与卷积核矩阵,全连接层的计算数据为输入向量与多个权值数组;再通过计算处理单元中的功能结构进行乘法运算,累加运算,激活函数处理与非零值滤过期处理,得到输出结果存储在缓存结构中;最终,通过数据传输控制器将缓存中的数据返回到数据存储单元中。本专利技术的优点是:本专利技术对使用新型剪枝技术生成的神经网络模型进行优化处理,根据不同类型神经层使用的剪枝方法针对性的处理该层的权值参数,对网络参数进行压缩存储,减少网络模型使用的存储空间。同时,利用利用硬件加速器的性能优势,对压缩后的权值与输入数据利用专门的硬件计算处理单元进行加速处理,减少了剪枝后稀疏神经网络预测算法的执行时间。附图说明下面结合附图及实施例对本专利技术作进一步描述:图1为本专利技术基于FPGA的稀疏度神经本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的稀疏度神经网络加速系统,其特征在于:包括硬件加速器和软件执行程序,所述硬件加速器包括系统控制单元及分别与其连接的剪枝处理单元、权值压缩单元、数据存储单元、数据传输单元、计算处理单元,所述软件执行程序包括分别存储于剪枝处理单元、权值压缩单元内的剪枝处理程序和权值处理程序,软件执行程序对稀疏网络参数矩阵剪枝处理,并进行压缩存储;硬件加速器基于FPGA硬件开发平台,对压缩参数后后续计算过程进行硬件加速。

【技术特征摘要】
1.一种基于FPGA的稀疏度神经网络加速系统,其特征在于:包括硬件加速器和软件执行程序,所述硬件加速器包括系统控制单元及分别与其连接的剪枝处理单元、权值压缩单元、数据存储单元、数据传输单元、计算处理单元,所述软件执行程序包括分别存储于剪枝处理单元、权值压缩单元内的剪枝处理程序和权值处理程序,软件执行程序对稀疏网络参数矩阵剪枝处理,并进行压缩存储;硬件加速器基于FPGA硬件开发平台,对压缩参数后后续计算过程进行硬件加速。2.根据权利要求1所述的基于FPGA的稀疏度神经网络加速系统,其特征在于:所述软件执行程序的剪枝处理程序分别使用卷积层剪枝子程序与全连接层剪枝子程序对稠密网络模型进行剪枝操作,删除模型中数值低于特定阈值的神经元或突触连接;所述软件执行程序的权值处理程序用于对剪枝后的稀疏参数矩阵进行压缩存储处理。3.根据权利要求2所述的基于FPGA的稀疏度神经网络加速系统,其特征在于:所述系统控制单元控制整个系统的执行流程,将神经网络参数进行剪枝、压缩、存储与计算;所述数据存储单元存储剪枝处理后的稀疏参数矩阵与压缩处理后的参数压缩数据结构;所述数据传输单元采用直接内存存取方式将压缩的参数传输至硬件缓存上准备进行后续的计算;计算处理单元进行神经网络应用中的乘法运算、累加运算与激活函数运算。4.根据权利要求2所述的基于FPGA的稀疏度神经网络加速系统,其特征在于:所述的剪枝处理程序的卷积层剪枝子程序以神经元为单位对神经网络卷积层进行剪枝处理,在卷积层中以特征图为单位。5.根据权利要求4所述的基于FPGA的稀疏度神经网络加速系统,其特征在于:所述的软件剪枝处理程序的全连接层剪枝子程序以一组权值参数为单位对神经网络全连接层进行剪枝处理;按照计算处理单元的计算能力将全连接层的权值参数进行分组,计算每一个权值组内所有元素的均方根,将均方根小于某一阈值的权值组删除,权值矩阵的相应位置元素将被置为零。6.根据权利要求5所述的基于FPGA的稀疏度神经网络加速系统,其特征在于:软件剪枝处理程序处理的神经网络模型,卷积层参数扔为稠密形式,为多个卷积核矩阵的数据结构;全连接层参数为稀疏形式,为稀疏参...

【专利技术属性】
技术研发人员:李曦周学海王超鲁云涛宫磊
申请(专利权)人:中国科学技术大学苏州研究院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1