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的稀疏神经网络加速系 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。