基于FPGA的稀疏神经网络加速系统和设计方法技术方案

技术编号:18445728 阅读:30 留言:0更新日期:2018-07-14 10:42
本发明专利技术公开了基于FPGA的稀疏神经网络加速系统和设计方法,包括稀疏神经网络参数处理结构和预测阶段硬件加速结构,所述的稀疏神经网络参数处理结构,用于稀疏神经网络各层参数的获取和存储;所述的预测阶段硬件加速结构,用于稀疏神经网络预测阶段的计算加速。分析稀疏神经网络的关键计算,对系统平台做出软硬件划分,形成系统整体框架;利用通用深度学习框架提取和存储稀疏神经网络结构的参数;根据预测阶段关键计算的特征和访存特征,设计硬件加速器整体框架,实现计算逻辑IP核;根据平台硬件资源情况,确定固化IP核数量,均衡计算负载;移植操作系统完成软硬件的协同工作。本发明专利技术在有限的计算资源和存储资源的条件下,达到高性能和低功耗的要求。

Sparse neural network acceleration system and design method based on FPGA

The present invention discloses a sparse neural network acceleration system and design method based on FPGA, including the sparse neural network parameter processing structure and the prediction phase hardware acceleration structure. The sparse neural network parameter processing structure is used for the acquisition and storage of the parameters of each layer of the sparse neural network, and the hardware acceleration junction of the prediction stage. The algorithm is used to accelerate computation in the prediction stage of sparse neural network. The key calculation of the sparse neural network is analyzed. The system platform is divided into hardware and software, and the whole framework of the system is formed. The parameters of the sparse neural network are extracted and stored by the universal deep learning framework. According to the characteristics and memory characteristics of the key calculation in the prediction stage, the overall frame of the hard component accelerator is designed to realize the computation logic. Compile IP core; according to the hardware resources of the platform, determine the number of solidified IP cores, balance the load calculation; transplant the operating system to complete the collaboration of hardware and software. The invention achieves high performance and low power consumption under the condition of limited computing resources and storage resources.

