CN109447241B - 一种面向物联网领域的动态可重构卷积神经网络加速器架构 - Google Patents
一种面向物联网领域的动态可重构卷积神经网络加速器架构 Download PDFInfo
- Publication number
- CN109447241B CN109447241B CN201811149741.0A CN201811149741A CN109447241B CN 109447241 B CN109447241 B CN 109447241B CN 201811149741 A CN201811149741 A CN 201811149741A CN 109447241 B CN109447241 B CN 109447241B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- input
- cache
- output
- 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
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 82
- 230000006870 function Effects 0.000 claims abstract description 39
- 230000004913 activation Effects 0.000 claims abstract description 35
- 238000011176 pooling Methods 0.000 claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 5
- 238000006243 chemical reaction Methods 0.000 claims description 53
- 239000011159 matrix material Substances 0.000 claims description 27
- 239000000872 buffer Substances 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 210000002569 neuron Anatomy 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
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
本发明一种面向物联网领域的动态可重构卷积神经网络加速器架构,包括缓存架构等,缓存架构用于存储来自储外部存储器的数据或者计算过程中产生的数据,将其组织、排列后,以数据结构传送到处理单元阵列中进行计算;处理单元阵列用于接收来自缓存架构的数据,进行卷积操作处理后存储在缓存架构中;计算模块用于接收来自处理单元阵列的数据,选择进行池化、标准化、或者激活函数三种操作,并将输出数据存储在缓存架构中;控制器用于向缓存架构、处理单元阵列和计算模块发送命令,并设计有外部接口,用于和外部系统进行通信。本发明通过设计高并行度、高利用率的处理单元阵列以及可提升数据复用率的缓存架构提高卷积神经网络加速器的性能,降低功耗。
Description
技术领域
本发明属于神经网络加速器领域,尤其涉及一种面向物联网领域的动态可重构卷积神经网络加速器架构。
背景技术
人工智能是目前热门的计算机科学之一,作为实现人工智能的主要方式,深度学习也得到了深远的发展,随着网络层数和每层神经元个数的增加,模型的计算复杂度会随着网络规模增大以指数增长。所以深度学习算法的学习速度和运行速度瓶颈越来越依赖于云计算等大规模计算平台。对于深度学习算法的硬件加速,目前通常有三类实现方式——多核CPU、GPU和FPGA,它们的共同特点是可以实现高并行度的计算。然而,现有的硬件实现方式功耗较高,还存在着能量效率(性能/功耗)较低的问题,并不能应用在智能移动终端上,例如智能手机、可穿戴设备或者是自动驾驶汽车等。在此背景下,可重构处理器已经被证明是一种兼具高灵活性和高能量效率的并行计算架构形式,它的优势在于可以根据不同的模型大小来选择合适的资源配置策略,扩大专用处理器使用范围的同时提高处理性能,是多核CPU和FPGA技术进一步发展受到限制的解决途径之一,有可能成为未来实现高效能深度学习SoC的方案之一。
卷积神经网络加速器首先要满足可重构,可配置的要求,支持算法层面上网络结构的不断演进,满足丰富多样的应用场景;其次要满足高性能、低能耗的要求,需要克存储带宽限制,充分利用硬件资源。
发明内容
本发明的目的在于提供一种面向物联网领域的动态可重构卷积神经网络加速器架构,其通过设计高并行度、高利用率的处理单元阵列以及可提升数据复用率的缓存架构提高卷积神经网络加速器的性能,降低功耗,同时设计具有一定的可配置性,可适用于多种应用场景。
本发明采用如下技术方案来实现的:
一种面向物联网领域的动态可重构卷积神经网络加速器架构,包括缓存架构、处理单元阵列、计算模块和控制器;其中,
缓存架构用于存储来自储外部存储器的数据或者计算过程中产生的数据,将其组织、排列后,以预设的数据结构传送到处理单元阵列中进行计算;处理单元阵列用于接收来自缓存架构的数据,进行卷积操作处理后存储在缓存架构中;计算模块用于接收来自处理单元阵列的数据,选择进行池化、标准化、或者激活函数三种操作,并将输出数据存储在缓存架构中;控制器用于向缓存架构、处理单元阵列和计算模块发送命令,并设计有外部接口,用于和外部系统进行通信。
本发明进一步的改进在于,缓存架构由输入数据缓存、卷积核缓存和输出数据缓存组成;控制器的输出端与输入数据缓存的输入端、卷积核缓存的输入端和输出数据缓存的输入端连接,输入数据缓存的输出端和卷积核缓存的输出端与处理单元阵列的输入端连接,处理单元阵列的输出端与计算模块的输入端连接,计算模块的输出端与输出数据缓存的输入端连接;
输入数据缓存用于接收多输入通道的输入图像数据,并同时将多个输入通道的数据传送至处理单元阵列进行运算;卷积核数据缓存用于接收多输入通道的卷积核数据,并同时将多个输入通道的数据传送至处理单元阵列进行运算;输出数据缓存用于存储来自计算模块或者处理单元阵列中产生的中间数据,并且将数据通过控制器传送至外部系统。
本发明进一步的改进在于,处理单元阵列由20个处理单元组成,每个处理单元均由输入数据转换模块、卷积核转换模块、乘法器、输出数据转换模块和通道累加模块组成;
输入数据转换模块用于将来自输入数据缓存的多通道输入图像数据在多个处理单元上同时进行转换;卷积核转换模块用于将来自卷积核缓存的多通道卷积核数据在多个处理单元上同时进行转换;乘法器用于将来自输入数据转换模块和卷积核转换模块的输出数据进行相乘;输出数据转换模块用于将乘法器的输出结果进行转换;通道累加模块用于将多通道数据进行加和得到一个通道的数据。
本发明进一步的改进在于,处理单元阵列用于接收来自输入数据缓存、输出数据缓存或者卷积核缓存的数据,输出数据传向输出数据缓存;每个处理单元实现窗口为5*5的Winograd算法,其中Winograd算法的公式表示如下:
U=GFGT (1)
V=BTInB (2)
Out=AT[U·V]A (3)
其中,公式(1)表示卷积核的转换,F矩阵为卷积核,G为转换矩阵,U为卷积核转换后的结果;公式(2)表示输入数据的转换,In矩阵表示输入数据,B为转换矩阵,V为输入数据转换后的结果;公式(3)表示输出数据转换,A为转换矩阵,Out为最终的输出结果。
本发明进一步的改进在于,计算模块由池化模块、激活函数模块、数据标准化模块、输入选择模块和输出选择模块组成;
控制器的输出端与输入选择模块的输入端和输出选择模块的输入端连接,且处理单元阵列的输出端与输入选择模块的输入端连接,输入选择模块的输出端与池化模块的输入端、激活函数模块的输入端和数据标准化模块的输入端连接,池化模块的输出端、激活函数模块的输出端和数据标准化模块的输出端与输入选择模块的输入端连接,输入选择模块的输出端与输出数据缓存的输入端连接;
输入选择模块用于选择对来自处理单元阵列的数据进行池化、标准化、或者激活函数操作;池化模块用于实现池化操作;数据标准化模块用于实现标准化操作;激活函数模块用于实现ReLU激活函数操作;输出选择模块用于选择将池化模块、数据标准化模块或激活函数模块中的一个作为结果输出到缓存架构中。
本发明进一步的改进在于,激活函数模块执行ReLU激活函数,其表达式如公式(4)所示:
f(x)=x(x>0);f(x)=0(x<=0) (4)
其中,公式(4)中x表示ReLU激活函数的输入,即为通道累加模块的输出结果,f表示激活函数模块的输出。
本发明具有如下有益的技术效果:
1、加速器架构面向ShuffleNet等轻量级网络,该类网络具有准确度较高,网络结构较简单,网络参数少的特点。
2、加速器采用了Winograd算法来加速卷积运算,可以减少乘法次数,提升加速器速度,系统能效。
3、加速器支持卷积、池化、激活函数、标准化、全连接操作。可以一次完成多种操作,减少外存访问。
4、加速器完全可配置,包括输入、输出通道数、输入图像大小、卷积核大小、卷积步长。
5、加速器有三个片上缓存,缓存结构中提出了“交换输入输出数据缓存”的操作,对输入图像数据(行和列),和中间数据进行了数据复用,极大减少了外存读取,片上缓存读取,提升了能效。
6、加速器具有不同层次的高并行度:输入、输出通道并行,输入图像内部并行,卷积窗口内部并行,而且并行度可根据带宽修改。
7、可以在通用SOC平台上集成加速器,可通过软件平台更便捷的配置多种网络结构。
综上所述,本发明面向物联网移动端领域,通过设计高并行度、高利用率的处理单元阵列以及合适的缓存架构,实现了低功耗、高性能要求,同时具有一定的可配置性,适用于多种轻量级卷积神经网络和部分深度神经网络。
附图说明
图1为本发明面向物联网领域的动态可重构卷积神经网络处理器架构示意图。
图2为输入数据缓存片外工作模式示意图。
图3为输出数据缓存片上工作模式示意图。
图4为处理单元结构示意图。
附图标记说明:
1为缓存架构,10为输入数据缓存,11为卷积核缓存,12为输出数据缓存;
2为处理单元阵列,21为输入数据转换模块,22卷积核转换模块,23为乘法器,24位输出数据转换模块,25为通道累加模块;
3为计算模块,31为池化模块,32为数据标准化模块,33为激活函数模块,34为输入选择模块,35为输出选择模块;
4为控制器。
具体实施方式
以下结合附图对本发明做出进一步的说明。
如图1所示,本发明提供的一种面向物联网领域的动态可重构卷积神经网络加速器架构,由缓存架构1、处理单元阵列2、计算模块3和控制器4四个部分组成。
本发明所提出的缓存架构1由输入数据缓存10、输出数据缓存12和卷积核缓存11三部分组成。缓存架构1作用是存储输入数据,临时中间数据,输出数据等。增加数据间的复用率,减少外部存储访问带来的高能耗和高延迟。输入数据缓存、输出数据缓存、卷积核缓存的大小由所要实现的卷积神经网络大小所决定。整个缓存架构有两种工作模式:
1)片外数据工作模式
适用于卷积神经网络的第一层,输入数据存储在输入数据缓存中,输出数据存储在输出数据缓存中,卷积核存储在卷积核缓存中。具体工作模式如图2所示。
2)片上数据工作模式
适用于卷积神经网络的中间层运算,输入数据来自输出数据缓存,卷积核来自卷积核缓存,输出的临时数据覆盖旧数据存储在输出数据缓存中。这样操作不用将临时数据存在片外,减少外存访问,但前提是临时数据大小合适,对于shuffleNet等轻量级网络,临时数据较小,此操作具有可行性。具体工作模式如图3所示。
本发明所提出的缓存架构1由以下模块组成,具体的功能及实现如下:
1)输入数据缓存
输入数据缓存10从外部存储接收数据,一般为图像数据,并将数据按照约定结构输出到处理单元阵列2,作用是将大块的图像数据转为容易处理的小块数据,并且利用块与块之间“行与列”的数据重合,如图2所示,提高数据重复利用率。输入数据缓存10由两片存储器组成,两片存储器以“乒乓”得方式接受数据,即一块存储器接收数据另一块存储器输出数据,反之亦然。
2)输出数据缓存
输出数据缓存12接受来自处理单元阵列2或者计算模块3的数据,在缓存架构片上处理模式下,将输出数据再返回到处理单元阵列2或者计算模块3,进行下一批次处理。输出数据缓存12由多组存储器并列而成,数量根据所要实现的卷积神经网络而定。
3)卷积核缓存
卷积核缓存11存储每一层卷积神经网络的卷积核,并将数据按照约定结构输出到处理单元阵列。卷积核缓存11由多组存储器并列而成,数量根据所要实现的卷积神经网络而定。每层卷积神经网络的卷积核不同,所以卷积核存储中的数据需要在批次运算之后重新导入。
本发明所提出的处理单元阵列2由20个相同的处理单元组成,处理单元阵列2接收来自输入数据缓存10、输出数据缓存12或者卷积核缓存11的数据,输出数据传向输出数据缓存12。处理单元阵列2的作用是接收输入图像数据或者中间临时数据,进行不同步长、不同卷积核大小、不同图像大小的卷积操作。每个处理单元实现窗口为5*5的Winograd算法。Winograd算法的公式表示如下:
U=GFGT (1)
V=BTInB (2)
Out=AT[U·V]A (3)
其中,公式(1)表示卷积核的转换,F矩阵为卷积核,G为转换矩阵,U为卷积核转换后的结果;公式(2)表示输入数据的转换,In矩阵表示输入数据,B为转换矩阵,V为输入数据转换后的结果;公式(3)表示输出数据转换,A为转换矩阵,Out为最终的输出结果。
每个处理单元的结构如图4所示,由输入数据转换模块21、卷积核转换模块22、乘法器23、输出数据转换模块24和通道累加模块25五个模块组成。其中:
1)输入数据转换模块
输入数据转换模块21实现公式(2),将从输入数据缓存中输出的数据按列先进行转换,五个周期后可得到结果为5*5的矩阵。
2)卷积核转换模块
卷积核转换模块22实现公式(1),将从卷积核缓存中输出的数据按列先进行转换,五个周期后可得到结果为5*5的矩阵。
3)乘法器
每个处理单元有25个乘法器23,乘法器23执行转换后的输入数据和转换后的卷积核,实现两个5*5矩阵的矩阵点乘,得到一个5*5的矩阵。
4)输出数据转换模块
输出数据转换模块24实现公式(3),将乘法器23输出的5*5结果按列进行转换,得到一个5*5的新矩阵。
5)通道累加模块
对于每一个输入通道,输出数据转换模块24会产生一个5*5的矩阵,通道累加模块25将所有输入通道输出的矩阵进行加和,得到最终的卷积结果。
本发明所提出的计算模块3包含池化模块31、数据标准化模块32、激活函数模块33、输入选择器34和输出选择器35。计算模块3实现神经网络中除卷积层外其它层的操作,各个子模块分别对应池化层,激活函数ReLU层,Batch Normalization层。计算模块3通过输入选择器连接在处理单元阵列2后,通过输出选择器连接在输出数据缓存12中,作用是处理卷积之后的数据。其中:
1)池化模块
池化模块31执行池化操作,即求取窗口中数据的最大值或者平均值。
2)激活函数模块
激活函数模块33执行ReLU激活函数,其表达式如公式(4)所示:
f(x)=x(x>0);f(x)=0(x<=0) (4)
公式(4)中x表示ReLU激活函数的输入,即为通道累加模块25的输出结果,f表示激活函数模块33的输出。
3)数据标准化模块
数据标准化模块32将每一层的输出数据做标准化处理,将结果传送到输出数据缓存12中。
4)输入选择模块和输出选择模块
输入选择模块34选择处理单元阵列2的输出数据进行入到池化模块31、激活函数模块33或者数据标准化模块32,输出选择模块35选择将那个模块的输出数据传送到输出数据缓存12中。
本发明所提出的控制器4向输入数据缓存10、输出数据缓存12、卷积核缓存11和输入选择模块34以及输出选择模块35发送控制信号,即通知输入数据缓存、卷积核缓存何时接受外部缓存的数据,何时将数据输送到处理单元阵列中;通知输出数据缓存何时接受来自计算模块或者处理单元阵列的数据;通知输入选择模块和输出选择模块选择进行卷积神经网络哪一层的操作选择。除此之外,还有连接外部总线的slave接口,将加速器内部缓存和寄存器进行了统一编址。
本发明的性能测试如下:
卷积神经网络加速器的评估指标最主要的是资源、速度和功耗。在测试中,选取轻量级卷积神经网络ShuffleNet作为目标,将其映射至加速器上。在性能和功耗测试中,将输入数据与卷积核读入到加速器中的输入数据缓存和卷积核缓存中,统计最终输出结果的时间,结合ShuffleNet网络的复杂程度,相除即可得到加速器的速度。功耗的大小取决于实现平台,在此选用Xilinx的Zynq XC7Z102作为实现平台。加速器的资源如下表所示:
此外本发明与现有技术在的速度和功耗指标下的对比如下表:
由上表可以看出,在工作频率上虽然只有150MHz,但更具有实际意义的加速器计算速度的上,本发明达到了2137.2GOP/S远远超过了同类型对比对象,同时功耗保持在一个可以接受的范围内,单位能耗速度达到了82.39GOPS/W,也好于其他对比对象。片上缓存大小只有0.781MB。
实施例
对于速度指标,本发明的优越性来自于处理单元阵列与缓存架构的设计。首先处理单元采用Winograd卷积加速算法,例如对于5*5大小输入数据,3*3卷积核大小,步长为1的卷积操作,传统卷积需要引人入81次乘法操作,而本发表每个处理单元只需要引入25次乘法,此外处理单元阵列在卷积网络中,输入通道和输出通道都采取一定程度的并行性处理,使得卷积操作速度增快。另一方面,缓存架构有两种工作模式,在片上工作模式下,卷积神经网络中间层产生的数据不需要存储在片外,可以直接输送到下一层网络中,这是由于面向物联网轻量级的卷积神经网络模型如ShuffleNet,中间层数据量并不是很大,可以存储在片上。
对于资源和功耗指标,由于采用了Winograd卷积加速算法,大量节省了乘法器资源,每个处理单元中的模块由简单逻辑构成,处理单元粒度较大,每个处理单元可以完成一个输入通道的运算操作,所以总共只使用了20个处理单元,节省了大量资源。加速器工作频率较低,同时片上缓存较小,可以大量节省功。
Claims (2)
1.一种面向物联网领域的动态可重构卷积神经网络加速器架构,其特征在于,包括缓存架构、处理单元阵列、计算模块和控制器;其中,
缓存架构用于存储来自储外部存储器的数据或者计算过程中产生的数据,将其组织、排列后,以预设的数据结构传送到处理单元阵列中进行计算;处理单元阵列用于接收来自缓存架构的数据,进行卷积操作处理后存储在缓存架构中;计算模块用于接收来自处理单元阵列的数据,选择进行池化、标准化、或者激活函数三种操作,并将输出数据存储在缓存架构中;控制器用于向缓存架构、处理单元阵列和计算模块发送命令,并设计有外部接口,用于和外部系统进行通信;
缓存架构由输入数据缓存、卷积核缓存和输出数据缓存组成;控制器的输出端与输入数据缓存的输入端、卷积核缓存的输入端和输出数据缓存的输入端连接,输入数据缓存的输出端和卷积核缓存的输出端与处理单元阵列的输入端连接,处理单元阵列的输出端与计算模块的输入端连接,计算模块的输出端与输出数据缓存的输入端连接;
输入数据缓存由两片存储器组成,两片存储器按照“乒乓”存储的结构存储数据,输入数据缓存用于接收多输入通道的输入图像数据,将大块的图像数据转为容易处理的小块数据,利用块与块之间“行与列”的数据重合将多个输入通道的数据传送至处理单元阵列进行运算,提高数据重复利用率;卷积核数据缓存用于接收多输入通道的卷积核数据,并同时将多个输入通道的数据传送至处理单元阵列进行运算;输出数据缓存用于存储来自计算模块或者处理单元阵列中产生的中间数据,在缓存架构片上处理模式下,通过控制器将输出数据再返回到处理单元阵列或者计算模块进行下一批次处理;输出数据缓存由多组存储器并列而成,数量根据所要实现的卷积神经网络而定;
处理单元阵列由20个处理单元组成,每个处理单元均由输入数据转换模块、卷积核转换模块、乘法器、输出数据转换模块和通道累加模块组成;
输入数据转换模块用于将来自输入数据缓存的多通道输入图像数据在多个处理单元上同时进行转换;卷积核转换模块用于将来自卷积核缓存的多通道卷积核数据在多个处理单元上同时进行转换;乘法器用于将来自输入数据转换模块和卷积核转换模块的输出数据进行相乘;输出数据转换模块用于将乘法器的输出结果进行转换;通道累加模块用于将多通道数据进行加和得到一个通道的数据;
处理单元阵列接收来自输入数据缓存、输出数据缓存或者卷积核缓存的数据,输出数据传向输出数据缓存;每个处理单元实现窗口为5*5的Winograd算法,其中Winograd算法的公式表示如下:
U=GFGT (1)
V=BTInB (2)
Out=AT[U·V]A (3)
其中,公式(1)表示卷积核的转换,F矩阵为卷积核,G为转换矩阵,U为卷积核转换后的结果;公式(2)表示输入数据的转换,In矩阵表示输入数据,B为转换矩阵,V为输入数据转换后的结果;公式(3)表示输出数据转换,A为转换矩阵,Out为最终的输出结果;
计算模块由池化模块、激活函数模块、数据标准化模块、输入选择模块和输出选择模块组成;
控制器的输出端与输入选择模块的输入端和输出选择模块的输入端连接,且处理单元阵列的输出端与输入选择模块的输入端连接,输入选择模块的输出端与池化模块的输入端、激活函数模块的输入端和数据标准化模块的输入端连接,池化模块的输出端、激活函数模块的输出端和数据标准化模块的输出端与输入选择模块的输入端连接,输入选择模块的输出端与输出数据缓存的输入端连接;
输入选择模块用于选择对来自处理单元阵列的数据进行池化、标准化、或者激活函数操作;池化模块用于实现池化操作;数据标准化模块用于实现标准化操作;激活函数模块用于实现ReLU激活函数操作;输出选择模块用于选择将池化模块、数据标准化模块或激活函数模块中的一个作为结果输出到缓存架构中。
2.根据权利要求1所述的一种面向物联网领域的动态可重构卷积神经网络加速器架构,其特征在于,激活函数模块执行ReLU激活函数,其表达式如公式(4)所示:
f(x)=x(x>0);f(x)=0(x<=0) (4)
其中,公式(4)中x表示ReLU激活函数的输入,即为通道累加模块的输出结果,f表示激活函数模块的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811149741.0A CN109447241B (zh) | 2018-09-29 | 2018-09-29 | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811149741.0A CN109447241B (zh) | 2018-09-29 | 2018-09-29 | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109447241A CN109447241A (zh) | 2019-03-08 |
CN109447241B true CN109447241B (zh) | 2022-02-22 |
Family
ID=65546038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811149741.0A Active CN109447241B (zh) | 2018-09-29 | 2018-09-29 | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109447241B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276444B (zh) * | 2019-06-04 | 2021-05-07 | 北京清微智能科技有限公司 | 基于卷积神经网络的图像处理方法及装置 |
CN110288086B (zh) * | 2019-06-13 | 2023-07-21 | 天津大学 | 一种基于Winograd的可配置卷积阵列加速器结构 |
US11100016B2 (en) * | 2019-07-08 | 2021-08-24 | SK Hynix Inc. | Data storage device, data processing system, and acceleration device therefor |
CN110225067B (zh) * | 2019-07-24 | 2021-08-24 | 上海戎磐网络科技有限公司 | 一种物联网安全预警系统 |
CN110516801B (zh) * | 2019-08-05 | 2022-04-22 | 西安交通大学 | 一种高吞吐率的动态可重构卷积神经网络加速器 |
CN112766471B (zh) * | 2019-11-01 | 2024-03-29 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
CN111522776B (zh) | 2020-04-27 | 2022-04-05 | 西安交通大学 | 一种计算架构 |
CN114064331B (zh) * | 2020-07-29 | 2023-01-03 | 中国科学院深圳先进技术研究院 | 容错计算方法及其容错计算装置、存储介质和计算机设备 |
CN112862091B (zh) * | 2021-01-26 | 2022-09-27 | 合肥工业大学 | 一种基于快速卷积的资源复用型神经网络硬件加速电路 |
EP4080354A1 (en) | 2021-04-23 | 2022-10-26 | Nxp B.V. | Processor and instruction set |
CN115276642A (zh) | 2021-04-29 | 2022-11-01 | 恩智浦美国有限公司 | 具有电平转换器的光耦合器电路 |
CN115329951B (zh) * | 2022-09-13 | 2023-09-15 | 北京工商大学 | 一种用于卷积神经网络快速卷积运算的fpga架构 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及系统 |
CN108229656A (zh) * | 2016-12-14 | 2018-06-29 | 上海寒武纪信息科技有限公司 | 神经网络运算装置及方法 |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
CN108537331A (zh) * | 2018-04-04 | 2018-09-14 | 清华大学 | 一种基于异步逻辑的可重构卷积神经网络加速电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621486B2 (en) * | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
-
2018
- 2018-09-29 CN CN201811149741.0A patent/CN109447241B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN108229656A (zh) * | 2016-12-14 | 2018-06-29 | 上海寒武纪信息科技有限公司 | 神经网络运算装置及方法 |
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及系统 |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
CN108537331A (zh) * | 2018-04-04 | 2018-09-14 | 清华大学 | 一种基于异步逻辑的可重构卷积神经网络加速电路 |
Non-Patent Citations (1)
Title |
---|
一种高性能CNN专用卷积加速器的设计与实现;鲍贤亮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180815;论文第15-25页、第41-46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109447241A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109447241B (zh) | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 | |
CN110516801B (zh) | 一种高吞吐率的动态可重构卷积神经网络加速器 | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
CN110390385B (zh) | 一种基于bnrp的可配置并行通用卷积神经网络加速器 | |
CN108108809B (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
CN111445012B (zh) | 一种基于fpga的分组卷积硬件加速器及其方法 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN110348574B (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
CN110852428B (zh) | 基于fpga的神经网络加速方法和加速器 | |
CN109948774B (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN111860773B (zh) | 处理装置和用于信息处理的方法 | |
CN112418396B (zh) | 一种基于fpga的稀疏激活感知型神经网络加速器 | |
CN114781632B (zh) | 基于动态可重构脉动张量运算引擎的深度神经网络加速器 | |
CN110705702A (zh) | 一种动态可扩展的卷积神经网络加速器 | |
CN113033794A (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN110598844A (zh) | 一种基于fpga的并行卷积神经网络加速器及加速方法 | |
CN115688892A (zh) | 一种稀疏权重Fused-Layer卷积加速器结构的FPGA实现方法 | |
CN112346704B (zh) | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 | |
US20230128421A1 (en) | Neural network accelerator | |
CN117632844A (zh) | 一种可重构ai算法硬件加速器 | |
Wan et al. | ADS-CNN: Adaptive Dataflow Scheduling for lightweight CNN accelerator on FPGAs | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN115081600A (zh) | 执行Winograd卷积的变换单元、集成电路装置及板卡 |
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 |