一种基于FPGA的多并行策略卷积网络加速器的制作方法

文档序号:23263250发布日期:2020-12-11 18:52阅读:181来源:国知局
一种基于FPGA的多并行策略卷积网络加速器的制作方法

本发明涉及网络计算领域,具体涉及一种基于fpga的多并行策略卷积网络加速器。



背景技术:

近年来,深度学习大大加速了机器学习和人工智能的发展且在各个研究领域和商业应用都取得了显著的成效。

现场可编程门列阵(fieldprogrammablegatearray,fpga)是深度学习算法嵌入式实现的首选平台之一。fpga功耗低,有一定的并行度,并且fpga专注于解决算法的实时性问题。

fpga加速器可以分为定点型加速器和浮点型加速器。定点型加速器主要针对于卷积计算过程设计并行加速单元,实现高效的卷积计算。浮点型加速器同样也针对于卷积计算过程设计并行加速单元进行计算加速,或通过傅里叶变化,将卷积计算转换为更适合硬件并行实现的过程。浮点型加速器计算效率低于定点型加速器,而定点型加速器常忽略定点网络的精度问题。为了解决精度问题,现有的量化方法更多偏向于软件实现,不考虑fgpa的计算特点,计算复杂度较高,实现效率较低。

针对上述问题,现有办法为提出google(iao),采用全整型(integerarithmeticonly,iao)方法计算表达网络的前向推理过程,既满足fpga平台的计算特点,也保证网络量化后的精度,但存在计算冗余问题。所以,为了满足网络的推理计算速度,提出一种基于fpga的多并行策略卷积网络加速器



技术实现要素:

本发明的目的在于:提供了一种基于fpga的多并行策略卷积网络加速器,组合了三种并行结构:输入并行、像素并行以及输出并行,这三种并行结构能分别任意配置不同的并行度,具备高度的灵活性,可针对不同的目标设备自由组合,实现较高的并行处理效率。

本发明采用的技术方案如下:

本发明是一种基于fpga的多并行策略卷积网络加速器,包括单层网络计算结构,所述单层网络计算结构包括bn层、卷积层、激活层和池化层,这四层网络形成流水线结构,

bn层,对输入的数据进行合并;

卷积层,进行大量的乘法以及加法运算;所述卷积层包括第一层卷积、中间层卷积和最后一层卷积,并且使用输入并行、像素并行以及输出并行中一种或者多种进行卷积运算;

激活层以及池化层,将卷积层的输出结果进行流水计算;

经过池化、激活后的最终结果存到随机存储器ram中。

进一步的,所述输入并行为利用特征模板并行处理n幅输入的特征图,输入特征图按照逐行逐列的顺序进入行缓存中,在每个行缓存的出口处获得特征模板大小的数据;

所述像素并行为同时完成多个连续像素的卷积过程,采用8bit像素策略;

所述输出并行能并行处理n幅输入特征图,相同的输入特征图与n组输出通道的权重计算卷积,得到不同的输出特征。

进一步的,所述特征模板大小设定为3×3。

进一步的,所述第一层卷积处理过程的特征模板大小为3×3,处理rgb图像,使用输入并行实现整个卷积过程;

所述中间层卷积处理过程的特征模板大小为3×3,兼容处理不同的激活、池化过程,使用输入并行、像素并行和输出并行这三种并行组合模式实现卷积过程;

所述最后一层卷积处理过程的特征模板大小为1×1,无需激活、池化过程。

进一步的,所述激活层采用线性整流函数对卷积层输出的结果进行激活处理,所述池化层采用2×2的滑动窗进行池化处理。

进一步的,所述池化处理的步长为1,其每行每列均对应输出像素。

进一步的,所述池化处理的步长为2,其隔行隔列输出一个像素。

综上所述,由于采用了本技术方案,本发明的有益效果是:

1.本发明是一种基于fpga的多并行策略卷积网络加速器,像素并行结构中采用8bit像素策略,降低计算资源的使用,解决计算冗余的问题,提高计算速度。

2.本发明是一种基于fpga的多并行策略卷积网络加速器,包括bn层、卷积层、激活层和池化层,并且卷积层中组合了输入并行、像素并行以及输出并行三种并行结构;这三种并行结构能分别任意配置不同的并行度,具备高度的灵活性,可针对不同的目标设备自由组合,实现较高的并行处理效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,本说明书附图中的各个部件的比例关系不代表实际选材设计时的比例关系,其仅仅为结构或者位置的示意图,其中:

图1是本发明的结构流程图;

图2是输入并行的处理过程图;

图3是像素并行的处理过程图;

图4是输出并行的处理过程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

下面结合附图对本发明作详细说明。

如图1所示,本发明是一种基于fpga的多并行策略卷积网络加速器,包括单层网络计算结构,所述单层网络计算结构包括bn层、卷积层、激活层和池化层,这四层网络形成流水线结构,

bn层,对输入的数据进行合并;

卷积层,进行大量的乘法以及加法运算;所述卷积层包括第一层卷积、中间层卷积和最后一层卷积,并且使用输入并行、像素并行以及输出并行中一种或者多种进行卷积运算;

激活层以及池化层,将卷积层的输出结果进行流水计算;

经过池化、激活后的最终结果存到随机存储器ram中。

实施例一

如图2所示,所述输入并行为利用特征模板并行处理n幅输入的特征图,输入特征图按照逐行逐列的顺序进入行缓存中,每存满一个行缓存时,就把上一行的数据灌入下一个行缓存,随着像素的流动,在每个行缓存的出口处获得特征模板大小的数据;

如图3所示,所述像素并行为同时完成多个连续像素的卷积过程,采用8bit像素策略;顶层接口为32bit输入,利用大小为3×3的特征模板能存储同时进行4个像素卷积过程所需要的输入特征图。

如图4所示,所述输出并行能并行处理n幅输入特征图,相同的输入特征图与n组输出通道的权重计算卷积,得到不同的输出特征。在获取输入特征图的前提下,通过载入不同输入特征图对应的权重完成不同输出特征的计算过程。

具体的,所述特征模板大小设定为3×3。

进一步的,所述第一层卷积处理过程的特征模板大小为3×3,处理rgb图像,使用输入并行实现整个卷积过程;每个周期能同时输入rgb图像的数据。

所述中间层卷积处理过程的特征模板大小为3×3,兼容处理不同的激活、池化过程,使用输入并行、像素并行和输出并行这三种并行组合模式实现卷积过程;

所述最后一层卷积处理过程的特征模板大小为1×1,无需激活、池化过程。

实施例二

本实施例是对本发明的进一步说明。

所述激活层采用线性整流函数对卷积层输出的结果进行激活处理,所述池化层采用2×2的滑动窗进行池化处理。这里的滑动窗也等同于特征模板。

线性整流函数为:

进一步的,所述池化处理的步长为1,其每行每列均对应输出像素。

进一步的,所述池化处理的步长为2,其隔行隔列输出一个像素。

本发明的加速器包括bn(batchnormalization,bn)层、卷积层、激活层和池化层,并且卷积层中组合了输入并行、像素并行以及输出并行三种并行结构;这三种并行结构能分别任意配置不同的并行度,具备高度的灵活性,可针对不同的目标设备自由组合,实现较高的并行处理效率,并且像素并行结构中采用8bit像素策略,降低计算资源的使用,解决计算冗余的问题,提高计算速度。

以上所述,仅为本发明的优选实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1