【技术实现步骤摘要】
基于FPGA的稀疏神经网络加速系统和设计方法
本专利技术涉及算法的硬件加速器领域,具体地涉及一种针对稀疏神经网络的FPGA加速系统设计和方法。
技术介绍
近年来,随着神经网络(NN)算法广泛应用于图像处理,语音识别,自然语言处理等多个领域,对神经网络进行硬件加速,相比CPU和GPU有更好的能效。由于对准确度要求的提升,神经网络的层数和参数规模增大,产生大量冗余计算。在保证准确度的同时,使用剔除小权值参数,重新训练等多种方法的稀疏化的神经网络,减少神经网络结构对存储空间与计算资源的要求,有更加广泛的应用前景。稀疏型神经网络与传统神经网络相比,其计算形式由规则的密集型矩阵的操作,变为对不规则的稀疏型矩阵进行操作,处理稀疏矩阵的两类方法,一是对稀疏矩阵填充零值元素,转换为规则矩阵进行操作,增加了额外的存储空间和无效计算;二是对稀疏矩阵进行压缩存储,并对由此对后续计算引起的访存数量增加等影响进行优化。针对稀疏神经网络参数存储和计算特点实现稀疏神经网络硬件加速器,对于硬件加速平台的选择,常用有GPU,FPGA和ASIC三种。对比三种实现方式,FPGA相比GPU与ASIC,硬件结构能够针对专门的设计需求配置调整,开发周期短,单次开发成本低,难度较小,是对稀疏神经网络硬件加速结构进行研究的理想平台。
技术实现思路
有鉴于此,本专利技术目的是:提供了一种基于FPGA的稀疏神经网络加速系统及其设计方法,能够针对稀疏型的神经网络预测阶段的计算加速,对比通用处理器和传统基于FPGA的硬件加速器达到更好性能和更低功耗的要求。本专利技术的技术方案是:一种基于FPGA的稀疏神经网络加速系统设计方法,包括以下步骤:S01:通过分析稀疏神经网络的关键计算,对系统平台做出软硬件划分,形成系统软硬件协同工作的整体框架;S02:利用通用深度学习框架提取和存储稀疏神经网络结构的各层参数;S03:根据预测阶段关键计算的特征和访存特征,设计硬件加速器整体框架,实现处理单元IP核;S04:根据硬件资源和带宽情况,确定处理单元数量,均衡划分计算任务;S05:将操作系统烧写到控制端,编写硬件加速器设备驱动及调用接口。优选技术方案中,所述S01分析稀疏神经网络训练阶段和预测阶段,其中训练阶段关键计算为求导操作,采用通用深度学习框架处理,以达到快速准确的效果,预测阶段关键计算为卷积操作和矩阵乘法操作,用于硬件加速。优选技术方案中,所述S02包括以下步骤:针对常用的稀疏神经网络中计算密集型结构卷积层和存储密集型结构全连接层,比较二者的计算方式,基于提高数据复用,减少访存次数的原则,确定统一的计算参数表示方式;通过统计每层中权值矩阵的稀疏度,比较稀疏矩阵常用压缩存储格式的数据量大小和稳定程度,选取参数压缩存储使用格式,所述的稀疏度=非零权值数量/全部权值数量。优选技术方案中,为增大数据的复用程度,减少数据的复制,降低访存次数,选择将全连接层的输入向量和权值向量分别映射为全连接层的输入特征图和卷积核矩阵。优选技术方案中,稀疏矩阵压缩存储格式采用压缩稀疏行/列方式,即CSR/CSC。优选技术方案中,所述S03分为以下步骤:针对预测阶段的计算流程设计硬件加速器整体架构,多层复用处理单元迭代计算,包括数据传输模块,计算处理模块,数据缓存模块;数据传输模块使用DMA流式读入和写回;计算处理模块包括多个处理单元,多个矩阵定点乘法器和二叉树累加器;缓存模块包括三个缓存结构,分别暂存计算所需输入,权值和输出中间结果。优选技术方案中,所述S04分为以下步骤:充分利用FPGA硬件资源DSP,BRAM和LUT数量,以及带宽情况,确定处理单元数量和缓存大小;根据输入特征图矩阵与卷积矩阵稀疏度,在每一次迭代计算时均衡处理单元间计算任务。优选技术方案中,处理单元的计算任务划分方案采取在每一次迭代计算前,静态划分的方式;所述的静态划分方式,统计卷积核矩阵中非零值数量,按照计算单元缓存卷积核稀疏度近似的原则,整合并划分多个卷积核矩阵;统计输入特征图矩阵中非零值数量,按照计算单元中输入特征图矩阵稀疏度近似的原则,对特征图矩阵进行行列划分;整合并划分多个卷积核,保证每个硬件处理单元计算量近似;在神经网络算法图像处理应用中,在每层输出结果,引入新的零值,在每次复用计算单元迭代计算前,重新进行计算任务划分。优选技术方案中,所述S05包括以下步骤:在CPU控制端运行Linux系统,采用字符设备框架为硬件加速器模块编写设备驱动程序,同时方便后续使用,完成调用接口函数;其中,在DMA驱动程序中采用内存映射的方式进行数据的填充,将虚拟地址空间中的内核空间某段地址映射到用户空间中,减少数据的搬运操作。本专利技术又公开了一种基于FPGA的用于稀疏神经网络的加速系统,其特征在于,系统包括通用处理器、现场可编程门阵列以及存储器,包括:CPU通用处理器,运行操作系统,对计算参数进行压缩处理,控制硬件加速器的运行。DDR存储器,分别存储稀疏神经网络参数,输入特征图数据以及加速器回传结果。FPGA硬件加速器包括,数据传输模块,通过DMA进行数据的流式传输,进行数据读取与写回;计算处理模块,采用与划分计算量相等的矩阵定点乘法器,通过二叉树累加器累加中间结果;数据缓存模块,存储计算所需的输入特征图矩阵,卷积核矩阵与输出结果数据。优选技术方案中,所述处理硬件加速结构的控制器为通用处理器,通过控制总线控制计算处理单元的数据读取和写回,同时通过任务划分策略均衡计算任务的分配。优选技术方案中,所述计算所需卷积核数据与输入特征图数据压缩存储DDR中,通过DMA与硬件加速器进行数据传输,同时存储硬件加速器计算的回传结果。优选技术方案中,所述预测阶段计算模块通过将DMA读入的权值数据和输入数据在片上进行缓存,其中输入缓存与输出缓存交替使用的方式,在计算的同时读入下一次迭代所需的数据,形成流水化操作。设计乘法器的大小与任务分配量相等,使用二叉树累加器进行中间结果的归约操作降低算法时间复杂度,将输出数据进行缓存,缓存区满后一次性写回,降低访存的数量和数据传输延迟。与现有技术相比,本专利技术的优点是:本专利技术可以有效的加速稀疏神经网络的预测过程,针对稀疏神经网络的权值参数不规则计算和访存特点,采用软硬件协同工作方式,相对通用处理器和原有的FPGA神经网络加速器有更高的性能和更低的功耗。附图说明下面结合附图及实施例对本专利技术作进一步描述:图1为本专利技术实施例的基于FPGA的稀疏神经网络算法加速系统设计方法100的流程图;图2是稀疏神经网络模型的算法阶段示意图,对输入数据集的处理分为训练阶段和预测阶段;图3是本专利技术实例稀疏神经网络加速系统软硬件协同框架图;图4是基于FPGA的稀疏神经网络加速系统总体架构图;图5(a)是卷积层的计算示意图,(b)是全连接层的计算示意图;图6是全连接层参数到卷积层参数的映射;图7是稀疏矩阵的压缩稀疏矩阵行/列格式示意图;图8是本专利技术实例稀疏神经网络FPGA加速器计算处理单元结构图;图9是本专利技术实例稀疏神经网络加速FPGA加速器数据缓存结构图,使用BRAM缓存计算硬件加速器计算所需数据;图10是本专利技术实例稀疏神经网络FPGA加速器DMA数据传输示意图;图11为本专利技术实例稀疏神经网络预测阶段计算FPGA加速的计算流程图;图12是稀疏神经本文档来自技高网...

