CN113869507B - 一种基于脉动阵列的神经网络加速器卷积计算装置与方法 - Google Patents

一种基于脉动阵列的神经网络加速器卷积计算装置与方法 Download PDF

Info

Publication number
CN113869507B
CN113869507B CN202111456203.8A CN202111456203A CN113869507B CN 113869507 B CN113869507 B CN 113869507B CN 202111456203 A CN202111456203 A CN 202111456203A CN 113869507 B CN113869507 B CN 113869507B
Authority
CN
China
Prior art keywords
weight
input interface
characteristic diagram
data
output interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111456203.8A
Other languages
English (en)
Other versions
CN113869507A (zh
Inventor
杨方超
胡有能
朱国权
凡军海
陆启明
金孝飞
孙世春
章明
何煜坤
潘鑫
马德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Zhejiang Lab
Original Assignee
Zhejiang University ZJU
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU, Zhejiang Lab filed Critical Zhejiang University ZJU
Priority to CN202111456203.8A priority Critical patent/CN113869507B/zh
Publication of CN113869507A publication Critical patent/CN113869507A/zh
Application granted granted Critical
Publication of CN113869507B publication Critical patent/CN113869507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于脉动阵列的神经网络加速器卷积计算装置与方法,该装置的结构由64×64个同构的PE单元构成,组成脉动阵列的形式,包括多个权重输入通道,数据输入通道以及相应的数据(权重)选通有效信号。脉动阵列首行使能开始后,使能信号开始有效,所有数据计算完毕后,使能信号关闭。脉动阵列中权重数据由上往下传递,每个PE单元的计算结果和权重有效信号经过一级寄存器后输入到同一列的下一个PE单元中参与计算。脉动阵列中特征图数据和数据有效信号从左往右传递,经过一级寄存器后输入到一行的下一个PE单元中参与计算。

Description

一种基于脉动阵列的神经网络加速器卷积计算装置与方法
技术领域
本发明涉及计算机技术领域,尤其是涉及一种基于脉动阵列的神经网络加速器卷积计算方法。
背景技术
随着人工智能的迅速发展,神经网络逐渐变得更深更宽,包含大量的网络层,每一个网络层都存在权重数据和特征图数据之间的卷积操作。再进行卷积操作时,一般会将卷积操作转化成矩阵乘法,而权重数据和特征图数据中包含大量的数据,因此计算量呈现爆炸式增长。
按照传统的计算系统的模型,提前从memory中读取卷积需要的输入特征图和卷积核权重,进行运算完毕后再将结果写回存储器,继续下一批输入特征图和权重。这种方法简单直接容易计算,但是随着网络深度的增加,其计算时间过长,从而效率偏低,网络的实时性变差。此外,传统方法会占用过多的片上资源,导致芯片的面积增大。
发明内容
为解决现有技术的不足,实现提升数据吞吐率、提高扩展性及简化数据控制的目的,本发明采用如下的技术方案:
一种基于脉动阵列的神经网络加速器卷积计算装置,包括PE基本运算单元排布而成的脉动阵列,所述脉动阵列最后一行为ACC累加模块,用于存储最终卷积运算结果,所述PE基本运算单元包括权重信息输入接口、特征图信息输入接口、上级PE基本运算单元运算结果输入接口(sum_in)、乘法器、加法器、权重信息输出接口、特征图信息输出接口和运算结果输出接口(sum_out),第一行PE基本运算单元的权重信息输入接口用于获取卷积核权重,第一列PE基本运算单元的特征图信息输入接口用于获取特征图数据,单个PE基本运算单元内,权重信息输入接口与权重信息输出接口连接,特征图信息输入接口与特征图信息输出接口连接,乘法器分别与权重信息输入接口、特征图信息输入接口和加法器连接,将权重数据与特征图数据相乘的结果作为加法器的输入,加法器分别与上级PE基本运算单元运算结果输入接口(sum_in)和运算结果输出接口(sum_out)连接,将上级PE基本运算单元运算结果与乘法器的输出累加后输出,PE基本运算单元的权重信息输出接口和运算结果输出接口,分别与同一列下一行的PE基本运算单元的权重信息输入接口、上级PE基本运算单元运算结果输入接口(sum_in)连接,PE基本运算单元的特征图信息输出接口与同一行下一列的PE基本运算单元的特征图信息输入接口连接,每一列的两个相邻PE基本运算单元及每一行的两个相邻PE基本运算单元之间,通过寄存器连接,寄存器在时钟信号的控制下,进行数据的存储和传递,最后一行PE基本运算单元的运算结果输出接口(sum_out)与其对应的ACC累加模块连接。
进一步地,所述权重信息输入接口包括权重输入接口(weight_in)、权重有效信号输入接口(weight_valid_in),所述特征图信息输入接口包括特征图数据输入接口(data_in)、特征图数据有效信号输入接口(data_valid_in),所述权重信息输出接口包括权重输出接口(weight_out)、权重有效信号寄存输出接口(weight_valid_in_reg),所述特征图信息输出接口包括特征图数据寄存输出接口(data_in_reg)、特征图数据有效信号寄存输出接口(data_valid_in_reg),权重输入接口(weight_in)分别与权重输出接口(weight_out)和乘法器连接,权重有效信号输入接口(weight_valid_in)分别与权重有效信号寄存输出接口(weight_valid_in_reg)和乘法器连接,特征图数据输入接口(data_in)分别与特征图数据寄存输出接口(data_in_reg)和乘法器连接,特征图数据有效信号输入接口(data_valid_in)分别与特征图数据有效信号寄存输出接口(data_valid_in_reg)和乘法器连接。
进一步地,所述PE基本运算单元包括权重寄存器(weight_in_REG)、权重有效信号寄存器(weight_valid_in_REG)、特征图数据寄存器(data_in_REG)、特征图数据有效信号寄存器(data_valid_in_REG)和上级PE基本运算单元运算结果寄存器(sum_in_REG),权重寄存器(weight_in_REG)分别与权重输入接口(weight_in)、权重有效信号输入接口(weight_valid_in)和乘法器连接,权重有效信号寄存器(weight_valid_in_REG)分别与权重有效信号输入接口(weight_valid_in)和权重有效信号寄存输出接口(weight_valid_in_reg)连接,特征图数据寄存器(data_in_REG)分别与特征图数据输入接口(data_in)、特征图数据有效信号输入接口(data_valid_in)和乘法器连接,特征图数据有效信号寄存器(data_valid_in_REG)分别与特征图数据有效信号输入接口(data_valid_in)和特征图数据有效信号寄存输出接口(data_valid_in_reg)连接,上级PE基本运算单元运算结果寄存器(sum_in_REG)分别与上级PE基本运算单元运算结果输入接口(sum_in)和运算结果输出接口(sum_out)连接。
进一步地,所述脉动阵列为X×X个PE基本运算单元构成的阵列。
进一步地,所述ACC累加模块,包括上级PE基本运算单元计算结果输入接口(su_dout)、累加完成信号输入接口(ACC_done)、累加使能信号输入接口(ACC_en)、读写地址信号输入接口(wr/rd/addr)、累加结果输出接口(acc_dout)、累加器、第一Mux多路选择器、第二Mux多路选择器和Buff缓存器,上级PE基本运算单元计算结果输入接口(su_dout)通过累加器与第一Mux多路选择器连接,第一Mux多路选择器分别与累加完成信号输入接口(ACC_done)、第二Mux多路选择器和Buff缓存器连接,第二Mux多路选择器分别与上级PE基本运算单元计算结果输入接口(su_dout)、累加使能信号输入接口(ACC_en)和累加结果输出接口(acc_dout)连接,Buff缓存器分别与累加器和读写地址信号输入接口(wr/rd/addr)连接;
所述上级PE基本运算单元计算结果输入接口(su_dout),用于获取每一列PE基本运算单元的计算结果;
所述累加使能信号输入接口(ACC_en),用于控制ACC累加模块进行累加操作或将计算结果直接输出;
所述累加完成信号输入接口(ACC_done),用于停止累加操作,并通过累加结果输出接口(acc_dout)将累加结果输出;
所述读写地址信号输入接口(wr/rd/addr),根据获取的输出地址,将数据写到Buff缓存器中。
一种基于脉动阵列的神经网络加速器卷积计算方法,包括如下步骤:
S1,获取权重信息和特征图信息;
S2,在权重有效信号和特征图数据有效信号的控制下,将权重信息和特征图信息,通过权重输入通道和特征图输入通道,依次打拍广播到脉动阵列中;
S3,PE基本运算单元对输入的权重信息和特征图信息进行乘累加操作,包括如下步骤:
S31,第一行第一列的PE基本运算单元,将获取的权重信息打一拍后,输出到同一列下一行的PE基本运算单元的权重信息输入接口;将获取的特征图信息打一拍后,输出到同一行下一列的PE基本运算单元的特征图信息输入接口;将获取的权重信息和特征图信息进行相乘后,通过运算结果输出接口(sum_out),输出到同一列下一行的PE基本运算单元的上级PE基本运算单元运算结果输入接口(sum_in);
S32,其余PE基本运算单元,依次打拍传递权重信息和特征图信息的同时,将获取的权重信息和特征图信息进行相乘,并将上级PE基本运算单元运算结果输入接口(sum_in)获取的运算结果与相乘的运算结果相加,通过运算结果输出接口(sum_out),输出到同一列下一行PE基本运算单元的上级PE基本运算单元运算结果输入接口(sum_in);
S33,最后一行的PE基本运算单元,将乘累加运算结果,通过运算结果输出接口(sum_out),输出到ACC累加模块;
S4,ACC累加模块根据累加控制信号,输出卷积的最终运算结果。
进一步地,所述权重信息输入接口包括权重输入接口(weight_in)、权重有效信号输入接口(weight_valid_in),权重信息输出接口包括权重输出接口(weight_out)、权重有效信号寄存输出接口(weight_valid_in_reg),特征图信息输入接口包括特征图数据输入接口(data_in)、特征图数据有效信号输入接口(data_valid_in),特征图信息输出接口包括特征图数据寄存输出接口(data_in_reg)、特征图数据有效信号寄存输出接口(data_valid_in_reg);
所述权重输入接口(weight_in)用于输入权重数据,通过权重输出接口(weight_out)输出到同一列下一行的PE基本运算单元;
所述权重有效信号输入接口(weight_valid_in)用于选通PE基本运算单元的权重信号,同时将其输入权重有效信号寄存器(weight_valid_in_REG)打一拍后,通过权重有效信号寄存输出接口(weight_valid_in_reg),输出到同一列下一行PE基本运算单元;
所述特征图输入接口(data_in)用于输入特征图数据,同时将其输入特征图数据寄存器(data_in_REG)打一拍后,通过特征图数据寄存输出接口(data_in_reg),输出到同一行下一列的PE基本运算单元;便于于下一行的计算结果进行相加,因为下一行输入延迟了一个时钟周期;
所述特征图数据有效信号输入接口(data_valid_in)用于选通PE基本运算单元的有效特征图数据,同时将其输入特征图数据有效信号寄存器(data_valid_in_REG)打一拍后,通过特征图数据有效信号寄存输出接口(data_valid_in_reg),输出到同一行下一列的PE基本运算单元。
进一步地,所述S1中,获取权重核矩阵和特征图数据矩阵,权重核矩阵包括一组权重信息,特征图矩阵包括一组特征图子集的特征图信息,依次输入脉动阵列。
进一步地,所述S4中的ACC累加模块,根据累加使能信号,将每一列PE阵列的计算结果,执行输出操作或缓存等待下一个脉动阵列计算结果。
进一步地,所述ACC累加模块,获取上级PE基本运算单元计算结果输入信号,并根据收到的累加使能信号,对计算结果进行累加或直接输出,累加结果根据收到的输出地址保存在缓存中,供下一次累加计算,当接收到累加完成信号时,停止累加操作,并输出累加结果。
本发明的优势和有益效果在于:
本发明的一种基于脉动阵列的神经网络加速器卷积计算方法,通过多次重用输入的特征图数据和权重数据,在消耗较小memory带宽的情况下,实现较高吞吐率的目的,此外,通过模块化的设计,更容易扩展,时序和数据流动过程控制更为简单。
附图说明
图1为本发明中数据的结构示意图。
图2为本发明中PE基本运算单元的结构示意图。
图3为本发明中ACC累加模块的结构示意图。
图4为本发明方法中数据处理的工作流程示意图。
图5a为本发明方法中第一次脉动阵列执行的数据流示意图。
图5b为本发明方法中第二次脉动阵列执行的数据流示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
为了解决神经网络中卷积计算的计算时间过长,效率偏低,网络的实时性差,以及占用过多的片上资源的问题,本申请通过以下实施例公开了一种基于脉动阵列的神经网络加速器卷积计算方法,如图1所示,包括:
由64×64个PE(Processing Element)基本运算单元排布而成的脉动阵列,其中,若输入特征图数据或卷积核权重数据大于64,则通过多次计算求和即可得到最终计算结果。整个脉动阵列有一个总使能信号,用于降低功耗。在脉动阵列中,每一列的两个相邻PE单元以及每一行的两个相邻PE单元之间通过寄存器连接,寄存器在时钟信号的控制下,进行数据的存储和传递。
多个权重输入通道,单个权重输入通道将相应的权重数据输入到脉动阵列的第一行的PE基本单元,随后权重自上而下流动,将权重数据(权重数据1,权重数据2,权重数据3、…、权重数据64)输入到每一个PE基本运算单元中。
多个数据输入通道,单个数据输入通道将相应的特征图数据输入到脉动阵列的第一列的PE基本单元,随后特征图数据从左向右流动,将特征图数据(特征图数据1、特征图数据2、…、特征图数据64)输入到每一个PE基本运算单元中。
这种脉动阵列的结构多次重用了输入数据,因此它可以在消耗较小的memory带宽的情况下实现高效的运算吞吐率,解决整个系统的处理能力受限于访问存储器速度的问题。
如图2所示,PE基本单元在控制信号的作用下,对接收到的权重数据以及特征图数据执行乘累加运算。每一个PE基本运算单元包括一个权重输入接口(weight_in)、一个权重有效信号输入接口(weight_valid_in)、一个特征图数据输入接口(data_in)、一个特征图数据有效信号输入接口(data_valid_in)、一个上级PE单元运算结果输入接口(sum_in)、一个权重输出接口(weight_out)、一个权重有效信号寄存输出接口(weight_valid_in_reg)、一个运算结果输出接口(sum_out)、一个特征图数据寄存输出接口(data_in_reg)、一个特征图数据有效信号寄存输出接口(data_valid_in_reg)。
其中权重输入接口(weight_in)用于输入每一层卷积层的卷积核权重数据到单个PE单元,同时将其(weight_out)输出到同一列下一行的PE单元;权重有效信号输入接口(weight_valid_in)用于选通每一个PE基本运算单元的权重信号,同时将其输入寄存器打一拍后(weight_valid_in_reg)输出到同一列下一行的PE单元;特征图数据输入接口(data_in)用于输入每一层的特征图数据,同时将其输入寄存器打一拍后(data_in_reg)输出到同一行下一列的PE单元;特征图数据有效信号输入接口(data_valid_in)用于选通有效的特征图数据,同时将其输入寄存器打一拍后(data_valid_in_reg)输出到同一行下一列的PE单元;上级PE单元运算结果输入接口(sum_in)用于将上一级PE单元乘累加的结果输入到本级PE中继续进行运算,最后将新的累加结果(sum_out)输出给同一列下一行的PE单元;
脉动阵列中的最后一行的行缓存器,用来存储最终的卷积运算结果,然后根据累加使能信号来执行结果输出操作或等待下一个脉动阵列计算结果;
如图2所示,每一个PE基本单元包括有一个乘法器、一个加法器以及多个数据寄存器。
其中,乘法器的输入端分别接至权重寄存后的输入接口以及数据的输入接口,输出端接至加法器的输入端口。
加法器的输入端还接至上一级PE输出的运算结果,输出端接至寄存器输出到下一个PE运算单元。
寄存器的输入端接至各个需寄存后输出到下一级PE运算单元的信号,包括输入的特征图数据、特征图数据有效信号、权重数据、权重有效信号、上一级PE输出的运算结果等。
其中,乘法器用于在每一个时钟周期,从权重寄存器(weight_in_reg)接收一个权重数据,以及从特征图数据寄存器(data_in_reg)接收一个特征图数据,并将接收到的数据进行相乘,然后将相乘的结果输出给加法器。
加法器用于将上一级PE单元的运算结果和本级PE单元的乘法器输出结果进行累加,并将累加结果输出到下一行同一列的PE单元中。
在一种实现方式中,若PE基本运算单元位于脉动阵列的第一行,则接收到的前级PE单元的运算结果为0。若PE基本单元位于脉动阵列的最后一行,则该单元的计算结果会直接发送给行缓存器。
本申请实例公开的卷积计算方法中,脉动阵列的行是特征图数据的输入方向,其中每一行输入的是特征图数据的一个子集数据。脉动阵列的列是卷积核权重数据的输入方向,其中每一列输入的是一次卷积需要的滤波器矩阵。在该脉动阵列工作时,不同的列对应不同的权重矩阵,即若存在L(64)个滤波器矩阵,则有L(64)列脉动阵列处于工作状态。不同的行对应特征图矩阵的不同子集。在第一个时钟时,特征图矩阵的第一个子集数据传递到第一行第一列的PE单元中,随后在每一个时钟周期内,与权重数据计算完成后,依次向右传递;在第二个时钟周期内,特征图矩阵的第二个子集数据传递到第二行第一列的PE单元中,随后同样随着时钟周期依次传递。即若特征图数据是N×N的矩阵,卷积核权重是M×M的矩阵,其中M<N,则在只有单通道的情况下,需要经过M×M个时钟周期,才能得到最终的卷积计算结果。
如图3所示,ACC累加模块在累加使能信号的控制下,将每一列PE阵列的计算结果进行缓存或者直接输出。每一个ACC累加模块包括一个上级PE计算结果输入信号(su_dout),一个累加使能信号输入接口(ACC_en),一个累加完成信号输入接口(ACC_done),读写地址信号输入接口(wr/rd/addr)以及一个累加结果输出接口(acc_dout)。
其中上级PE计算结果输入信号(su_dout)用于输入每一列PE计算单元的运算结果;累加使能信号输入接口(ACC_en)用于控制ACC累加模块进行累加操作或是将计算结果直接输出;累加完成信号输入接口(ACC_done)用于停止累加操作,并将累加结果输出;读写地址信号输入接口(wr/rd/addr)将按照输出地址将数据写到缓存器中;累加结果输出接口(acc_dout)将卷积的结果输出。Mux多路选择器,选择哪个输入、Buff存储数据(缓存)、Reg寄存器。
如图4所示,基于脉动阵列的神经网络加速器卷积计算方法的数据处理的工作流程,包括:
步骤S1,获取权重核矩阵以及特征图数据矩阵,权重核矩阵包括多个权重数据,特征图数据包括多个特征图的子集数据。
步骤S2,在权重有效信号和特征图数据有效信号的控制下,将权重数据和特征图数据依次打拍广播到脉动阵列中。
步骤S3,在PE单元中对输入的权重数据和特征图数据进行乘累加操作。
步骤S4,根据累加控制信号,输出卷积的运算结果。
以下结合具体示例,对本申请实施例公开的一种基于脉动阵列的神经网络加速器卷积计算方法进行说明。
首先,设定特征图矩阵的通道数为N,特征图矩阵的维度为4×4×N,权重矩阵(滤波器)的维度为2×2×N。其中特征图矩阵中的数据分别用F、S、Z、E和T等表示,权重矩阵中的数据用W和G表示。
其次,将脉动阵列中最后一行的行缓存器的累加使能信号置1,即卷积结果先寄存在Buff中,等待下一次卷积结果后累加输出。
如图5a、b所示,在第一个时钟周期,通道0的特征图数据的第一个子集数据F00-F22被输入到脉动阵列的第一行中,与PE单元中已经固定的权重数据进行乘累加的操作,计算的结果输入到下一行的PE单元中;在第二个时钟周期,通道0的特征图数据的第二个子集数据F01-F23被输入到脉动阵列的第二行中,与PE单元中已经固定的权重数据进行乘累加操作,计算的结果输入到下一行的PE单元中;依次类推,在第4n个周期(4=2×2,根据权重矩阵的维度而定),通道n的最后一个特征图数据的子集被输入到第4n行PE中,完成脉动阵列的卷积计算操作,并将这n个通道的计算结果暂时存储在ACC累加模块中。下一个周期开始,剩余的N-n个通道的特征图数据按照同样的操作被输入到脉动阵列中,最后将第一次脉动阵列的计算结果ACC_out与第二次脉动阵列计算结果N_out累加,就得到最终的两通道卷积计算结果。在这个示例中,由于脉动阵列共有N=64行,因此n=16(16=4×4,根据特征图矩阵的维度而定)。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (8)

1.一种基于脉动阵列的神经网络加速器卷积计算装置,包括运算单元排布而成的脉动阵列,其特征在于所述脉动阵列最后一行为累加模块,用于存储最终运算结果,所述运算单元包括权重信息输入接口、特征图信息输入接口、上级运算单元运算结果输入接口、乘法器、加法器、权重信息输出接口、特征图信息输出接口和运算结果输出接口,第一行运算单元的权重信息输入接口用于获取卷积核权重,第一列运算单元的特征图信息输入接口用于获取特征图数据,单个运算单元内,权重信息输入接口与权重信息输出接口连接,特征图信息输入接口与特征图信息输出接口连接,乘法器分别与权重信息输入接口、特征图信息输入接口和加法器连接,将权重数据与特征图数据相乘的结果作为加法器的输入,加法器分别与上级运算单元运算结果输入接口和运算结果输出接口连接,将上级运算单元运算结果与乘法器的输出累加后输出,运算单元的权重信息输出接口和运算结果输出接口,分别与同一列下一行的运算单元的权重信息输入接口、上级运算单元运算结果输入接口连接,运算单元的特征图信息输出接口与同一行下一列的运算单元的特征图信息输入接口连接,每一列的相邻运算单元及每一行的相邻运算单元之间,通过寄存器连接,寄存器在时钟信号的控制下,进行数据的存储和传递,最后一行运算单元的运算结果输出接口与其对应的累加模块连接;
所述权重信息输入接口包括权重输入接口、权重有效信号输入接口,所述特征图信息输入接口包括特征图数据输入接口、特征图数据有效信号输入接口,所述权重信息输出接口包括权重输出接口、权重有效信号寄存输出接口,所述特征图信息输出接口包括特征图数据寄存输出接口、特征图数据有效信号寄存输出接口,权重输入接口分别与权重输出接口和乘法器连接,权重有效信号输入接口分别与权重有效信号寄存输出接口和乘法器连接,特征图数据输入接口分别与特征图数据寄存输出接口和乘法器连接,特征图数据有效信号输入接口分别与特征图数据有效信号寄存输出接口和乘法器连接。
2.根据权利要求1所述的一种基于脉动阵列的神经网络加速器卷积计算装置,其特征在于所述运算单元包括权重寄存器、权重有效信号寄存器、特征图数据寄存器、特征图数据有效信号寄存器和上级运算单元运算结果寄存器,权重寄存器分别与权重输入接口、权重有效信号输入接口和乘法器连接,权重有效信号寄存器分别与权重有效信号输入接口和权重有效信号寄存输出接口连接,特征图数据寄存器分别与特征图数据输入接口、特征图数据有效信号输入接口和乘法器连接,特征图数据有效信号寄存器分别与特征图数据有效信号输入接口和特征图数据有效信号寄存输出接口连接,上级运算单元运算结果寄存器分别与上级运算单元运算结果输入接口和运算结果输出接口连接。
3.根据权利要求1所述的一种基于脉动阵列的神经网络加速器卷积计算装置,其特征在于所述脉动阵列为X×X个运算单元构成的阵列。
4.根据权利要求1所述的一种基于脉动阵列的神经网络加速器卷积计算装置,其特征在于所述累加模块,包括上级运算单元计算结果输入接口、累加完成信号输入接口、累加使能信号输入接口、读写地址信号输入接口、累加结果输出接口、累加器、第一选择器、第二选择器和缓存器,上级运算单元计算结果输入接口通过累加器与第一选择器连接,第一选择器分别与累加完成信号输入接口、第二选择器和缓存器连接,第二选择器分别与上级运算单元计算结果输入接口、累加使能信号输入接口和累加结果输出接口连接,缓存器分别与累加器和读写地址信号输入接口连接;
所述上级运算单元计算结果输入接口,用于获取每一列运算单元的计算结果;
所述累加使能信号输入接口,用于控制累加操作或将计算结果直接输出;
所述累加完成信号输入接口,用于停止累加操作,并通过累加结果输出接口将累加结果输出;
所述读写地址信号输入接口,根据获取的输出地址,将数据写到缓存器中。
5.根据权利要求1所述的一种基于脉动阵列的神经网络加速器卷积计算装置的卷积计算方法,其特征在于包括如下步骤:
S1,获取权重信息和特征图信息;
S2,将权重信息和特征图信息,依次打拍广播到脉动阵列中;
S3,运算单元对输入的权重信息和特征图信息进行乘累加操作,包括如下步骤:
S31,第一行第一列的运算单元,将获取的权重信息打一拍后,输出到同一列下一行的运算单元的权重信息输入接口;将获取的特征图信息打一拍后,输出到同一行下一列的运算单元的特征图信息输入接口;将获取的权重信息和特征图信息进行相乘后,通过运算结果输出接口,输出到同一列下一行的运算单元的上级运算单元运算结果输入接口;
S32,其余运算单元,依次打拍传递权重信息和特征图信息的同时,将获取的权重信息和特征图信息进行相乘,并将上级运算单元运算结果输入接口获取的运算结果与相乘的运算结果相加,通过运算结果输出接口,输出到同一列下一行运算单元的上级运算单元运算结果输入接口;
S33,最后一行的运算单元,将乘累加运算结果,通过运算结果输出接口,输出到累加模块;
S4,累加模块根据累加控制信号,输出最终运算结果;
所述权重信息输入接口包括权重输入接口、权重有效信号输入接口,权重信息输出接口包括权重输出接口、权重有效信号寄存输出接口,特征图信息输入接口包括特征图数据输入接口、特征图数据有效信号输入接口,特征图信息输出接口包括特征图数据寄存输出接口、特征图数据有效信号寄存输出接口;
所述权重输入接口用于输入权重数据,通过权重输出接口输出到同一列下一行的运算单元;
所述权重有效信号输入接口用于选通运算单元的权重信号,同时将其输入权重有效信号寄存器打一拍后,通过权重有效信号寄存输出接口,输出到同一列下一行运算单元;
所述特征图数据输入接口用于输入特征图数据,同时将其输入特征图数据寄存器打一拍后,通过特征图数据寄存输出接口,输出到同一行下一列的运算单元;
所述特征图数据有效信号输入接口用于选通运算单元的有效特征图数据,同时将其输入特征图数据有效信号寄存器打一拍后,通过特征图数据有效信号寄存输出接口,输出到同一行下一列的运算单元。
6.根据权利要求5所述的一种基于脉动阵列的神经网络加速器卷积计算装置的卷积计算方法,其特征在于所述S1中,获取权重核矩阵和特征图数据矩阵,权重核矩阵包括一组权重信息,特征图矩阵包括一组特征图子集的特征图信息,依次输入脉动阵列。
7.根据权利要求5所述的一种基于脉动阵列的神经网络加速器卷积计算装置的卷积计算方法,其特征在于所述S4中的累加模块,根据累加使能信号,将每一列PE阵列的计算结果,执行输出操作或缓存等待下一个脉动阵列计算结果。
8.根据权利要求7所述的一种基于脉动阵列的神经网络加速器卷积计算装置的卷积计算方法,其特征在于所述累加模块,获取上级运算单元计算结果输入信号,并根据收到的累加使能信号,对计算结果进行累加或直接输出,累加结果根据收到的输出地址保存在缓存中,供下一次累加计算,当接收到累加完成信号时,停止累加操作,并输出累加结果。
CN202111456203.8A 2021-12-02 2021-12-02 一种基于脉动阵列的神经网络加速器卷积计算装置与方法 Active CN113869507B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111456203.8A CN113869507B (zh) 2021-12-02 2021-12-02 一种基于脉动阵列的神经网络加速器卷积计算装置与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111456203.8A CN113869507B (zh) 2021-12-02 2021-12-02 一种基于脉动阵列的神经网络加速器卷积计算装置与方法

Publications (2)

Publication Number Publication Date
CN113869507A CN113869507A (zh) 2021-12-31
CN113869507B true CN113869507B (zh) 2022-04-15

Family

ID=78985521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111456203.8A Active CN113869507B (zh) 2021-12-02 2021-12-02 一种基于脉动阵列的神经网络加速器卷积计算装置与方法

Country Status (1)

Country Link
CN (1) CN113869507B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10438117B1 (en) * 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
CN107578098B (zh) * 2017-09-01 2020-10-30 中国科学院计算技术研究所 基于脉动阵列的神经网络处理器
CN113313252B (zh) * 2021-05-24 2022-10-25 东南大学 一种基于脉动阵列的深度可分离卷积实现方法

Also Published As

Publication number Publication date
CN113869507A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
CN108805266B (zh) 一种可重构cnn高并发卷积加速器
CN108171317B (zh) 一种基于soc的数据复用卷积神经网络加速器
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN110348574B (zh) 一种基于zynq的通用卷积神经网络加速结构及设计方法
CN110738308B (zh) 一种神经网络加速器
CN111291323B (zh) 一种基于脉动阵列的矩阵乘法处理器及其数据处理方法
WO2019205617A1 (zh) 一种矩阵乘法的计算方法及装置
CN109284824B (zh) 一种基于可重构技术的用于加速卷积和池化运算的装置
CN107590085A (zh) 一种具有多级缓存的动态可重构阵列数据通路及其控制方法
CN110674927A (zh) 一种用于脉动阵列结构的数据重组方法
CN112836813B (zh) 一种用于混合精度神经网络计算的可重构脉动阵列系统
CN112905530B (zh) 片上架构、池化计算加速器阵列、单元以及控制方法
CN110580519A (zh) 一种卷积运算结构及其方法
CN112950656A (zh) 一种基于fpga平台的按通道进行预读取数据的分块卷积方法
CN112418396A (zh) 一种基于fpga的稀疏激活感知型神经网络加速器
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
CN111610963B (zh) 芯片结构及其乘加计算引擎
CN113869507B (zh) 一种基于脉动阵列的神经网络加速器卷积计算装置与方法
CN109948787B (zh) 用于神经网络卷积层的运算装置、芯片及方法
CN116090530A (zh) 可配置卷积核大小和并行计算数目的脉动阵列结构及方法
CN113762480B (zh) 一种基于一维卷积神经网络的时间序列处理加速器
CN110457648A (zh) 一种用于lu分解的脉动阵列结构的实现方法
CN116050492A (zh) 一种扩展单元
CN115495152A (zh) 变长输入的存内计算电路
CN114912596A (zh) 面向稀疏卷积神经网络的多chiplet系统及其方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant