基于深度卷积神经网络的图像算法加速器及系统和方法

文档序号:192485 发布日期:2021-11-02 浏览:32次 >En<

阅读说明:本技术 基于深度卷积神经网络的图像算法加速器及系统和方法 (Image algorithm accelerator, system and method based on deep convolutional neural network ) 是由 葛云生 丁赟 王坤 丁立 于 2021-08-06 设计创作,主要内容包括:本发明提供基于深度卷积神经网络的图像算法加速器及系统和方法,所述算法加速器包括输入数据缓冲模块、权重数据输入缓冲模块、权重索引输入缓冲模块、与所述输入数据缓冲模块、权重数据输入缓冲模块和权重索引输入缓冲模块通信连接的若干个处理单元、与若干个处理单元通信连接的输出数据缓冲模块;所述输入数据缓冲模块用于输入数据的暂存;所述输出数据缓冲模块用于接收若干个处理单元算法加速处理完成后的数据,暂存将要输出的数据。本发明提供的算法加速器中的处理单元的数据算法,使用了稀疏结构下的Wingorad算法或针对LeNet算法设计实现了基于HLS语言的定点化硬件并行加速器,能够有效提高加速器的计算效率。(The invention provides an image algorithm accelerator based on a deep convolutional neural network, a system and a method thereof, wherein the algorithm accelerator comprises an input data buffer module, a weight data input buffer module, a weight index input buffer module, a plurality of processing units which are in communication connection with the input data buffer module, the weight data input buffer module and the weight index input buffer module, and an output data buffer module which is in communication connection with the processing units; the input data buffer module is used for temporarily storing input data; the output data buffer module is used for receiving the data after the accelerated processing of the algorithms of the processing units is completed and temporarily storing the data to be output. The data algorithm of the processing unit in the algorithm accelerator provided by the invention realizes the fixed-point hardware parallel accelerator based on the HLS language by using the Wingorad algorithm under a sparse structure or aiming at the LeNet algorithm design, and can effectively improve the calculation efficiency of the accelerator.)

基于深度卷积神经网络的图像算法加速器及系统和方法

技术领域

本发明属于计算机数据处理技术领域,具体涉及基于深度卷积神经网络的图像算法加速器及系统和方法。

背景技术

随着日益剧增的海量数据信息的快速增长以及数据挖掘领域应用的广泛,人们已经进入了大数据时代。而在这样快速发展的大数据时代浪潮下,不少问题同样困扰着计算机设计人员。如何高效稳定的存取数据信息以及加快数据挖掘应用的执行已经成为学术界和工业界急需解决的关键问题.其中,机器学习算法作为数据挖掘应用的核心组成部分,吸引了越来越多的研究者的关注,而利用现有的软硬件手段来加速机器学习算法已经成为当下的研究热点。

然而,在大数据时代下加速机器学习算法面临许多新的挑战。在这样的环境下,有很多因素使得越来越多的用户放弃了原有的基于CPU的单节点处理平台而转向利用其它平台和手段来加速数据挖掘/机器学习应用的执行。

目前海量数据处理算法的发展缺陷主要有以下几点:

(1)、海量数据:很多应用领域的潜在的数据规模极其庞大,这使单机处理数据较为困难;

(2)、数据高维度:某些数据挖掘应用中,实例数据的特征数量繁多,机器学习算法为了处理这些数据可能需要对数据特征进行分割;

(3)、模型和算法复杂:一些高精度的机器学习算法通常有着较为复杂的模型表示,并往往需要大量的数据计算;

(4)、推理时间约束:某些数据挖掘应用如语音识别、视觉物体探测等有着实时性的要求,使得单机处理无法满足特定应用的需求;

(5)、多级预测:某些机器学习算法能够表示成多级管道的形式,管道中的多级分类器需要并行工作,而单节点CPU处理平台往往无法满足这一需求。,目前所使用的CPU由于机器学习算法其数据密集型与计算密集型等的特性使得它处理这些问题时的性能较低而且数据处理速度较慢