【技术保护点】
1.一种基于FPGA的稀疏神经网络加速系统,其特征在于,包括:CPU,运行操作系统,对稀疏神经网络结构每层参数进行的压缩处理,对FPGA硬件加速器进行控制;DDR,用于存储稀疏神经网络参数,输入数据和加速器计算结果;FPGA硬件加速器,包括预测阶段计算的硬件处理模块和中间结果数据缓存模块。

【技术特征摘要】
1.一种基于FPGA的稀疏神经网络加速系统,其特征在于,包括:CPU,运行操作系统,对稀疏神经网络结构每层参数进行的压缩处理,对FPGA硬件加速器进行控制;DDR,用于存储稀疏神经网络参数,输入数据和加速器计算结果;FPGA硬件加速器,包括预测阶段计算的硬件处理模块和中间结果数据缓存模块。2.根据权利1所述的基于FPGA的稀疏神经网络加速系统,其特征在于,CPU完成稀疏神经网络参数的处理,包括对卷积层和全连接层参数使用统一的表示方法,神经网络中关键计算使用通用的矩阵乘法处理单元;对参数的矩阵表示使用稀疏矩阵压缩存储格式存储,减少参数对内存资源的要求。3.根据权利1所述的基于FPGA的稀疏神经网络加速系统,其特征在于,CPU作为系统的控制器,通过总线接口与硬件加速器进行通信,控制参数数据和计算结果在DDR与FPGA硬件加速器间的传输,各处理单元间的计算任务分配,读取各单元的工作状态。4.根据权利1所述的基于FPGA平台的稀疏神经网络加速系统,其特征在于,FPGA加速器结构包括数据传输模块,数据缓存模块和计算处理模块,其中:数据传输模块,使用AXIDMA流式的传输预测阶段所需的权值数据和输入数据,实现数据的读入和写回;数据缓存模块,使用BRAM作为数据缓存,包括权值缓存,输入缓存和输出缓存,分别存储任务划分后的权值数据,输入数据以及计算累加结果的中间数据,采用输入与输出数据缓存交替使用的方式,预先读入下一轮计算所需数据;计算处理模块,作为加速结构的核心单元,用于预测阶段关键计算的加速单元,采用与划分计算任务数相等的定点乘法器,采用二叉树累加器的方式累加中间的计算结果,降低时间复杂度。5.一种基于FPGA的稀疏神经网络加速系统设计方法,其特征在于,包括以下步骤:S01:通过分析稀疏神经网络的关键计算,对系统平台做出软硬件划分,形成系统软硬件协同工作的整体框架;S02:利用通用深度学习框架提取和存储稀疏神经网络结构的各层参数;S03:根据预测阶段关键计算的特征和访存特征,设计硬件加速器整体框架,实现处理单元IP核;S04:根据硬件资源和带宽情况,确定处理单元数量,均衡划分计算任务;S05:将操作系统烧写到控制端,编写硬件加速器设备驱动及调用接口。6.根据权利要求5所述基于FPGA的稀疏神经网络加速系统设计方法,其特征在于,所述S01分析稀疏神经网络训练阶段和预测阶段,其中训练阶段关键计算为求导操作,采用通用深度学习框架处理,以达到快速准确的效果,预测阶段关键计算为卷积操作和矩阵乘法操作,用于硬件加速。7.根据权利要求5所述基于FPGA的稀疏神经网络加速系统设计方法,其特征在于,所述S02包括...

【专利技术属性】
技术研发人员:周学海李曦王超陈香兰
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

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

1