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

技术编号:37355698 阅读:15 留言:0更新日期:2023-04-27 07:05
本发明专利技术涉一种基于FPGA的神经网络加速方法和系统。该方法包括:获取神经网络模型(11);根据所述神经网络模型的模型参数,从神经网络加速库中选取适用于所述神经网络模型的加速单元(12);将选取的加速单元加载到FPGA加速卡中(13);利用FPGA加速卡执行神经网络加速(14)。神经网络加速库中包括专用神经网络加速单元、通用神经网络加速单元以及神经网络算子加速单元。根据本发明专利技术的方法使得能够实现FPGA神经网络加速单元的快速部署,以便适应不断变化的神经网络模型。化的神经网络模型。化的神经网络模型。

【技术实现步骤摘要】
基于FPGA的神经网络加速方法和系统


[0001]本专利技术涉及计算机应用领域和人工智能算法实现领域,尤其涉及一种基于FPGA的神经网络加速方法和系统。本专利技术特别适于对深度神经网络模型进行加速。

技术介绍

[0002]近年来,随着人工智能和大数据技术的发展,深度神经网络在语音识别、自然语言处理、图像理解、视频分析等领域取得了突破性进展。技术人员在追求更高的神经网络分析精度和准确度的同时,深度神经网络模型的层数和参数数量也在不断增加。与此同时,深度神经网络的应用场景也在不断要求更快的识别速度和分析速度。为了满足应用场景的需求,对硬件计算力、内存带宽和数据存储等要求也越来越高。
[0003]当前深度神经网络加速通常有GPU、FPGA、ASIC、SOC几种方案。其中FPGA是现场可编程逻辑门阵列,它是一种允许被完全或局部重编程的硬件电路,其利用小型查找表来实现组合逻辑。FPGA内有大量的DSP乘法器,可以定制硬件流水线,其具有可编程、高性能、低能耗、高稳定、可并行和高安全性等特点。相比于其他芯片加速方案,FPGA比GPU加速更稳定,性能功耗比更高;相比于ASIC成本更低;相比于SOC加速性能更高。总体而言,FPGA具有低延时、确定性延时、高性能功耗比、灵活可配置的计算精度等优势。
[0004]当前基于FPGA的神经网络加速方案大体分为两类。一类是针对某一神经网络进行FPGA设计开发。由于FPGA设计开发周期较长,通常需要几个月的时间完成设计测试和部署,从而无法适应快速变化的神经网络模型。另一类是FPGA SOC芯片,其部署速度虽然稍快,然而因SOC芯片实现神经网络其调度器基于ARM处理器,其加速性能一般。
[0005]因此,需要提供一种能够快速实现和部署的基于FPGA的神经网络加速方法。

技术实现思路