因此,急需一种能够有效加快图像数据处理速度的图像算法加速器。

发明内容

本发明针对上述缺陷,提供一种有效提高数据重用的效率,并能够明显的加速效果的采用包括有1个输入层、2个卷积层和n个池化层的Wingorad稀疏算法或基于HLS的LeNet算法数据处理单元的基于深度卷积神经网络的图像算法加速器。

本发明提供如下技术方案:基于深度卷积神经网络的图像算法加速器,包括输入数据缓冲模块、权重数据输入缓冲模块、权重索引输入缓冲模块、与所述输入数据缓冲模块、权重数据输入缓冲模块和权重索引输入缓冲模块通信连接的若干个处理单元、与若干个处理单元通信连接的输出数据缓冲模块;

所述输入数据缓冲模块用于输入数据的暂存;

所述输出数据缓冲模块用于接收若干个处理单元算法加速处理完成后的数据,暂存将要输出的数据。

进一步地,所述处理单元包括若干个并行的PE运算单元以及与所述若干个并行的PE运算单元通信连接的累加器;

所述PE运算单元用于接收所述输入数据并对其进行运算,所述运算方法包括Wingorad稀疏算法或基于HLS的LeNet算法,包括有1个输入层、2个卷积层和n个池化层;

所述累加器用于储存所述处理单元内若干个并行PE运算单元计算产生的中间结果。

进一步地,所述Wingorad稀疏算法在所述输入层将从所述输入数据缓冲模块接收到的输入特征图分解为若干个4×4大小的稀疏矩阵,并对所述稀疏矩阵中的非0元素的数据和位置信息进行分别存储,然后分别分配至2个卷积层利用权重数据输入缓冲模块接收到的权重数据对所述稀疏矩阵进行添加稀疏度,再利用所述权重索引输入缓冲模块接收到的索引引导至n个池化成完成稀疏数据结构下的计算,将输出结果逆转换,由Wingorad域转回空间域中,完成计算。

进一步地,所述基于HLS的LeNet算法将从所述输入数据缓冲模块接收到的输入特征图分别转换为具有2个卷积值的2×2像素矩阵,所述像素矩阵为输入特征图的一部分,分别分配至2个卷积层内,每个所述卷积层内根据权重数据输入缓冲模块接收到的权重数据设置n个权重矩阵,并进行点积计算,采用所述权重索引输入缓冲模块接收到的索引引导输送出n个输出特征图至所述池化层内,在所述池化层内使用Array Partition、LoopUnrolling和Loop Pipeline中的一种或几种方法优化优化吞吐率,使用定点运算来优化所述输入特征图的面积,最终n个池化层的输出特征图输入至所述累积器内暂存。

本发明还提供基于深度卷积神经网络的图像算法加速系统,包括顶层控制模块、外部存储器、FIFO存储器和上述的算法加速器,所述顶层控制模块用于控制发送地址、启动所述算法加速器读取所述外部存储器中的数据,并控制缓存模块将输出缓存通过所述FIFO存储器输出至所述外部存储器,完成基于深度卷积神经网络的数据计算;

所述FIFO存储器用于读取所述外部存储器的数据,并向所述输入数据缓冲模块写入所述外部存储器的数据。

进一步地,所述外部存储器为静态随机存储器(SRAM)、动态催记存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)中的一种。

进一步地,所述FIFO存储器为由具有读和写地址指针的双口RAM构成的零导向传输结构存储器。

进一步地,所述FIFO存储器采用AXI4协议。

本发明还提供采用上述系统的基于深度卷积神经网络的图像算法加速方法,包括以下步骤:

S1:根据从所述顶层控制模块获得的指令,向所述算法加速器发送所述外部存储器地址,启动所速算法加速器接收所述FIFO存储器写入的输入数据缓冲模块接收到的图像;

S2:将输入数据划分为若干个子任务文件并生成数据流图,一一对应分配至若干个处理单元;

S3:将所述数据流图根据所述权重数据输入缓冲模块输入的权重数据和所述权重索引输入数据缓冲模块输入的索引进行深度卷积神经网络计算;

