一种加法器、乘法器、卷积层结构、处理器及加速器的制作方法

文档序号:22472460发布日期:2020-10-09 22:06阅读:157来源:国知局
一种加法器、乘法器、卷积层结构、处理器及加速器的制作方法

本发明涉及神经网络技术领域,具体涉及一种加法器、乘法器、卷积层结构、处理器及加速器。



背景技术:

卷积神经网络是深度学习技术领域中最具有代表性的神经网络之一,在图像分析和处理领域取得了众多突破性的进展。在自动驾驶领域中,深度学习广泛应用于目标识别、图像特征提取分类、场景识别等,而卷积神经网络的内部算法运行在功耗受车辆供电制约的计算平台域控制器中,由此,在基于卷积神经网络实现自动驾驶时,存在功耗和算力难以兼并的矛盾。这就要求相应的算法在硬件实现过程中必须具备高能效比,因此,亟需提出一种在不降低算力要求和算法精度的同时不影响车辆的续航能力的硬件设备。



技术实现要素:

有鉴于此,本发明实施例提供了一种加法器、乘法器、卷积层结构、处理器及加速器,以解决现有技术中功耗和算力难以兼并的问题。

根据第一方面,本发明实施例提供了一种基于可编程器件的神经网络加法器,包括:多个门控时钟模块,所述门控时钟模块用于根据接收到的使能信号以及时钟信号执行逻辑与运算并根据运算结果产生门控时钟信号;多个加法器,所述多个加法器按照流水线结构级联,形成多级加法器,每一级加法器分别与对应的门控时钟模块一一连接,上一级加法器的输出端分别与下一级加法器的输入端以及下一级加法器对应的门控时钟模块的使能端连接,使得所述下一级加法器对应的门控时钟模块通过所述使能端接收上一级加法器发送的使能信号,并通过产生的门控时钟信号控制所述下一级加法器根据输入端接收到的数据执行数据更新操作。

可选地,每一个所述加法器包括至少一个多位全加器,所述多位全加器由多个一位全加器串行级联构成,每一个所述一位全加器与对应的寄存器一一连接,用于将计算结果存储至对应的所述寄存器,每一个所述寄存器的时钟端与对应的所述门控时钟模块的输出端连接,用于根据接收到的所述门控时钟信号发送计算结果。

根据第二方面,本发明实施例提供了一种基于可编程器件的神经网络加法器,包括:多个门控时钟模块,所述门控时钟模块用于根据接收到的使能信号以及时钟信号执行逻辑与运算并根据运算结果产生门控时钟信号;多个加法器,所述多个加法器按照流水线结构级联,形成多级加法器,每一级加法器分别与对应的门控时钟模块一一连接,上一级加法器的输出端分别与下一级加法器的输入端以及下一级加法器对应的门控时钟模块的使能端连接,使得所述下一级加法器对应的门控时钟模块通过所述使能端接收上一级加法器发送的使能信号,并通过产生的门控时钟信号控制所述下一级加法器根据输入端接收到的数据执行数据更新操作。

根据第三方面,本发明实施例提供了一种基于可编程器件的神经网络乘法器,包括:第一门控时钟模块,所述第一门控时钟模块用于根据接收到的第一使能信号以及第一时钟信号执行逻辑与运算并根据运算结果产生第一门控时钟信号;复位模块,所述复位模块的时钟端与第一门控时钟模块连接,用于根据接收到的所述第一门控时钟信号执行复位操作;第二门控时钟模块,所述第二门控时钟模块的使能端与所述复位模块的输出端连接,用于接收所述复位模块发送的第二使能信号,根据所述第二使能信号以及第二时钟信号执行逻辑与运算并根据运算结果产生第二门控时钟信号;乘法器,所述乘法器的时钟端与所述第二门控时钟模块连接,所述乘法器的输入端与所述复位模块的输出端连接,用于根据所述时钟端接收到的所述第二门控时钟信号以及所述输入端接收到的数据执行数据更新操作。

根据第四方面,本发明实施例提供了一种基于可编程器件的神经网络卷积层结构,包括:第三门控时钟模块,用于根据接收到的第三使能信号以及第三时钟信号执行逻辑与运算并根据运算结果产生第三门控时钟信号;多个如第四方面所述的基于可编程器件的神经网络乘法器,每一个所述基于可编程器件的神经网络乘法器的时钟端分别与所述第三门控时钟模块的输出端连接,用于根据所述时钟端接收到的所述第三门控时钟信号,对所述输入端接收到的数据执行数据更新操作;多个第四门控时钟模块,所述第四门控时钟模块的使能端分别与对应的所述基于可编程器件的神经网络乘法器的输出端连接,用于接收第四使能信号,根据第四时钟信号以及对应的所述第四使能信号执行逻辑与运算并根据运算结果产生第四门控时钟信号;多个如第三方面所述的基于可编程器件的神经网络加法器,所述基于可编程器件的神经网络加法器的时钟端分别与对应的所述第四门控时钟模块的输出端连接,用于根据接收到的所述第四门控时钟信号执行数据更新操作。

可选地,所述的基于可编程器件的神经网络卷积层结构,还包括:多个数据存储模块,所述数据存储模块包括数据寄存器模块和权重寄存器模块,所述数据存储模块用于存储进行卷积神经网络计算所需的数据以及权重。

可选地,所述的基于可编程器件的神经网络卷积层结构,所述数据存储模块还包括:缓存存储器,所述缓存存储器连接至所述数据寄存器模块和所述权重寄存器模块,用于缓存卷积神经网络计算所需的数据以及权重。

可选地,所述缓存存储器包含4个存储块。

可选地,所述基于可编程器件的神经网络卷积层结构还包括:第五门控时钟模块,所述第五门控时钟模块的使能端与执行数据更新操作的任一加法器的输出端连接,用于接收第五使能信号,根据第五时钟信号以及所述第五使能信号执行逻辑与运算并根据运算结果产生第五门控时钟信号;累加器,所述累加器的时钟端分别与所述第五门控时钟模块的输出端连接,用于根据接收到的所述第五门控时钟信号执行数据更新操作。

根据第五方面,本发明实施例提供了一种基于可编程器件的神经网络处理器,包括:如第五方面及第五方面任一实施方式所述的基于可编程器件的神经网络卷积层结构。

根据第六方面,本发明实施例提供了一种基于可编程器件的神经网络加速器,包括:多个如第五方面所述的基于可编程器件的神经网络处理器。

实施本发明的优点:

1.本实施例提供的基于可编程器件的神经网络加法器,由多个全加器以流水线的级联结构进行连接,且在各个层级之间存在约束关系,后一级全加器的使能信号由前一级控制,仅当前一级完成数据更新,才控制后一级全加器进行数据更新,避免了现有技术中在每一个时钟信号触发时刻都进行一次无用的数据更新,从而降低了耗能。

2.本实施例提供的基于可编程器件的神经网络乘法器,由复位模块、乘法器、第一门控时钟模块、第二门控时钟模块连接组成,复位模块和乘法器之间存在约束关系,用于控制乘法器第二门控时钟信号由复位模块的输出控制,仅当复位模块完成复位,才控制乘法器进行数据更新,避免了现有技术中在每一个时钟信号触发时刻都进行一次无用的数据更新,从而降低了乘法器功耗。

3.本实施例提供的基于可编程器件的神经网络卷积层结构,由基于可编程器件的神经网络乘法器、基于可编程器件的神经网络加法器、第三门控时钟模块、第四门控时钟模块连接组成,基于可编程器件的神经网络乘法器与基于可编程器件的神经网络加法器之间存在约束关系,当基于可编程器件的神经网络乘法器完成数据更新后,才控制基于可编程器件的神经网络加法器进行数据更新,避免了现有技术中在每一个时钟信号触发时刻都进行一次无用的数据更新,从而降低了基于可编程器件的神经网络卷积层结构的功耗。

4.本实施例提供的基于可编程器件的神经网络卷积层结构,包含多个存储块,由多个小存储块共同构成缓存存储器结构,现有技术中,在大多数存储块结构中,使用整个缓存存储器完成数据的读和写,但事实上一半或更小的存储块在读数据和写数据时比使用完整大块存储块功耗更低,本实施例通过存储器分割技术进一步减小了基于可编程器件的神经网络卷积层结构的功耗。

5.本实施例提供的基于可编程器件的神经网络处理器,由于内部的卷积层结构功耗低,使得整个基于可编程器件的神经网络处理器的功耗降低。