[0006]有鉴于此,本专利技术提出了一种基于FPGA的神经网络加速方法和系统,其能够解决以上技术问题。
[0007]本专利技术的技术方案如下:
[0008]一种基于FPGA的神经网络加速方法,所述方法包括:
[0009]获取神经网络模型;
[0010]根据所述神经网络模型的模型参数,从神经网络加速库中选取适用于所述神经网络模型的加速单元;
[0011]将选取的加速单元加载到FPGA加速卡中;
[0012]利用FPGA加速卡执行神经网络加速,
[0013]其中,神经网络加速库中包括专用神经网络加速单元、通用神经网络加速单元以及神经网络算子加速单元。
[0014]根据本专利技术优选的实施例,从神经网络加速库中选取适用于所述神经网络模型的加速单元的步骤包括:
[0015]将所述神经网络模型的模型参数与标准神经网络模型的模型参数进行比较,判断所述神经网络模型是否属于标准神经网络模型;
[0016]若所述神经网络模型属于标准神经网络模型,则选取用于标准神经网络模型的专用神经网络加速单元;
[0017]若所述神经网络模型不属于标准神经网络模型但可以通过配置通用神经网络加速单元实现,则选取通用神经网络加速单元;
[0018]若所述神经网络模型不属于标准神经网络模型并且也不能通过配置通用神经网络加速单元实现,则选取神经网络算子加速单元。
[0019]根据本专利技术优选的实施例,所述神经网络加速库包括专用于标准神经网络模型的专用神经网络加速单元,标准神经网络模型包括YOLO V2、YOLO V3、YOLO V4、VGG16、DNN、Darknet、Lenet和LSTM神经网络模型中的一种或多种。
[0020]根据本专利技术优选的实施例,所述专用神经网络加速单元包括专用于标准神经网络的网络专用调度器、网络专用配置表以及网络专用计算单元,所述网络专用计算单元包括专用于标准神经网络的可配置卷积,可配置全连接和可配置非线性函数的组合。
[0021]根据本专利技术优选的实施例,所述网络专用调度器包括网络专用层级调度器和网络专用内存调度器。
[0022]根据本专利技术优选的实施例,所述网络专用配置表包括卷积配置表和全连接配置表。
[0023]根据本专利技术优选的实施例,所述通用神经网络加速单元包括网络通用调度器、网络通用配置表以及网络通用计算单元,所述网络通用计算单元包括可配置卷积和可配置全连接的组合以及可配置非线性函数。
[0024]根据本专利技术优选的实施例,所述网络通用调度器包括网络通用层级调度器和网络通用内存调度器。
[0025]根据本专利技术优选的实施例,所述网络通用配置表包括卷积配置表、全连接配置表以及非线性函数配置表。
[0026]根据本专利技术优选的实施例,所述神经网络算子加速单元包括神经网络算子计算单元,神经网络算子至少包括卷积、池化、全连接、激活函数和Softmax函数算子。
[0027]一种基于FPGA的神经网络加速系统,包括计算机装置和与计算机装置连接的FPGA加速卡,所述计算机装置包括处理器和存储计算机程序的存储介质,当计算机程序被处理器执行时,处理器实现以上描述的方法。
[0028]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上描述的方法。
[0029]由以上技术方案可以看出,本专利技术提出的基于FPGA的神经网络加速方法将基于FPGA的神经网络加速单元分为三种类别并且预先存储在神经网络加速库中。当需要对给定的神经网络模型进行加速时,可以为该神经网络模型选择最适合的加速单元并将其加载到FPGA加速卡中,从而实现FPGA神经网络加速单元的快速部署,以便适应不断变化的神经网络模型。另外,本专利技术的方法能够自动地解析神经网络模型的类型,为标准神经网络模型选择最高性能的加速方案,同时也为非标准神经网络模型提供了高度灵活性的加速方案。
附图说明
[0030]参照附图,本专利技术的公开内容将变得更易理解。本领域技术人员容易理解的是,这些附图仅仅用于举例说明本专利技术的技术方案,而并非意在对本专利技术的保护范围构成限定。图中:
[0031]图1为根据本专利技术实施例的基于FPGA的神经网络加速系统的结构示意图;
[0032]图2为FPGA神经网络加速库的结构示意图;
[0033]图3为根据本专利技术实施例的基于FPGA的神经网络加速方法的流程图;
[0034]图4为专用神经网络加速单元的示例架构图;
[0035]图5为通用神经网络加速单元的示例架构图;
[0036]图6为神经网络算子加速单元的示例架构图;
[0037]图7为YOLO V2神经网络模型的结构示意图。
具体实施方式
[0038]为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。
[0039]图1为根据本专利技术实施例的基于FPGA的神经网络加速系统的结构示意图。如图1所示,基于FPGA的神经网络加速系统包括计算机装置(HOST)以及与计算机装置连接的FPGA加速卡。计算机装置与FPGA加速卡之间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的神经网络加速方法,其特征在于,所述方法包括:获取神经网络模型(11);根据所述神经网络模型的模型参数,从神经网络加速库中选取适用于所述神经网络模型的加速单元(12);将选取的加速单元加载到FPGA加速卡中(13);利用FPGA加速卡执行神经网络加速(14),其中,神经网络加速库中包括专用神经网络加速单元、通用神经网络加速单元以及神经网络算子加速单元。2.根据权利要求1所述的方法,其特征在于,根据所述神经网络模型的模型参数,从神经网络加速库中选取适用于所述神经网络模型的加速单元的步骤(12)包括:将所述神经网络模型的模型参数与标准神经网络模型的模型参数进行比较,判断所述神经网络模型是否属于标准神经网络模型;若所述神经网络模型属于标准神经网络模型,则选取用于标准神经网络模型的专用神经网络加速单元;若所述神经网络模型不属于标准神经网络模型但可以通过配置通用神经网络加速单元实现,则选取通用神经网络加速单元;若所述神经网络模型不属于标准神经网络模型并且也不能通过配置通用神经网络加速单元实现,则选取神经网络算子加速单元。3.根据权利要求1所述的方法,其特征在于,所述神经网络加速库包括专用于标准神经网络模型的专用神经网络加速单元,标准神经网络模型包括YOLO V2、YOLO V3、YOLO V4、VGG16、DNN、Darknet、Lenet和LSTM神经网络模型中的一种或多种。4.根据权利要求3所述的方法,其特征在于,所述专用神经网络加速单元包括专用于标准神经网络的...

【专利技术属性】
技术研发人员:陈永翁正林
申请(专利权)人:杭州加速科技有限公司
类型:发明
国别省市:

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

1