S4:将计算结果暂存至累加器,所述累加器传输至所述输出数据缓冲模块,并经所述FIFO存储器输出至所述外部存储器。

本发明的有益效果为:

1、本发明提供的算法加速器中的处理单元的数据算法,使用了稀疏结构下的Wingorad算法来提高加速器的计算效率,同时也提高了加速器中乘法器的利用效率。同时,并通过若干个并行的PE运算模块,尽可能减少运输模块的工作负载。本发明还提供了采用具有权重数据输入缓冲模块、权重索引输入缓冲模块的算法加速器来提高数据重用的效率。

2、本发明提供的算法加速器中的处理单元的数据算法,针对LeNet算法设计实现了基于HLS语言的定点化硬件并行加速器。实验结果表明,基于HLS的深度卷积网络加速器相对于Matlab软件版本算法实现具有明显的加速效果。

3、本发明提供的FIFO存储器采用AXI4协议,处理一些有访存需求和输入和输出通信需求的子模块,使用AXI4接口与多端口存储器控制器通信,由于AXI4协议的高效性,多端口存储器控制器在burst传输模式下能达到较高的带宽利用率,因而支持高性能的流水线的设计,并提高了本申请提供的算法加速器和系统的通用性,具体体现在:1)存储器控制器的端口数目可配置,支持具有不同层数的卷积网络模型的加速器设计;2)AXI4协议在业界被广泛支持,可加入其它设计者的模块或与其他基于AXI4的系统交互;3)加速器的子模块只规定了AXI4接口类型,其可以采用任意的模块内部实现。

附图说明

在下文中将基于实施例并参考附图来对本发明进行更详细的描述。其中:

图1为本发明提供的基于深度卷积神经网络的图像算法加速器的整体示意图;

图2为本发明提供的基于深度卷积神经网络的图像算法加速系统整体示意图;

图3为本发明提供的基于深度卷积神经网络的图像算法加速方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明创造的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明创造的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明创造中的具体含义。

实施例1

如图1所示,本实施例提供基于深度卷积神经网络的图像算法加速器,包括输入数据缓冲模块、权重数据输入缓冲模块、权重索引输入缓冲模块、与输入数据缓冲模块、权重数据输入缓冲模块和权重索引输入缓冲模块通信连接的若干个处理单元、与若干个处理单元通信连接的输出数据缓冲模块;

输入数据缓冲模块用于输入数据的暂存;

输出数据缓冲模块用于接收若干个处理单元算法加速处理完成后的数据,暂存将要输出的数据。

处理单元包括若干个并行的PE运算单元以及与若干个并行的PE运算单元通信连接的累加器;

PE运算单元用于接收输入数据并对其进行运算,本实施例所采用的运算方法为Wingorad稀疏算法或基于HLS的LeNet算法,包括有1个输入层、2个卷积层和n个池化层;

累加器用于储存处理单元内若干个并行PE运算单元计算产生的中间结果。

Wingorad稀疏算法在输入层将从输入数据缓冲模块接收到的输入特征图分解为若干个4×4大小的稀疏矩阵,在数据结构中,数据不再以原先的矩阵形式存储,而是以线性形式将二维矩阵以一维形式存储,并对稀疏矩阵中的非0元素的数据和位置信息进行分别存储,然后分别分配至2个卷积层利用权重数据输入缓冲模块接收到的权重数据对稀疏矩阵进行添加稀疏度,再利用权重索引输入缓冲模块接收到的索引引导至n个池化成完成稀疏数据结构下的计算,将输出结果逆转换,由Wingorad域转回空间域中,完成计算。

本实施例提供的算法加速器,使用了稀疏结构下的Wingorad算法来提高加速器的计算效率,同时也提高了加速器中乘法器的利用效率。同时,并通过若干个并行的PE运算模块,尽可能减少运输模块的工作负载。本发明还提供了采用具有权重数据输入缓冲模块、权重索引输入缓冲模块的算法加速器来提高数据重用的效率。相比传统算法,在相同硬件资源下,本法明提供的算法加速器可以进一步提高4.15倍的计算速率。而在资源利用率上,与其他设计方案相对比,本文方案将乘法器的利用率提高了最多9倍。