6.本实施例提供的基于可编程器件的神经网络加速器,由于包括:多个上述实施例中的基于可编程器件的神经网络处理器,降低了基于可编程器件的神经网络加速器的功耗。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例中基于可编程器件的神经网络加法器的结构图;

图2示出了本发明实施例的基于可编程器件的神经网络加法器的运算流程图;

图3示出了本发明实施例的多位全加器结构图;

图4示出了本发明实施例的基于可编程器件的神经网络加法器的内部连接结构图;

图5示出了本发明实施例的基于可编程器件的神经网络乘法器的结构图;

图6示出了本发明实施例的基于可编程器件的神经网络卷积层结构的结构图;

图7示出了本发明实施例的缓存存储器分割示意图;

图8示出了本发明实施例的基于可编程器件的神经网络处理器的结构示意图;

图9示出了本发明实施例的基于可编程器件的神经网络加速器的结构示意图。

具体实施方式

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

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

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

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

本实施例提供一种基于可编程器件的神经网络加法器,如图1所示,包括:多个门控时钟模块101,所述门控时钟模块101用于根据接收到的使能信号以及时钟信号执行逻辑与运算并根据运算结果产生门控时钟信号;

多个加法器102,所述多个加法器102按照流水线结构级联,形成多级加法器,每一级加法器102分别与对应的门控时钟模块101一一连接,上一级加法器102的输出端分别与下一级加法器102的输入端以及下一级加法器对应的门控时钟模块101的使能端连接,使得所述下一级加法器102对应的门控时钟模块101通过所述使能端接收上一级加法器发送的使能信号,并通过产生的门控时钟信号控制所述下一级加法器102根据输入端接收到的数据执行数据更新操作。

示例性地,门控时钟模块101可以是由锁存器和逻辑与门组成,使能信号作为锁存器输入端的输入信号,时钟信号连接锁存器的时钟端,同时作为逻辑与门的一个输入,门控时钟信号则是逻辑与门将时钟信号以及锁存器的输出信号进行逻辑与运算,得到的输出结果。即当时钟信号处于上升沿,同时使能信号处于高电平时,门控时钟信号为有效信号。使能信号可以是与本实施例中基于可编程器件的神经网络全加器连接的其他器件触发得到,其他器件可以是乘法器、加法器等;时钟信号可以是控制本实施例中基于可编程器件的神经网络全加器进行运算的控制器发送,比如cpu等。

本实施例以16路32位数据进行加法计算为例,加法器运算流程如图2所示,图2中的16路输入对应图1加法器adder0的16路输入in0、in1…in15,加法器adder0中集成8个32位全加器,以此类推,图1中四级加法器102(adder0、adder1、adder2、adder3),分别集成8个32位全加器,4个33位全加器,2个34位全加器,1个35位全加器。本实施例对集成的加法器个数、加法器中集成的全加器个数以及处理位数不做限制,本领域技术人员可以根据需要确定。

多个加法器102按照流水线结构级联,形成多级加法器,上一级加法器102的输出端连接下一级加法器102对应的门控时钟模块101的使能端,下一级加法器对应的门控时钟模块根据使能信号以及时钟信号,生成门控时钟信号,门控时钟信号用于控制对应的全加器中的寄存器进行数据更新。以图1所示的4个加法器为例,加法器adder0、adder1、adder2、adder3分别连接一个门控时钟门控,当adder0完成数据更新,输出结果的同时,向连接在加法器adder1的门控时钟模块输入使能信号,门控时钟模块根据使能信号以及时钟信号,控制加法器adder1进行数据更新,其余加法器adder2、adder3工作过程依次类推。

本实施例提供的基于可编程器件的神经网络加法器,由多个全加器以流水线的级联结构进行连接,且在各个层级之间存在约束关系,后一级全加器的使能信号由前一级控制,仅当前一级完成数据更新,才控制后一级全加器进行数据更新,避免了现有技术中在每一个时钟信号触发时刻都进行一次无用的数据更新,从而降低了耗能。

作为本实施例一种可选的实施方式,如图3所示,每一个加法器包括至少一个多位全加器,多位全加器由多个一位全加器201串行级联构成,每一个一位全加器201与对应的寄存器202一一连接,用于将计算结果存储至对应的所述寄存器202,每一个寄存器202的时钟端与对应的门控时钟模块的输出端连接,用于根据接收到的所述门控时钟信号发送计算结果。

示例性地,本实施例以36个一位全加器102组成36位全加器为例,假设本实施例中的基于可编程器件的神经网络全加器的输入是a[35:0],b[35:0],也即需要将a和b相加,得到相加结果。那么图1中fa0、fa1…fa35分别表示36个一位全加器201,分别计算a、b中36位结果。c表示两位相加的进位,比如c0表示a0+b0的进位,将进位信息传送给更高位的一位全加器201;s表示两位相加之和,比如s0表示a0+b0的和,将相加结果存储在寄存器202中,比如d0存储s0,其中,寄存器202可以是d触发器。需要说明的是,在本实施例中d0-d35存储的分别是s0-s35,d36存储的是最高位的进位信息c35。

存储在寄存器d0-d36中的数据,仅当时钟信号和使能信号同时满足更新条件时,才能控制寄存器d0-d36中的数据更新,以将本次存储的数据输出以及存储下一次加法运算的结果。比如,当且仅当时钟信号处于上升沿且使能信号为处于高电平时,寄存器d0-d36中的数据才将存储的运算结果输出,并存储新的运算结果,对存储数据进行更新。

在加法器102中集成的多位全加器与门控时钟模块101连接的方式如图4所示,由一个门控时钟模块101统一控制同一层级内各个多位全加器中寄存器存储数据的更新。当时钟信号处于上升沿状态且使能信号为高电平时,门控时钟信号为有效信号,同时触发各个全加器,控制多位全加器中寄存器进行数据更新。

本实施例提供的基于可编程器件的神经网络全加器,通过对加法器设置门控时钟模块,通过门控时钟模块控制数据更新,门控时钟模块的加入使得加法器的结果输出并不仅仅取决于时钟信号,还受控于使能信号,仅当使能信号和时钟信号同时满足条件时,加法器才同时输出结果,而不需要在像传统寄存器中每一个时钟信号上升沿就需要对寄存器内容进行不必要的更新,从而降低全加器的无效能量消耗。

本实施例提供一种基于可编程器件的神经网络乘法器,如图5所示,包括:

第一门控时钟模块301,用于根据接收到的第一使能信号以及第一时钟信号执行逻辑与运算并根据运算结果产生第一门控时钟信号;

复位模块302,复位模块的时钟端与第一门控时钟模块连接,用于根据接收到的第一门控时钟信号执行复位操作;

第二门控时钟模块303,第二门控时钟模块的使能端与复位模块的输出端连接,用于接收复位模块发送的第二使能信号,根据第二使能信号以及第二时钟信号执行逻辑与运算并根据运算结果产生第二门控时钟信号;

乘法器304,乘法器的时钟端与第二门控时钟模块连接,乘法器的输入端与所述复位模块的输出端连接,用于根据时钟端接收到的第二门控时钟信号以及输入端接收到的数据执行数据更新操作。

示例性地,第一门控时钟模块301的使能信号可以是与复位模块302连接的其他器件触发得到,其他器件可以是乘法器、加法器、存储器等;时钟信号可以是控制各个器件进行运算的控制器发送,比如cpu等。第二门控时钟模块303的使能端连接复位模块302的输出端,当复位模块302完成复位操作,第二门控时钟模块303的使能端接收到使能信号,第二门控时钟模块303根据使能信号和时钟信号产生第二门控时钟信号,用于控制乘法器304进行数据更新。其中,在本实施例中的乘法器304内部采用32×16位寄存器存储运算结果,在寄存器的时钟端连接门控时钟模块,从而降低寄存器的总动态功耗。

本实施例提供的基于可编程器件的神经网络乘法器,由复位模块、乘法器、第一门控时钟模块、第二门控时钟模块连接组成,复位模块和乘法器之间存在约束关系,用于控制乘法器第二门控时钟信号由复位模块的输出控制,仅当复位模块完成复位,才控制乘法器进行数据更新,避免了现有技术中在每一个时钟信号触发时刻都进行一次无用的数据更新,从而降低了乘法器功耗。

本实施例提供一种基于可编程器件的神经网络卷积层结构,如图6所示,包括:

