CN111401532A - 一种卷积神经网络推理加速器及加速方法 - Google Patents
一种卷积神经网络推理加速器及加速方法 Download PDFInfo
- Publication number
- CN111401532A CN111401532A CN202010348927.XA CN202010348927A CN111401532A CN 111401532 A CN111401532 A CN 111401532A CN 202010348927 A CN202010348927 A CN 202010348927A CN 111401532 A CN111401532 A CN 111401532A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- signal
- result
- calculation
- 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.)
- Pending
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000001133 acceleration Effects 0.000 title claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims abstract description 119
- 230000006870 function Effects 0.000 claims abstract description 25
- 230000004913 activation Effects 0.000 claims description 18
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000003068 static effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
Abstract
本发明公开了一种卷积神经网络推理加速器及加速方法,属于人工智能算法的硬件实现领域。针对现有技术中存在的功耗高、可配置性差和计算精度低等问题,本发明提供一种卷积神经网络推理加速器及加速方法,加速器包括主控制模块、地址产生模块,SRAM存储模块、数据输入模块、计算引擎模块及结果输出模块,计算引擎模块中的并行计算单元相互独立设置,在有限的计算资源和存储资源的基础之上,实现了高并行度的性能优势,并行计算单元具备定点截位和关断功能,提高了加速器的并行度与计算精度,并降低了使用功耗。
Description
技术领域
本发明涉及人工智能算法的硬件实现领域,更具体地说,涉及一种卷积神经网络推理加速器及加速方法。
背景技术
卷积神经网络是一种深度前馈人工神经网络,是深度学习的代表算法之一,已成功地应用于计算机视觉,自然语言处理等领域。卷积神经网络中,卷积层可占整个网络总运算量和运算时间的80%以上,因此,针对卷积层的加速对于整个CNN网络而言是提升性能的关键。在卷积层的计算中,有如下几个参数:卷积核尺寸(K)、补零方式(Pa)、卷积步长(St)、输入图像通道数(Ch)、卷积核数量(Nu)、输入图像尺寸(In)、输出图像大小(Ou)。根据以上参数,输出图像的尺寸为:
根据对卷积算子的分析可知,卷积主要涉及乘累加运算,由于输入数据多为多通道二维数据,且卷积核数目为多个,因此深度学习中的卷积属于典型的计算密集型算法,需要强大的算力进行支撑。
中国专利申请,申请号CN201810068051.6,公开日2018年6月19日,公开了一种卷积神经网络推理加速器及方法,所述加速器包括:输入图像缓存器模块,包括N个缓存器,用于载入输入图像数据,每个缓存器存储图像对应一行的数据;N*N个运算单元,连接所述输入图像缓存器模块,用于进行卷积运算,所述N*N个运算单元支持图像数据在相邻运算单元间传递的脉动形式,其连接缓存器的运算单元从缓存器中读取图像数据,剩余的运算单元从邻近的运算单元读取图像数据,该发明针对卷积神经网络带来的数据可复用性设计双向脉动阵列,提高了数据的加载效率,从而加速了卷积神经网络。其不足之处在于,该发明的运算单元为单次计算,每次仅能进行一批图像的卷积,无法同时处理多批输入图像,导致其并行度不足,同时运算单元的浮点运算也会大大增加硬件资源的消耗,增加额外的面积和时间开销。
发明内容
1.要解决的技术问题
针对现有技术中存在的计算速度慢、功耗高、可配置性差和定点精度问题,本发明提供了一种卷积神经网络推理加速器及加速方法,它可以提高计算速度、降低功耗、提高装置的可配置性、保证计算结果的精度。
2.技术方案
本发明的目的通过以下技术方案实现。
一种卷积神经网络推理加速器,包括主控制模块、地址产生模块,SRAM存储模块、数据输入模块、计算引擎模块及结果输出模块,其中:
主控制模块,接收开始信号,向地址产生模块、数据输入模块、计算引擎模块和结果输出模块分发数据;
地址产生模块,接收主控制模块和结果输出模块的数据,向SRAM存储模块发送控制信号;
SRAM存储模块,接收地址产生模块的控制信号,向数据输入模块发送存储数据;
数据输入模块,接收主控制模块和SRAM存储模块的数据,将数据发送至计算引擎模块;
计算引擎模块,接收主控制模块和数据输入模块的数据,将结果数据发送至结果输出模块;
结果输出模块,接收计算引擎模块的结果数据,将结果数据发送至地址产生模块。
进一步的,计算引擎模块包括若干个并行计算单元,并行计算单元又包括若干个乘累加单元和激活函数计算单元,乘累加单元通过结果输入总线将数据发送至激活函数计算单元。
更进一步的,乘累加单元包括定点乘法器和定点加法器,定点乘法器与定点加法器相连接。
更进一步的,激活函数单元包括查找表存储器、定点乘法器、定点加法器以及两个寄存器,查找表存储器和第一寄存器接收数据,查找表存储器将数据发送至定点乘法器和第二寄存器,定点乘法器与第二寄存器将数据发送至定点加法器。
更进一步的,主控制模块还向地址产生模块发送补零信号,地址产生模块生成补零地址并将其发送至结果输出模块,结果输出模块将结果数据与补零地址发送至SRAM存储模块。
一种卷积神经网络推理加速方法,应用于上述的推理加速器,包括如下步骤:
步骤1、主控制模块接收到开始信号和配置信息,将配置信息发送至计算引擎模块和结果输出模块,同时向数据输入模块和地址产生模块发出开始信号;
步骤2、地址产生模块收到开始信号后,产生源数据地址、权重地址和相应的SRAM控制信号传输至SRAM存储模块,SRAM存储模块根据源数据地址、权重地址和相应的SRAM控制信号读取源数据和权重数据并发送至数据输入模块;
步骤3、数据输入模块根据SRAM存储模块发送的源数据和权重数据,生成输入数据有效信号、模块关断信号和定点位置信号,将源数据、权重数据、输入数据有效信号、模块关断信号和定点位置信号;
步骤4、计算引擎模块接收到源数据、权重数据、输入数据有效信号、定点位置信号和模块关断信号后,开始进行卷积推理计算,得到结果数据,并生成结果数据有效信号和计算结束信号,将结果数据、结果数据有效信号和计算结束信号发送至结果输出模块;
步骤5、结果输出模块接收到结果数据、结果数据有效信号和计算结束信号之后,将结果数据、结果数据有效信号、和计算结束信号发送至地址产生模块;
步骤6、地址产生模块根据结果数据、计算结束信号和结果数据有效信号生成结果地址和对应的SRAM控制信号,将结果数据、结果数据地址和SRAM控制信号发送至SRAM存储模块,完成结果数据的存储。
进一步的,所述并行计算单元对读取到的源数据进行并行计算,并行计算单元的乘累加单元对卷积核进行并行计算,当计算引擎模块收到模块关断信号时,对应的单元会停止计算,其余的单元继续工作,所述单元为并行计算单元、乘累加单元或激活函数计算单元。
更进一步的,乘累加单元的定点乘法器根据接收到的定点位置信号对计算数据进行定点截位。
更进一步的,结果输出模块在将结果数据在存入SRAM存储模块之前,对结果数据进行补零操作。
更进一步的,SRAM存储模块在存储数据时,将数据分成若干个片段,对片段进行乒乓操作。
3.有益效果
相比于现有技术,本发明的优点在于:
本发明实现充分利用卷积的并发性,设计了并行计算单元,在有限的计算资源和存储资源的基础之上,实现了高并行度的性能优势;并行计算单元及其内部的乘累加单元和激活函数计算单元支持并行度可调,可以通过关闭闲置的运算单元实现减小功耗;乘累加单元和激活函数计算单元支持16bit/8bit两种定点数据类型可配置,以满足不同场景对精度的需求;乘累加单元和激活函数计算单元针对不同层的数据,支持数据定点位置动态可变,有效地保证了计算结果的精度;并行计算单元支持算法参数可配置,适用于多种场景,可扩展性强。
附图说明
图1是本发明的卷积神经网络推理加速器整体框架示意图;
图2是本发明的并行计算单元结构示意图;
图3是本发明的乘累加单元结构示意图;
图4是本发明的激活函数计算单元结构示意图;
图5是本发明的SRAM存储模块结构示意图;
图6是本发明的并行计算单元分片流水计算示意图;
图7是本发明的SRAM存储单元输入乒乓示意图。
具体实施方式
根据对卷积运算规则的分析可知,卷积的主要算子乘累加运算存在大量的可利用数据分片带来的计算并行性,比如多个卷积核是独立并发的,多幅输入图像也是独立并发的,这为硬件设计提供了思路。
在硬件资源和成本的限制下,充分利用卷积运算的可并行性,首先要满足高性能、低功耗的要求;其次要满足算法及参数可配置,提高可扩展性,以满足不同应用场景;最后也需要提高计算精度,减少结果误差。
下面结合说明书附图和具体的实施例,对本发明作详细描述。
如图1所示,本发明提供了一种卷积神经网络推理加速器,所述加速器包括主控制模块、地址产生模块,SRAM存储模块、数据输入模块、计算引擎模块及结果输出模块,其中主控制模块接收开始信号,向地址产生模块、数据输入模块、计算引擎模块和结果输出模块分发数据;地址产生模块接收主控制模块和结果输出模块的数据,向SRAM存储模块发送控制信号;SRAM存储模块接收地址产生模块的控制信号,向数据输入模块发送存储数据;数据输入模块接收主控制模块和SRAM存储模块的数据,将数据发送至计算引擎模块;计算引擎模块接收主控制模块和数据输入模块的数据,将结果数据发送至结果输出模块;结果输出模块接收计算引擎模块的结果数据,将结果数据发送至地址产生模块。具体的:
主控制模块,用于接收开始信号,在收到开始信号后,向数据输入模块和地址产生模块发送开始信号,同时向地址产生模块、SRAM模块、数据输入模块、计算引擎模块、结果输出模块发送配置信息,所述配置信息包括图像尺寸,通道数,卷积核尺寸,卷积核数量,图像批数,卷积步长、并行度以及激活函数等卷积参数;
地址产生模块,用于接收主控制模块的开始信号,在收到开始信号后,生成源数据地址、权重地址和SRAM控制信号,将源数据地址、权重数地址和SRAM控制信号发送至SRAM模块;也用于接收结果输出模块的结果数据、结果数据有效信号和计算结束信号,生成对应的结果数据地址和SRAM控制信号并发送至SRAM存储模块;
SRAM存储模块,用于接收地址产生模块的地址和SRAM控制信号,根据地址和控制信号存储或读取数据,将读取到的数据发送至数据输入模块;
数据输入模块,用于接收主控制模块的开始信号,生成计算控制信号,接收SRAM存储模块的数据,将计算控制信号和数据发送至计算引擎模块,所述计算控制信号包括输入数据有效信号、模块关断信号以及定点位置信号;
计算引擎模块,用于接收数据输入模块的计算控制信号和数据,同时接收主控制模块的配置信息,根据配置信息和计算控制信号对数据进行计算得到结果数据,并生成结果数据有效信号和计算结束信号,将结果数据、结果数据有效信号和计算结束信号发送至结果输出模块;
结果输出模块,用于接收计算引擎模块产生的结果数据、结果数据有效信号和计算结束信号,同时接收主控制模块的配置信息,根据配置信息对结果数据进行补零,并将补零后的结果数据、结果数据有效信号和计算结束信号发送至地址产生模块。
具体的,本实施例中的计算引擎模块包括若干个并行计算单元,一个并行计算单元包括若干个乘累加单元(PE)和一个激活函数计算单元(ACT),本实施例的计算引擎模块包括有32个并行计算单元,一个并行计算单元包括32个乘累加单元(PE)和一个激活函数计算单元(ACT),应当注意的是,本发明的计算引擎的并行计算单元数量及其乘累加单元和激活函数计算单元没有特定数量限制,在具体实施中可根据实际计算所需设定具体的单元数量,这里的计算单元数量只是根据本实施例的卷积层计算参数所设置。计算引擎模块的并行计算单元之间是相互独立且可并发执行的,它们通过算法控制模块实现卷积层计算的源数据分片流水并行,并行计算单元中的乘累加单元之间也是相互独立且可并发执行的,它们通过算法控制模块实现卷积层计算的卷积核(kernel)分片流水并行,所述算法控制模块为主控制模块,地址产生模块,数据输入模块和结果输出模块。并行计算单元及其内部的乘累加单元和激活函数计算单元都具备关断功能,在接收到有效的关断信号后停止工作,本装置可以根据实际所需的计算单元数量发送关断信号,调整单元的运行数量,从而降低加速器所需功耗。
在如图2所示的并行计算单元内部结构中,并行计算单元中的乘累加单元通过两根数据输入总线接收数据输入模块的源数据和权重数据,对数据进行计算后,乘累加单元的计算结果通过结果输入总线流水地进入激活函数计算单元进行计算,之后计算结果由结果输出总线流水地传输至结果输出模块。
在如图3所示的乘累加单元PE内部结构中,乘累加单元包括1个定点乘法器(FM)和1个定点加法器(FA),定点乘法器接收源数据和权重数据,对数据进行乘法运算,并根据接收到的定点位置信号(trunc)对计算结果进行定点截位,所述定点截位是以定点乘法器中的数据向右移位的方式实现,乘累加单元支持16bit和8bit两种定点数据类型,同时支持定点整数位动态变化,可以满足不同场景对精度的需求,定点截位可以减少计算单元的浮点运算,从而减少硬件资源的消耗,提高运算速度。
在如图4所示的激活函数单元ACT内部结构中,激活函数单元包括查找表存储器(LUT)、定点乘法器(FM)、定点加法器(FA)以及两个寄存器(FF),查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM,RAM中存储真值表。本实施例中,LUT和一个寄存器接收乘累加单元的计算结果数据X,LUT同时接收Trunc定点截位信号,LUT根据输入信号进行逻辑运算,即根据地址进行查表,找出当前输入x对应的参数k和b,将中间结果k存入另一寄存器,将中间结果b和一个寄存器中的x发送至定点乘法器FM,并且定点乘法器根据定点截位信号进行移位,最后将结果数据和另一寄存器中的中间结果k发送到定点加法器中,计算得到结果result=b*x+k。激活函数单元支持16bit和8bit两种定点数据类型,同时支持定点整数位动态变化,可以满足不同场景对精度的需求。
在如图5所示的SRAM存储模块内部结构中,SRAM存储模块一共分为3个部分,分别为源数据区、权重区和结果区,本实施例中的存储模块使用128个SRAM,每个SRAM的尺寸为256bit×1k,可存储16k个16bit定点数据或者32k个8bit定点数据,SRAM存储模块所存储的定点数据位数由乘累加单元和激活函数计算单元的定点数据位数决定,数据存储地址以字节为单位,存储模块的128个SRAM分为128个bank,其中64个bank作为源数据区用于存储源数据,32个bank作为权重区用于存储权重数据,32个bank作为结果区用于存储结果数据。
本实施例在计算引擎模块的计算结果在存入结果SRAM之前,对卷积结果进行补零(padding)操作,补零操作由主控制模块、地址产生模块、结果输出模块共同完成,主控制模块向地址产生模块发送补零信号,控制地址产生模块产生补零地址,所述补零地址对应结果数据在SRAM存储模块中需要补零的地址,结果输出模块根据补零地址将数据0存入SRAM中对应的补零地址上,通过对卷积结果进行补零操作,便于下一层卷积的计算。
在如图6所示的并行计算单元实现分片流水并行的实施例中,并行计算单元对接收到的源数据Xabc和权重数据Wabc进行卷积计算,源数据和权重数据为二维矩阵,其中a表示二维矩阵的行,b表示二维矩阵的列,c表示图像的通道,Xabc的a、b、c确定了输入数据在源数据中的位置,Wabc的a、b、c确定了权重数据在卷积核中的位置。在计算引擎模块的卷积计算中,单个并行计算单元中所有的乘累加单元分别计算同一组源数据,而单个并行计算单元不同乘累加单元则对应不同卷积核,权重数据指的单个权重,一个卷积核可以包含多个权重数据;不同的并行计算单元对应不同的源数据,而不同的并行计算单元中相同位置的乘累加单元对应同一个卷积核,本实施例中,将一个并行计算单元称为一个计算组,每个计算组分配32个卷积核,对应32个乘累加单元PE,kernel0分配到PE0,kernel1分配到PE1,以此类推,kernel31分配到PE31,而计算组0的PE0与计算组1的PE0所对应的卷积核相同,通过为每个卷积核分配对应的乘累加单元PE,实现了并行计算单元内卷积核的并行计算,每个乘累加单元内部进行源数据和权重数据的乘累加运算,每个乘累加单元计算结束可以生成输出图像中对应通道的一个结果数据,该结果数据通过结果输入总线进入激活函数单元ACT进行激活函数计算,最终结果数据由结果输出总线输出到结果输出模块。
分片流水并行的传输计算方式可以同时对多批源数据和多个卷积核进行并行计算,提高了卷积神经网络中卷积层的计算速度。同时,由于每个并行计算单元之间是独立计算的,且每个并行计算单元及其内部的PE和ACT都具备关断功能,因此加速器可以根据实际计算的图片数量进行调整,通过向计算引擎模块发送有效关断信号,控制对应的数量并行计算单元停止工作;加速器也可以根据实际计算的卷积数进行调整,同样向计算引擎模块发送有效关断信号,控制并行计算单元中的乘累加单元PE的工作数量,通过控制并行计算单元及乘累加单元的工作数量,实现了计算的并行度可调,关闭闲置的计算单元,降低加速器所需功耗。
本发明还提供了一种卷积神经网络的推理加速方法,具体包括以下步骤:
步骤1、主控制模块接收到卷积开始信号和算法配置信息,将配置信息传给计算引擎模块和结果输出模块,同时向数据输入模块和地址产生模块发出开始信号,配置参数用于计算引擎模块和结果输出模块对数据进行卷积运算;
步骤2、地址产生模块收到开始信号后,产生源数据地址、权重地址和相应的SRAM控制信号传输至SRAM存储模块,这里对应的SRAM控制信号为取数据信号;
步骤3、数据输入模块根据SRAM存储模块发送的源数据和权重数据,生成输入数据有效信号、模块关断信号和定点位置信号,将源数据、权重数据、输入数据有效信号、模块关断信号和定点位置信号,所述定点位置信号包括PE定点位置信号和ACT定点位置信号;
步骤4、计算引擎模块接收到源数据、权重数据和输入数据有效信号、定点位置信号、模块关断信号后,开始进行卷积推理计算,得到结果数据,并生成结果数据有效信号和计算结束信号,将结果数据、结果数据有效信号和计算结束信号发送至结果输出模块;
步骤5、结果输出模块接收到结果数据和结果数据有效信号之后,根据配置信息对结果数据进行相应的补零操作,将补零后的结果数据、结果数据有效信号和计算结束信号发送至地址产生模块;
步骤6、地址产生模块根据接收到的补零后的结果数据、计算结束信号和结果数据有效信号,生成结果数据地址和对应的SRAM控制信号,这里对应的SRAM控制信号为存数据信号,将结果数据、结果数据地址和对应SRAM控制信号一同送至SRAM存储模块,完成结果数据的存储。
在SRAM存储模块存放数据时,当无法将完整的输入数据全部放在相应SRAM存储模块中的时候,需要通过多次搬运源数据,因此需要对输入图像即源数据进行切割,将输入图像分为若干个片段依次搬入SRAM,并利用乒乓操作实现部分搬运时间的掩盖,提高计算效率,在图7所示的数据输入模块输入乒乓实施例中,当进行输入图像片段0的推论时,同时搬入下一个需要计算的输入图像片段1,从而实现了数据搬运时间或者计算时间的部分覆盖,提高了算法的效率。
本方法通过卷积神经网络推理加速器的主控制模块接收外部数据和信息,并将数据分发给对应的模块,通过计算引擎单元计算输入的图像数据,实现了卷积神经网络中卷积层的流水并行计算,并将计算结果存入SRAM存储模块中,便于下一次卷积计算。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种卷积神经网络推理加速器,其特征在于,包括主控制模块、地址产生模块,SRAM存储模块、数据输入模块、计算引擎模块及结果输出模块,其中:
主控制模块,接收开始信号,向地址产生模块、数据输入模块、计算引擎模块和结果输出模块分发数据;
地址产生模块,接收主控制模块和结果输出模块的数据,向SRAM存储模块发送控制信号;
SRAM存储模块,接收地址产生模块的控制信号,向数据输入模块发送存储数据;
数据输入模块,接收主控制模块和SRAM存储模块的数据,将数据发送至计算引擎模块;
计算引擎模块,接收主控制模块和数据输入模块的数据,将结果数据发送至结果输出模块;
结果输出模块,接收计算引擎模块的结果数据,将结果数据发送至地址产生模块。
2.根据权利要求1所述的一种卷积神经网络推理加速器,其特征在于:所述计算引擎模块包括若干个并行计算单元,并行计算单元又包括若干个乘累加单元和激活函数计算单元,乘累加单元通过数据输入总线接收数据输入模块的数据,通过结果输入总线将数据发送至激活函数计算单元。
3.根据权利要求2所述的一种卷积神经网络推理加速器,其特征在于:所述乘累加单元包括定点乘法器和定点加法器,定点乘法器与定点加法器相连接。
4.根据权利要求2所述的一种卷积神经网络推理加速器,其特征在于:所述激活函数单元包括查找表存储器、定点乘法器、定点加法器以及两个寄存器,查找表存储器和第一寄存器接收数据,查找表存储器将数据发送至定点乘法器和第二寄存器,定点乘法器与第二寄存器将数据发送至定点加法器。
5.根据权利要求1所述的一种卷积神经网络推理加速器,其特征在于:所述主控制模块还向地址产生模块发送补零信号,地址产生模块生成补零地址并将其发送至结果输出模块,结果输出模块将结果数据与补零地址发送至SRAM存储模块。
6.一种卷积神经网络推理加速方法,其特征在于,应用于如权利要求1-5任一所述的推理加速器,包括如下步骤:
步骤1、主控制模块接收到开始信号和配置信息,将配置信息发送至计算引擎模块和结果输出模块,同时向数据输入模块和地址产生模块发出开始信号;
步骤2、地址产生模块收到开始信号后,产生源数据地址、权重地址和相应的SRAM控制信号传输至SRAM存储模块,SRAM存储模块根据源数据地址、权重地址和相应的SRAM控制信号读取源数据和权重数据并发送至数据输入模块;
步骤3、数据输入模块根据SRAM存储模块发送的源数据和权重数据,生成输入数据有效信号、模块关断信号和定点位置信号,将源数据、权重数据、输入数据有效信号、模块关断信号和定点位置信号;
步骤4、计算引擎模块接收到源数据、权重数据、输入数据有效信号、定点位置信号和模块关断信号后,开始进行卷积推理计算,得到结果数据,并生成结果数据有效信号和计算结束信号,将结果数据、结果数据有效信号和计算结束信号发送至结果输出模块;
步骤5、结果输出模块接收到结果数据、结果数据有效信号和计算结束信号之后,将结果数据、结果数据有效信号、和计算结束信号发送至地址产生模块;
步骤6、地址产生模块根据结果数据、计算结束信号和结果数据有效信号生成结果地址和对应的SRAM控制信号,将结果数据、结果数据地址和SRAM控制信号发送至SRAM存储模块,完成结果数据的存储。
7.根据权利要求6所述的一种卷积神经网络推理加速器,其特征在于:所述并行计算单元对读取到的源数据进行并行计算,并行计算单元的乘累加单元对卷积核进行并行计算,当计算引擎模块收到模块关断信号时,对应的单元会停止计算,其余的单元继续工作,所述单元为并行计算单元、乘累加单元或激活函数计算单元。
8.根据权利要求7所述的一种卷积神经网络推理加速方法,其特征在于:乘累加单元的定点乘法器根据接收到的定点位置信号对计算数据进行定点截位。
9.根据权利要求6所述的一种卷积神经网络推理加速方法,其特征在于:结果输出模块在将结果数据在存入SRAM存储模块之前,根据配置信息对结果数据进行相应的补零操作,对结果数据进行补零操作。
10.根据权利要求6所述的一种卷积神经网络推理加速方法,其特征在于:SRAM存储模块在存储数据时,将数据分成若干个片段,对片段进行乒乓操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010348927.XA CN111401532A (zh) | 2020-04-28 | 2020-04-28 | 一种卷积神经网络推理加速器及加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010348927.XA CN111401532A (zh) | 2020-04-28 | 2020-04-28 | 一种卷积神经网络推理加速器及加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111401532A true CN111401532A (zh) | 2020-07-10 |
Family
ID=71431769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010348927.XA Pending CN111401532A (zh) | 2020-04-28 | 2020-04-28 | 一种卷积神经网络推理加速器及加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111401532A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813721A (zh) * | 2020-07-15 | 2020-10-23 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
CN111915001A (zh) * | 2020-08-18 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 卷积计算引擎、人工智能芯片以及数据处理方法 |
CN112215342A (zh) * | 2020-09-28 | 2021-01-12 | 南京俊禄科技有限公司 | 一种船用气象雷达照相装置多通道并行cnn加速器 |
CN112306675A (zh) * | 2020-10-12 | 2021-02-02 | 网络通信与安全紫金山实验室 | 数据处理方法、相关设备以及计算机可读存储介质 |
CN113312285A (zh) * | 2021-06-11 | 2021-08-27 | 西安微电子技术研究所 | 一种卷积神经网络加速器及其工作方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273090A (zh) * | 2017-05-05 | 2017-10-20 | 中国科学院计算技术研究所 | 面向神经网络处理器的近似浮点乘法器及浮点数乘法 |
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
WO2019137060A1 (zh) * | 2018-01-15 | 2019-07-18 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
CN110232441A (zh) * | 2019-06-18 | 2019-09-13 | 南京大学 | 一种基于单向脉动阵列的堆栈式自编码系统及方法 |
CN110610235A (zh) * | 2019-08-22 | 2019-12-24 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
-
2020
- 2020-04-28 CN CN202010348927.XA patent/CN111401532A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273090A (zh) * | 2017-05-05 | 2017-10-20 | 中国科学院计算技术研究所 | 面向神经网络处理器的近似浮点乘法器及浮点数乘法 |
WO2019137060A1 (zh) * | 2018-01-15 | 2019-07-18 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN110232441A (zh) * | 2019-06-18 | 2019-09-13 | 南京大学 | 一种基于单向脉动阵列的堆栈式自编码系统及方法 |
CN110610235A (zh) * | 2019-08-22 | 2019-12-24 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813721A (zh) * | 2020-07-15 | 2020-10-23 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
CN111813721B (zh) * | 2020-07-15 | 2022-09-09 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
CN111915001A (zh) * | 2020-08-18 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 卷积计算引擎、人工智能芯片以及数据处理方法 |
CN111915001B (zh) * | 2020-08-18 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 卷积计算引擎、人工智能芯片以及数据处理方法 |
CN112215342A (zh) * | 2020-09-28 | 2021-01-12 | 南京俊禄科技有限公司 | 一种船用气象雷达照相装置多通道并行cnn加速器 |
CN112215342B (zh) * | 2020-09-28 | 2024-03-26 | 南京俊禄科技有限公司 | 一种船用气象雷达照相装置多通道并行cnn加速器 |
CN112306675A (zh) * | 2020-10-12 | 2021-02-02 | 网络通信与安全紫金山实验室 | 数据处理方法、相关设备以及计算机可读存储介质 |
CN113312285A (zh) * | 2021-06-11 | 2021-08-27 | 西安微电子技术研究所 | 一种卷积神经网络加速器及其工作方法 |
CN113312285B (zh) * | 2021-06-11 | 2023-08-18 | 西安微电子技术研究所 | 一种卷积神经网络加速器及其工作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111401532A (zh) | 一种卷积神经网络推理加速器及加速方法 | |
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
CN108108809B (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
CN111488983B (zh) | 一种基于fpga的轻量级cnn模型计算加速器 | |
CN110516801A (zh) | 一种高吞吐率的动态可重构卷积神经网络加速器架构 | |
CN108733348B (zh) | 融合向量乘法器和使用其进行运算的方法 | |
CN111898733A (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN112465110A (zh) | 一种卷积神经网络计算优化的硬件加速装置 | |
CN110991634A (zh) | 人工智能加速器、设备、芯片及数据处理方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN211554991U (zh) | 一种卷积神经网络推理加速器 | |
CN109472734B (zh) | 一种基于fpga的目标检测网络及其实现方法 | |
CN108647780B (zh) | 面向神经网络的可重构池化操作模块结构及其实现方法 | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
CN111047037A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113705794B (zh) | 一种基于动态激活位稀疏的神经网络加速器设计方法 | |
Lu et al. | A reconfigurable DNN training accelerator on FPGA | |
CN115081600A (zh) | 执行Winograd卷积的变换单元、集成电路装置及板卡 | |
CN115081603A (zh) | 执行Winograd卷积的计算装置、集成电路装置及板卡 | |
CN114595813A (zh) | 异构加速处理器及数据计算方法 | |
CN111797977B (zh) | 一种用于二值化神经网络的加速器结构及循环展开方法 | |
Zhang et al. | Small area high speed configurable FFT processor | |
CN115081602A (zh) | 执行Winograd卷积的计算装置、集成电路装置及板卡 | |
CN112712174B (zh) | 全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 | |
Wu et al. | Efficient inference of large-scale and lightweight convolutional neural networks on FPGA |
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 |