实施例2

如图1所示,为本实施例提供的基于深度卷积神经网络的图像算法加速器,包括输入数据缓冲模块、权重数据输入缓冲模块、权重索引输入缓冲模块、与输入数据缓冲模块、权重数据输入缓冲模块和权重索引输入缓冲模块通信连接的若干个处理单元、与若干个处理单元通信连接的输出数据缓冲模块;

输入数据缓冲模块用于输入数据的暂存;

输出数据缓冲模块用于接收若干个处理单元算法加速处理完成后的数据,暂存将要输出的数据。

处理单元包括若干个并行的PE运算单元以及与若干个并行的PE运算单元通信连接的累加器;

PE运算单元用于接收输入数据并对其进行运算,本实施例采用的运算方法为基于HLS的LeNet算法,包括有1个输入层、2个卷积层和n个池化层;

累加器用于储存处理单元内若干个并行PE运算单元计算产生的中间结果。

基于HLS的LeNet算法将从输入数据缓冲模块接收到的输入特征图分别转换为具有2个卷积值的2×2像素矩阵,像素矩阵为输入特征图的一部分,分别分配至2个卷积层内,每个卷积层内根据权重数据输入缓冲模块接收到的权重数据设置n个权重矩阵,并进行点积计算,采用权重索引输入缓冲模块接收到的索引引导输送出n个输出特征图至池化层内,在池化层内使用Array Partition、Loop Unrolling和Loop Pipeline中的一种或几种方法优化优化吞吐率,使用定点运算(11bit)来优化输入特征图的面积,最终n个池化层的输出特征图输入至累积器内暂存。

实施例3

本实施例提供采用实施例1或实施例2提供的算法加速器的基于深度卷积神经网络的图像算法加速系统,包括顶层控制模块、外部存储器、FIFO存储器和实施例1或实施例2提供的算法加速器,顶层控制模块用于控制发送地址、启动算法加速器读取外部存储器中的数据,并控制缓存模块将输出缓存通过FIFO存储器输出至外部存储器,完成基于深度卷积神经网络的数据计算;

FIFO存储器用于读取外部存储器的数据,并向输入数据缓冲模块写入外部存储器的数据。

实施例4

在实施例3的基础上,外部存储器为静态随机存储器(SRAM)、动态催记存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)中的一种。

实施例5

在实施例3的基础上,FIFO存储器为由具有读和写地址指针的双口RAM构成的零导向传输结构存储器。

实施例6

在实施例3的基础上,FIFO存储器采用AXI4协议。

本发明提供的系统通过提供端口数目可配置的多端口存储器控制器,支持具有不同层数的卷积网络模型的加速器设计,并支持基于AXI4协议的第三方模块。利用层间流水技术提出了基于AXI4的算法加速器体系结构并给出了具体的设计实现。实验结果表明,该加速器在资源略微增加的情况下得到了相比于非框架结构的定制加速器1倍的性能提升,同时提高了加速器的可扩展性和可维护可验证性。

实施例7

本实施例提供采用实施例3提供的系统的基于深度卷积神经网络的图像算法加速方法,包括以下步骤:

S1:根据从顶层控制模块获得的指令,向算法加速器发送外部存储器地址,启动所速算法加速器接收FIFO存储器写入的输入数据缓冲模块接收到的图像;

S2:将输入数据划分为若干个子任务文件并生成数据流图,一一对应分配至若干个处理单元;

S3:将数据流图根据权重数据输入缓冲模块输入的权重数据和权重索引输入数据缓冲模块输入的索引进行深度卷积神经网络计算;

S4:将计算结果暂存至累加器,累加器传输至输出数据缓冲模块,并经FIFO存储器输出至外部存储器。

虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:显示设备、显示设备控制方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!