第三门控时钟模块401,用于根据接收到的第三使能信号以及第三时钟信号执行逻辑与运算并根据运算结果产生第三门控时钟信号;

多个上述实施例中的基于可编程器件的神经网络乘法器402,每一个基于可编程器件的神经网络乘法器的时钟端分别与第三门控时钟模块的输出端连接,用于根据时钟端接收到的第三门控时钟信号,对输入端接收到的数据执行数据更新操作;

多个第四门控时钟模块403,第四门控时钟模块的使能端分别与对应的基于可编程器件的神经网络乘法器的输出端连接,用于接收第四使能信号,根据第四时钟信号以及对应的第四使能信号执行逻辑与运算并根据运算结果产生第四门控时钟信号;

多个如上述实施例所述的基于可编程器件的神经网络加法器404,基于可编程器件的神经网络加法器的时钟端分别与对应的第四门控时钟模块的输出端连接,用于根据接收到的第四门控时钟信号执行数据更新操作。

示例性地,第三门控时钟模块和第四门控时钟模块的时钟信号可以由控制神经网络进行卷积操作的控制器发出,第三使能信号可以由与基于可编程器件的神经网络乘法器402连接的前一器件发出,比如,在基于可编程器件的神经网络乘法器402前连接的是数据存储器,那么当数据存储器输出数据后,向第三门控时钟模块401发送第三使能信号。当第三门控时钟模块401接收到的第三时钟信号处于上升沿且第三使能信号为高电平时,第三门控时钟模块401发出第三门控时钟信号,控制与其连接的所有基于可编程器件的神经网络乘法器402同时进行数据更新。

第四门控时钟模块403的使能端连接在基于可编程器件的神经网络乘法器402的输出端,当基于可编程器件的神经网络乘法器402完成数据更新后,发出有效的第四使能信号给第四门控时钟模块403,第四门控时钟模块403根据第四使能信号以及第四时钟信号发出第四门控时钟信号,激活基于可编程器件的神经网络加法器404进行数据更新。

本实施例提供的基于可编程器件的神经网络卷积层结构,由基于可编程器件的神经网络乘法器、基于可编程器件的神经网络加法器、第三门控时钟模块、第四门控时钟模块连接组成,基于可编程器件的神经网络乘法器与基于可编程器件的神经网络加法器之间存在约束关系,当基于可编程器件的神经网络乘法器完成数据更新后,才控制基于可编程器件的神经网络加法器进行数据更新,避免了现有技术中在每一个时钟信号触发时刻都进行一次无用的数据更新,从而降低了基于可编程器件的神经网络卷积层结构的功耗。

作为本实施例一种可选的实施方式,基于可编程器件的神经网络卷积层结构,还包括:多个数据存储模块,数据存储模块包括数据寄存器模块和权重寄存器模块,数据存储模块用于存储进行卷积神经网络计算所需的数据以及权重。

作为本实施例一种可选的实施方式,如图7所示,上述数据存储模块还包括:缓存存储器,所述缓存存储器连接至数据寄存器模块和权重寄存器模块,用于缓存卷积神经网络计算所需的数据以及权重。

示例性地,由于数据寄存器模块和权重寄存器模块存储容量非常小,在数据送入数据寄存器模块和权重寄存器模块之前,需要通过首先通过存储容量更大的缓存存储器对数据进行缓存,然后将数据输入数据寄存器模块和权重寄存器模块。对于卷积层中的缓存存储器,采用存储器拆分技术进行优化,具体为:通过使用多路选择器和多路复用器技术,将整个缓存存储器分为几个较小的存储器来降低功耗。如图7显示了将512字节的存储块分成4个128字节并通过解码器和多路复用器控制每个128字节的存储块来实现功耗降低的方法。原缓存存储器器的地址address[8:0],高两位address[8:7]用作解码器的译码,译码输出用作四个小存储块的使能信号en0~en3,即当address[8:7]=2’b00时,使能存储块0,即使用存储块0进行存储,当address[8:7]=2’b01时,使能存储块1,当address[8:7]=2’b10时,使能存储块2,当address[8:7]=2’b11时,使能存储块3;低7位address[6:0]用作小存储块的数据地址,即不同小存储块的数据选通由原存储块地址的高两位address[8:7]确定。

本实施例提供的基于可编程器件的神经网络卷积层结构,包含多个存储块,由多个小存储块共同构成寄存器结构,现有技术中,在大多数存储块结构中,采用使用整个缓存存储器完成数据的读和写,但事实上一半或更小的存储块在读数据和写数据时比使用完整大块存储块功耗更低,本实施例通过存储器分割技术进一步减小了基于可编程器件的神经网络卷积层结构的功耗。

作为本实施例一种可选的实施方式,上述缓存存储器包含4个存储块。

示例性地,为了实现这种小的存储块尺寸,需要进行各种初步研究以确定最佳的存储块配置数量和存储块尺寸。理论上,可以将同一缓存存储器分割为数量更多、尺寸更小的存储块,比如8个、16个、32个和64个等,但在实测过程中发现,当存储块分割数目大于4个时,缓存存储器碎片化比较严重,导致数据读写吞吐量急剧下降,从而影响卷积运算性能;当缓存存储器分割数量为2和4时,缓存存储器性能即数据读写吞吐量无明显变化,相比而言缓存存储器分割数量为4时功耗更低,故在本发明实施例中,在不影响卷积运算性能的前提下,将存储器分割成4小块。经实测验证,即使读/写次数相同,执行的读/写操作也只在其中一个小存储块中执行,而不是在全尺寸寄存器中执行,从而减少功耗。

作为本实施例一种可选的实施方式,基于可编程器件的神经网络卷积结构如图6所示,还包括:

第五门控时钟模块405,第五门控时钟模块的使能端与执行数据更新操作的任一加法器的输出端连接,用于接收第五使能信号,根据第五时钟信号以及所述第五使能信号执行逻辑与运算并根据运算结果产生第五门控时钟信号;

累加器406,累加器的时钟端分别与第五门控时钟模块的输出端连接,用于根据接收到的第五门控时钟信号执行数据更新操作。

示例性地,累加器406用于将所有卷积结构中加法器的计算结果进行计算,得到最终的卷积结果。第五时钟信号可以由控制神经网络进行卷积操作的控制器发出,第五使能信号则由任一基于可编程器件的神经网络加法器404发出,当基于可编程器件的神经网络加法器404完成数据更新后,发送有效的第五使能信号给第五门控时钟模块405。累加器406接收第五门控时钟模块405发出的第五门控时钟信号,根据第五门控时钟信号执行相应的数据更新操作。

本实施例提供一种基于可编程器件的神经网络处理器,如图8所示,包括:如上述实施例中任一基于可编程器件的神经网络卷积层结构。

示例性地,基于可编程器件的神经网络处理器除去上述实施例中任一基于可编程器件的神经网络卷积层结构外,还包括relu层以及池化层结构。基于可编程器件的神经网络卷积层结构的输入来源于输入缓冲区,将输入缓冲区的数据进行卷积,将卷积结果输出至relu层,relu层结果输出至池化层,其中,在控制器发出时钟信号以及控制卷积层执行卷积操作。

本实施例提供的基于可编程器件的神经网络处理器,由于内部的卷积层结构功耗低,使得整个基于可编程器件的神经网络处理器的功耗降低。

本实施例提供一种基于可编程器件的神经网络加速器,如图9所示,包括:多个上述实施例中的基于可编程器件的神经网络处理器。

示例性地,基于可编程器件的神经网络加速器包括:状态控制器、dma控制器、输入缓冲区、输出缓冲区、多个上述实施例中的基于可编程器件的神经网络处理器;控制器,与外部中央处理器连接,用于控制多个上述实施例中的基于可编程器件的神经网络处理器进行卷积运算;dma控制器,与外部中央处理器以及外部存储器相连,用于将外部存储器中的数据进行直接存取以及将卷积计算结果发送至所述外部存储器;输入缓冲区,分别与控制器以及dma控制器连接,用于对输入多个上述实施例中的基于可编程器件的神经网络处理器的数据进行缓存;输出缓冲区,分别与多个上述实施例中的基于可编程器件的神经网络处理器以及dma控制器连接,用于缓存基于可编程器件的神经网络处理器输出的数据。

本实施例提供的基于可编程器件的神经网络加速器,由于包括:多个上述实施例中的基于可编程器件的神经网络处理器,降低了基于可编程器件的神经网络加速器的功耗。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

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