CN112257859A - 特征数据处理方法及装置、设备、存储介质 - Google Patents
特征数据处理方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN112257859A CN112257859A CN202011189428.7A CN202011189428A CN112257859A CN 112257859 A CN112257859 A CN 112257859A CN 202011189428 A CN202011189428 A CN 202011189428A CN 112257859 A CN112257859 A CN 112257859A
- Authority
- CN
- China
- Prior art keywords
- data
- processing unit
- buffer memory
- predetermined
- characteristic data
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title description 9
- 238000012545 processing Methods 0.000 claims abstract description 259
- 230000015654 memory Effects 0.000 claims abstract description 153
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 12
- 230000036961 partial effect Effects 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 9
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 abstract description 33
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000013527 convolutional neural network Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5012—Processor sets
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
公开了一种特征数据处理方法及装置。该方法包括:将第一输入特征数据和第二输入特征数据分别传送给第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据;通过所述第一处理单元对所述第一输入特征数据执行第一操作,生成第一输出特征数据;将所述第一输出特征数据中的第一预定数据存储到至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器;以及将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。通过减少大量的冗余计算,高效地实现较大数据量的特征数据的神经网络操作,提高了多PE架构的神经网络加速器的处理效率。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及一种特征数据处理方法及装置、设备、存储介质。
背景技术
基于卷积神经网络的深度学习技术已经被广泛地应用于图像识别、视频分析、自然语言处理、辅助驾驶等不同的领域。为了高效地执行卷积神经网络中的运算,神经网络加速器多采用多处理单元(PE)或者多核的架构。如何高效的利用多PE或多核来提高运算效率是一个重要的问题。
发明内容
现有技术中,在多处理单元架构下,可以将待处理的图像等数据进行分块处理,每个处理单元PE来单独计算一部分数据,这样会导致实际处理中需要增加很多的冗余计算量。为解决多PE架构下数据拆分带来的冗余计算问题,本公开实施例期望提供一种新的特征数据处理方法及装置、设备、存储介质。
根据本公开的一个方面,提供了一种特征数据的处理方法,包括:
将第一输入特征数据和第二输入特征数据分别传送给第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据;
通过所述第一处理单元对所述第一输入特征数据执行第一操作,生成第一输出特征数据;
将所述第一输出特征数据中的第一预定数据存储到至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器;以及
将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。
根据本公开的另一方面,提供了一种特征数据的处理装置,包括:
第一处理单元和第二处理单元;
至少一个缓冲存储器;以及
控制单元,被配置为:将第一输入特征数据和第二输入特征数据分别传送到第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据;
所述第一处理单元被配置为:对所述第一输入特征数据执行第一操作,生成第一输出特征数据;
所述控制单元还被配置为:将所述第一输出特征数据中的第一预定数据存储到所述至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器;以及将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。
根据本公开的另一方面,提供了电子设备,包括:一个或多个处理器;以及存储器,其存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行上述特征数据的处理方法。
另外,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行上述特征数据处理方法的各步骤。
通过根据本公开的示例的方法和/或装置,在多个输入特征数据之间存在交叠数据时,只需对这部分交叠数据执行一次运算,能够在神经网络加速器针对例如拆分数据执行神经网络运算时有效地减少大量的冗余计算,高效地实现较大数据量的特征数据的神经网络操作。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例的多PE架构的示意框图;
图2是本公开一示例性实施例的特征数据的处理方法的流程图;
图3是本公开一示例性实施例的对输入特征数据进行拆分获得子数据块的示例;
图4是本公开一示例性实施例的针对拆分的输入特征数据执行卷积神经网络运算操作的流程示意图;
图5是根据本公开一实施例的共享缓冲存储器在神经网络加速器中的配置示意图;
图6是根据本公开一实施例的共享缓冲存储器在神经网络加速器中的另一配置示意图;
图7是根据本公开一实施例的共享缓冲存储器在神经网络加速器中的又一配置示意图;
图8是根据本公开一实施例的将预定数据存储到共享缓冲存储器的流程图;
图9是本公开一实施例的将预定数据存储到共享缓冲存储器的分配缓存区域的示例;
图10是本公开一示例性实施例提供的特征数据处理装置;
图11是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
卷积神经网络是一种具有多层结构的深度学习模型。在卷积神经网络的每个层中,针对该层的输入特征数据,使用与该层相关的参数(例如,卷积参数等),执行与该层相关的运算(例如,卷积运算等),并将所获得的输出特征数据作为下一层的输入特征数据提供给下一层以便进一步处理,或者在该层已经是卷积神经网络的最后一层的情况下,将所获得的输出特征数据作为卷积神经网络的最后处理结果输出。
特征数据也可以被称为特征图,其可以被视为具有一定的宽度和高度的数据块。例如,在特征数据或特征图为图像的情况下,可以分别将该图像中的包含像素值的列数和行数视为特征数据或特征图的宽度和高度。
卷积神经网络处理的实际特征数据通常很大,例如,具有1280*720的分辨率的彩色图片通常需要至少2.6MB(兆字节)的存储空间。相应地,对其进行的卷积运算所涉及的数据量(包括特征数据及相关参数)也较大。为了提高处理效率,可采用多处理单元(PE)或多核架构的神经网络加速器来对这些大尺寸的数据等进行处理。
例如,在图1示出的应用于本公开的实施例的卷积神经网络加速器的示例中,卷积神经网络加速器可以包括片外存储器DDR以及2个核Core1和Core2,每个核包括四个卷积处理单元(例如,核Core1包括处理单元PE1至PE4),每个处理单元PEk(k为大于或等于1且小于或等于4的任一整数)包括用于缓存运算参数的片上存储器(例如,静态随机存取存储器SRAM),其可与片外存储器DDR交换特征数据。
例如,针对大尺寸的图片数据,可以将卷积神经网络的某个或某些指定层要处理的特征数据拆分成多个子特征数据,每个处理单元PE单独计算图像中的一个子特征数据,,从而可利用多个处理单元并行计算,从而提高整体的运算效率进而减小对数据的处理时间,实现神经网络加速器在低延迟场景下的应用。
然而,为了计算得到所需数据,即确保不改变卷积神经网络的一层的输出结果,可能需要对上一层特征数据进行拆分时使得各个子特征数据中的相邻子特征数据之间存在交叠(以下称之为“交叠数据”)。在对该上一层执行卷积等神经网络运算时,两个或甚至更多个处理单元PE都将对这部分交叠数据进行处理,这将导致实际处理中需要增加很多的冗余计算量,并影响卷积神经网络中的运算的执行效率。
为此,在根据本公开的实施例的技术方案中,对于存在交叠数据的第一输入特征数据和第二输入特征数据,只需对交叠数据进行一次运算处理。例如,利用第一处理单元对第一输入特征数据进行运算处理后,使用缓冲存储器将其中对交叠数据的处理结果传送到处理第二输入特征数据的第二处理单元,从而省去了第二处理单元对该交叠数据的运算,减少了在对特征数据进行拆分时所引起的冗余计算量,提高多PE架构下的神经网络加速器的运算效率。
本公开实施例适用于各类场景。一些实施例中,本公开实施例适用于需要大幅降低运算量以降低延迟的场景。在至少一种实现方式中,本公开实施例可应用于视频中的图像识别、音频中的声线识别等场景。
示例性方法
图2示出本公开一示例性实施例提供的特征数据的处理方法200的流程图。
如图2所示,该示例方法200可以包括:
步骤S210,将第一输入特征数据和第二输入特征数据分别传送给第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据。
步骤S220,通过所述第一处理单元对所述第一输入特征数据执行第一操作,生成第一输出特征数据。
步骤S230,将所述第一输出特征数据中的第一预定数据存储到至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器。
步骤S240,将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。
下面描述示例方法200的各个步骤的细节。
在示例方法200的步骤S210中,可以先选择卷积神经网络中的一个指定层(例如,卷积神经网络的输入层或中间的任一一层),并将该层的输入特征数据拆分成多个子数据块。
通常,针对实际应用需求,可以事先设计出合适的卷积神经网络,包括预先确定卷积神经网络的层数、在每层所要执行的运算及相关参数等。这样,对于要提供给一个卷积神经网络的任何给定的输入特征数据,可以在执行实际的卷积神经网络中的运算之前,预先确定在该卷积神经网络的每一层中的输入特征数据的宽度和高度以及该层的运算所涉及的数量所需的存储空间的量等。由此,可以根据例如神经网络加速器的处理单元的数量或高速存储器的容量等参数确定对指定层进行拆分的子数据块的期望数量,使得神经网络加速器的多个处理单元能高效地对输入特征数据进行并行处理。在此基础上,可以采用任何适当的拆分方式,确定指定层的期望数量的子数据块中的每个子数据块的宽度、高度及在特征数据中的位置。
可以理解,通过“拆分”所获得的每个子数据块均对应于原始的特征数据中的某一块区域中的数据,并且每个子数据块彼此不完全相同,同时可能相邻的两个子数据块之间可能存在交叠的数据。在确定的拆分方式下,可以预先确定指定层中的相邻的子数据块之间在宽度方向上的交叠部分的宽度以及在高度方向上的交叠部分的高度。
例如,图3示出了本公开一示例性实施例的对输入特征数据进行拆分获得子数据块的示例。如图3所示,特征数据FD0的大小为20×20(宽度×高度,即宽度和高度分别为20和20),其被拆分成四个子数据块FD01、FD02、FD03和FD04,四个子数据块的大小分别为16×16、19×16、16×19和19×19。可以看出,各个相邻的子数据块之间存在交叠部分,例如,子数据块FD01和子数据块FD02的交叠部分的大小为15×16,子数据块FD01和子数据块FD03的交叠部分的大小为16×15,子数据FD02和子数据块FD04的交叠部分的大小为19×15,子数据块FD03和子数据块FD04的交叠部分的大小为15×19。
应当理解,图3中所示的将FD0拆分成4个子数据块的拆分方式、以及各子数据块的布局位置、宽度和高度仅为示例。本公开并不对具体的拆分方式进行限定,而是可以选择其他任何拆分方式,并且相应地预先确定每个子数据块的布局位置、宽度和高度。
同时,对于一个设计出来的卷积神经网络,每一层所使用的相关参数的核的宽度和高度、每一层中的相关参数的核在宽度和高度方向上的步长以及对每一层数据的填充方式可以是已知的。因此,在确定了一层的拆分方式后,可以前向或反向地推导每一层的输入特征数据的每个子数据块的宽度和高度,以及每一层的拆分的各子数据块中的相邻子数据块的交叠部分或交叠数据的宽度、高度及其在特征数据中的位置等数据。
在对特征数据进行拆分后,可以使用所获得的多个子数据替代原始的特征数据,并将所获得的每个子数据分别作为输入特征数据提供给神经网络加速器中的处理单元进行运算。结合图1和图3,例如,可以将子数据块FD01作为第一输入特征数据传送给第一处理单元PE1,比如,可将第一输入特征数据从片外存储器读取到第一处理单元PE1的片上存储器中。同理,可将子数据块FD02作为第二输入特征数据传送给第二处理单元PE2,将子数据块FD03作为第三输入特征数据传送给第三处理单元PE3,将子数据块FD04作为第四输入特征数据传送给第四处理单元PE4。
在各处理单元获得相应的处理数据后,示例方法200继续到步骤S220,通过第一处理单元对第一输入特征数据执行卷积、池化等第一操作,生成第一输出特征数据。
图4示出了根据本公开一实施例的针对输入特征数据执行卷积神经网络运算操作的流程示意图。图4示例性示出了卷积神经网络中的连续的三个层L0至L2。其中,子数据块FD01、FD02、FD03、FD04是L0层的输入特征数据(图中只示出FD01、FD02)。例如,可通过第一处理单元PE1对第一输入特征数据FD01执行各种运算操作,例如,执行卷积操作等以生成第一输出特征数据FD11。
针对神经网络的不同层所执行的操作可有所不同,例如第一操作还可为累加操作、乘法操作、池化操作等,在残差卷积神经网络的情况下,所执行的运算还可以包括对输出特征数据FD11与在该层之前的另外的一层或多层的输出特征数据执行逐点加运算。
在一实施例中,可以并行地对与第一输入特征数据不相邻的其它输入特征数据利用相应的处理单元进行神经网络运算,以提高神经网络加速器的执行效率。
在另一实施例中,可以并行地对与第一输入特征数据不存在交叠数据或者交叠数据较少的其它输入特征数据进行处理。例如,如前所述,可预先确定指定层中的相邻的子数据块之间在宽度方向上的交叠部分的宽度以及在高度方向上的交叠部分的高度,如果该宽度或高度小于一预设值,则认为相邻的子数据块之间的交叠数据较少,此时可由各自的处理单元对相邻的两个子数据块进行并行运算,从而可适当减少数据搬运,提高神经网络加速器的执行效率。
在确定第一输入特征数据和第二输入特征数据之间存在交叠数据,且第一处理单元对第一输入特征数据执行第一操作得到第一输出特征数据之后,步骤S230中,可确定第一处理单元对于交叠数据的部分或全部执行相应第一操作所生成的预定数据,并将该预定数据存储到至少一个缓冲存储器中的第一缓冲存储器中。
如前所述,对于一个设计出来的卷积神经网络,在获知其中一层的输入特征数据的交叠部分后,可预先确定其它各层的各子数据块中的相邻子数据块的交叠部分的宽度、高度及其在特征数据中的位置等数据。
结合图3和图4,假设第二处理单元PE2对第二输入特征数据FD02执行第二操作(例如,可与第一操作相同)能得到第二输出特征数据FD12。在确定第一输入特征数据FD01、第二输入特征数据FD02的交叠部分的情况下,也能预先确定第一输出特征数据FD11和第二输出特征数据FD12的交叠部分的宽度、高度及其在第一输出特征数据FD11和第二输出特征数据FD12中的位置。因此,在第一处理单元计算得到第一输出特征数据FD11之后,能够确定出第一输出特征数据FD11和第二输出特征数据FD12的交叠部分的数据。换句话说,上述“预定数据”也可以理解为第一输出特征数据与第二处理单元对第二输入特征数据执行第二操作所预期产生的第二输出特征数据之间的交叠数据。
确定出该预定数据之后,可将其存储到第一处理单元PE1和第二处理单元PE2所共享的缓冲存储器中。例如,可将该预定数据存储到设置在卷积神经网络加速器中的缓冲存储器的预定存储空间中,缓冲存储器可以是高速缓冲存储器或静态随机存取存储器,其数据存取速率可以与处理单元PE的片上存储器的数据存取速率相匹配。
之后,在步骤S240中,将第一缓冲存储器中的第一预定数据传送到第二处理单元。
例如,第二处理单元PE2可以从共享的缓冲存储器的预定存储空间中将预定数据读取到第二处理单元PE2的片上存储器中。由此,第二处理单元PE2可直接获取该部分数据而省去了为获得该部分数据而需要进行的冗余计算,从而提高了神经网络加速器的执行效率。
在一实施例中,结合图3和图4,在确定了第一输入特征数据FD01和第二输入特征数据FD02的交叠数据在第一输入特征数据中的位置后,可以预先规划第一处理单元PE1对第一输入特征数据FD01执行第一层L0的操作。例如,可先通过第一处理单元PE1对第一输入特征数据FD01中的交叠数据执行第一操作(例如,卷积操作)以生成第一预定数据,再通过第一处理单元PE1对除交叠数据之外的第一输入特征数据执行同样的第一操作以生成第一输出部分特征数据。至少基于得到的第一预定数据与第一输出部分特征数据,第一处理单元PE1可以确定出第一输出特征数据FD11。例如,可以根据第一预定数据和第一输出部分特征数据在第一输出特征数据FD11中的位置而将两者进行“拼接”组合获得第一输出特征数据FD11。通过先对交叠数据进行处理,并在处理得到第一输出特征数据FD11之前或同时将第一预定数据后经由缓冲存储器传送至第二处理单元PE2,可以消除或减小预定数据在第一处理单元PE1和第二处理单元PE2之间传送而对神经网络加速器执行效率造成的影响。
在一实施例中,为了确保第二处理单元PE2能够获得预期的输出特征数据FD12,在第二处理单元PE2从缓冲存储器读取预定数据之前、之后或同时,可先对除第一输入特征数据FD01和第二输入特征数据FD02的交叠数据之外的第二输入特征数据执行第二操作,生成第二输出部分特征数据。至少基于获得的第二输出部分特征数据与第一预定数据,第二处理单元PE2可确定第二输出特征数据。例如,可以根据第一预定数据和第二输出部分特征数据在第二输出特征数据FD12中的位置而将两者进行“拼接”组合获得第二输出特征数据。
与第一处理单元PE1对第一输入特征数据FD01执行的第一操作相同,第二处理单元PE2对交叠数据之外的第二输入特征数据执行的第二操作可为各种运算操作,例如,卷积操作、累加操作、乘法操作、池化操作等。
根据本公开的实施例,第二处理单元PE2只需对第二输入特征数据FD02的部分进行处理,而不需要对整个第二输入特征数据FD02进行处理,提高了第二处理单元PE2的运算效率。同时,结合图3和图4,第二输入特征数据FD02(大小为19×16)大于第一输入特征数据FD01(大小为16×16),即通常而言,第二处理单元PE2对第二输入特征数据FD02的处理时间将大于第一处理单元PE1对第一输入特征数据FD01的处理时间。因此,在省去对交叠数据的运算后,可减小第二处理单元PE2对第二输入特征数据FD02的处理时间,如此可进一步提高多PE架构神经网络加速器的运算并行度。
图5示出了根据本公开一实施例的共享缓冲存储器在神经网络加速器中的配置示意图。如图5所示,对于n个(n为大于或等于2的整数)处理单元PE1-PEn可配置n-1缓冲存储器BU1-BUn-1,每个缓冲存储器可配置有识别ID,且耦接有两个处理单元,例如,缓冲存储器BU1耦接有第一处理单元PE1和第二处理单元PE2,缓冲存储器BU2耦接有第二处理单元PE2和第三处理单元PE3。处理单元和缓冲存储器之间的数据传输为单向传输,例如,缓冲存储器BU1可将第一处理单元PE1对输入特征数据FD01处理得到的输出特征数据FD11中的预定数据(即输出特征数据FD11和第二处理单元PE2对输入特征数据FD02处理得到的输出特征数据FD12之间的交叠数据)从第一处理单元PE1传送至第二处理单元PE2,缓冲存储器BU2可将第二处理单元PE2对输入特征数据FD02处理得到的输出特征数据FD12中的预定数据从第二处理单元PE2传送至第三处理单元PE3,并依次类推。
例如,结合图3-4,在第一处理单元PE1经处理得到第一预定数据后,可将该预定数据先存储到缓冲存储器BU1的预定空间,之后,第二处理单元PE2可从缓冲存储器BU1的该预定空间中直接读取预定数据,省去了对交叠数据的重复计算,从而提高了神经网络处理器的执行效率。
图6示出了根据本公开一实施例的共享缓冲存储器在神经网络加速器中的另一配置示意图。不同于图5中的处理单元和缓冲存储器的串联结构,如图6所示,多个处理单元和多个缓冲存储器呈网格状结构布置,每个缓冲存储器耦接有两个处理单元,例如,BU1耦接有第一处理单元PE1和第二处理单元PE2,同时,BU2耦接有第一处理单元PE1和第三处理单元PE3。处理单元和缓冲存储器之间的数据传输为单向传输,例如,结合图3-4,缓冲存储器BU1可将第一处理单元PE1的输出特征数据中的第一预定数据从第一处理单元PE1传送到第二处理单元PE2,同时,缓冲存储器BU2可将第一处理单元PE1的输出特征数据中的第二预定数据从第一处理单元PE1传送到第三处理单元PE3。
在一实施例中,图6示出的缓冲存储器的配置方式,可以适用于图3示出的输入特征数据的处理。结合图3,特征数据FD0被拆分成四个子数据块FD01、FD02、FD03和FD04,例如,可将子数据块FD01作为第一输入特征数据传送给第一处理单元PE1,可将子数据块FD02作为第二输入特征数据传送给第二处理单元PE2,将子数据块FD03作为第三输入特征数据传送给第三处理单元PE3,将子数据块FD04作为第四输入特征数据传送给第四处理单元PE4。其中,子数据块FD01和子数据块FD02存在交叠数据(以下称之为第一交叠数据),子数据块FD01和子数据块FD03也存在交叠数据(以下称之为第二交叠数据)。
如前所述,可以预期第一处理单元PE1对第一输入特征数据FD01处理得到的第一输出特征数据和第二处理单元PE2对第二输入特征数据FD02处理得到的第二输出特征数据存在相同的第一预定数据,因此,可将第一处理单元PE1对第一输入特征数据FD01处理得到的第一输出特征数据中的第一预定数据存储到第一处理单元PE1和第二处理单元PE2所共享的缓冲存储器BU1中。
同理,可以预期第一处理单元PE1对第一输入特征数据FD01处理得到的第一输出特征数据和第三处理单元PE3对第三输入特征数据FD03处理得到的第三输出特征数据也将存在相同的第二预定数据,因此,可将第一处理单元PE1对第一输入特征数据FD01处理得到的第一输出特征数据中的第二预定数据存储到第一处理单元PE1和第三处理单元PE3所共享的缓冲存储器BU2中。之后,可将缓冲存储器BU2中的第二预定数据传送到第三处理单元PE3。由此,第三处理单元PE3可直接获取该部分数据而省去了为获得该部分数据而需要进行的冗余计算,从而提高了神经网络加速器的执行效率。
应当注意,虽然图6只示出了2×2(横向和纵向上的处理单元的数量均为2)的处理单元的配置结构,但本公开不限于此,任何m×p(m、p均为大于或等于2的整数)的配置结构均可应用于本公开。同时,虽然以上结合图3所示的特征数据被拆分为2×2(宽度和高度方向的拆分数量均为2)的情形对图6所示的配置结构进行了阐释,但本公开不限于此,其可应用于被拆分为m*l×p*j(宽度和高度方向的拆分数量分别为m*l和p*j,l、j均为大于或等于1的整数)的特征数据的处理。
图7示出了根据本公开一实施例的共享缓冲存储器在神经网络加速器中的又一配置示意图。不同于图5、图6中设置有多个缓冲存储器,如图7所示,只配置有一个用于传送预定数据的缓冲存储器BU,第一处理单元PE1、第二处理单元PE2等所有处理单元之间共享缓冲存储器BU,且缓冲存储器BU与所有处理单元的数据传输配置为双向传输。也就是说,任一处理单元PEk(k为1-n之间的整数)既可以将预定数据存储到缓冲存储器BU中,处理单元PEk也可以从缓冲存储器BU中读取预定数据。图7所示的配置方式降低了硬件成本,且可以适用于任意拆分方式的特征数据的处理。
例如,结合图3-4,在第一处理单元PE1经处理得到第一预定数据、第二预定数据后,可将该预定数据先存储到缓冲存储器BU的预定空间,之后,第二处理单元PE2可从缓冲存储器BU的预定空间中直接读取第一预定数据,第三处理单元PE3可从缓冲存储器BU的预定空间中直接读取第二预定数据,从而可省去对交叠数据的重复计算,从而提高了神经网络处理器的执行效率。
以上结合图5-7示例性地说明了利用多种缓冲存储器的配置来实现预定数据在不同处理单元之间进行传送。下面对预定数据在不同处理单元之间传送的示例性方式进行描述。图8示出了根据本公开一实施例的将预定数据存储到共享缓冲存储器的流程图。
如图8所示,将第一预定数据存储到第一缓冲存储器中的步骤S230可以包括:
在步骤S231中,将第一预定数据存储到第一处理单元的片上存储器中的预定地址对应的第一预定空间。
如前分析,在特征数据的拆分方式以及卷积神经网络均预先确定的情况下,可以通过计算确定出第一预定数据的数据量,因此可以确定出其占用的处理单元的片上存储器的预定空间。例如,可通过预定数据在处理单元中的存放地址来标识该预定数据。
在步骤S232中,根据第一预定数据的字节长度将第一预定数据写入第一缓冲存储器的第二预定空间。
例如,在确定第一预定数据的数据量后,可以根据其字节长度而为其分配在第一缓冲存储器的相应预定空间,由此,可基于第一预定数据在处理单元中的存放地址读取该预定数据并将该预定数据写入缓冲存储器的预定空间中。
图9示出了根据本公开一实施例的将预定数据存储到共享缓冲存储器的分配缓存区域的示例。
如图9中的(a)所示,同时结合图3-4,第一处理单元PE1执行相关卷积神经网络运算处理后可获得第一预定数据,并将其存储在第一处理单元PE1的片上存储器的预定空间;接着,如(b)所示,可根据第一预定数据的字节长度(对应于其占用的存储空间)将第一预定数据写入第一缓冲存储器的预定空间中。
在一实施方式中,如图9所示,第一预定数据在第一缓冲存储器的存放空间可通过其在第一缓冲存储器的地址偏移以及其字节长度来确定,相应地,如(c)所示,可根据第一预定数据在第一缓冲存储器中的地址偏移和第一预定数据的字节长度,将第一预定数据读取到第二处理单元PE2中。
根据本公开的实施例的对预定数据进行读取和/或写入的方法可以应用于卷积神经网络加速器中的主控制器,例如,由卷积神经网络加速器中的主控制器单独地或者在诸如定时器、中断控制器、存储控制器等其他部件的协助下执行。相应地,对预定数据进行读取和/或写入的每个步骤或子步骤均可对应于能够由本公开的实施例的卷积神经网络加速器中的主控制器执行一个或多个程序指令。也就是说,每个步骤或子步骤的处理中所涉及的数据可以对应于或转换成一个或多个指令的参数。
在一实施例中,针对图5或图6所示的缓冲存储器的配置方式,可设置一组指令参数来实现将预定数据在各处理单元PE1-PEn和各缓冲存储器BU1-BUn-1之间传送。例如,该指令参数具有如下配置:{buffer id;offset;size;pe address},其中,buffer id表示各缓冲存储器的识别ID,offset表示预定数据在缓冲存储器中的地址偏移,size表示预定数据的字节长度,pe address表示预定数据在处理单元的片上存储器中的存放地址。
例如,结合图5,在第一处理单元PE1将预定数据存储到缓冲存储器BU1时,可根据预定数据的字节长度生成相应指令以执行将该数据写入缓冲存储器BU1的操作,其中,上述指令参数pe address表示预定数据在第一处理单元PE1的存放地址;在将预定数据从缓冲存储器BU1传送到第二处理单元PE2时,也可生成相应指令以执行从缓冲存储器BU1读取该预定数据的操作,其中,上述指令参数pe address表示预定数据在第二处理单元PE2的存放地址。
在另一实施例中,针对图7所示的缓冲存储器的配置方式,可设置一组指令参数来实现将预定数据在各处理单元PE1-PEn和缓冲存储器BU之间传送。例如,该指令参数具有如下配置:{offset;size;pe address},其中,指令参数offset、size、pe address,以及相应的指令操作与前述针对图5、图6的描述相同,此处不再赘述。
需要说明的是,尽管在各个实施例中分别对根据本公开实施例的特征数据处理方法的各步骤进行了说明,但是不应理解为其为本公开能实施的全部实施方式,相反这些实施例中的一个或多个、全部或部分之间可以相互结合,同时这些实施例还可以与本文描述的其他特征进行结合,这些实施方式均不脱离本公开的发明原理并可实现辅助的技术效果。
示例性装置
图10是本公开一示例性实施例提供的特征数据处理装置。如图10所示,故障处理装置300包括:
第一处理单元310和第二处理单元320;
至少一个缓冲存储器330;以及
控制单元340,其可被配置为:
将第一输入特征数据和第二输入特征数据分别传送到第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据;
第一处理单元310可被配置为:对所述第一输入特征数据执行第一操作,生成第一输出特征数据;
控制单元340还可被配置为:将所述第一输出特征数据中的第一预定数据存储到所述至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器;将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。
在一个示例中,第一处理单元310可被配置为:对所述第一输入特征数据中的所述交叠数据执行第一操作以生成所述第一预定数据;对除所述交叠数据之外的所述第一输入特征数据执行第一操作以生成第一输出部分特征数据;以及基于所述第一预定数据与所述第一输出部分特征数据,确定所述第一输出特征数据。
在一个示例中,第二处理单元320可被配置为:对除所述交叠数据之外的第二输入特征数据执行第二操作,生成第二输出部分特征数据;以及基于所述第二输出部分特征数据与所述第一预定数据,确定第二输出特征数据。
在一个示例中,第一缓冲存储器可被配置为在第一处理单元310和第二处理单元320之间共享,且第一缓冲存储器与第一处理单元310和第二处理单元320之间的数据传输配置为单向或双向传输。
在一个示例中,至少一个缓冲存储器330可配置为多个缓冲存储器,每个缓冲存储器在每两个处理单元之间共享,缓冲存储器与处理单元之间的数据传输配置为单向传输。
在一个示例中,控制单元340还可被配置为:将所述第一预定数据存储到所述第一处理单元的片上存储器中的预定地址对应的第一预定空间;以及根据所述第一预定数据的字节长度将所述第一预定数据写入所述第一缓冲存储器的第二预定空间。
在一个示例中,控制单元340还可被配置为:根据所述第一预定数据在所述第一缓冲存储器中的地址偏移和所述第一预定数据的字节长度,将所述第一预定数据读取到所述第二处理单元。
在一个示例中,控制单元340还被配置为:将第一输出特征数据中的第二预定数据存储到所述至少一个缓冲存储器中的第二缓冲存储器中;将所述第二缓冲存储器中的所述第二预定数据传送到第三处理单元;其中,所述第一输入特征数据和传送给所述第三处理单元的第三输入特征数据存在第二交叠数据,且所述第二预定数据对应于所述第一处理单元对所述第二交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第三处理单元共享所述第二缓冲存储器。
示例性电子设备
除了上述方法和装置意外,本公开的实施例还可以是电子设备,该电子设备包括:一个或多个处理器;以及存储器,其存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的特征数据理方法中的步骤。
本公开实施例的上述电子设备可适用于利用多PE架构的神经网络加速器控制的各种设备,例如自动驾驶车辆、安防机器人等,其可减少大量的冗余计算,高效地实现较大数据量的特征数据的神经网络操作,提高了神经网络加速器的处理效率。
图11图示了根据本公开实施例的电子设备的框图。
如图11所示,电子设备400包括一个或多个处理器410和存储器420。
处理器400可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
存储器420可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器410可以运行所述程序指令,以实现上文所述的本公开的各个实施例的特征数据处理方法以及/或者其他期望的功能。
在一个示例中,电子设备400还可以包括:输入装置430和输出装置440,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该输入装置430可以是摄像头、激光雷达、麦克风或麦克风阵列。此外,该输入设备430还可以包括例如键盘、鼠标等等。该输出装置440可以向外部输出各种信息。该输出设备440可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图11中仅示出了该电子设备400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的特征数据处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的特征数据处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
在本文中,诸如“第一”、“第二”等不带有量词的修饰词旨在用于区分不同的数据/元件/部件/电路/模块/装置/布置,而不用于强调次序、位置关系、重要程度、有限级别等。因此,“第一输入特征数据”也可以被称为“第二输入特征数据”,同时可以将“第二输入特征数据”称为“第一输入特征数据”;例如,“第三缓冲存储器”也可以被称为“第一缓冲存储器”,并且“第四缓冲存储器”也可以被称为“第二缓冲存储器”;诸如此类。也就是说,诸如“第一”和“第二”等不带有量词的修饰词是可以互换的。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种特征数据处理方法,包括:
将第一输入特征数据和第二输入特征数据分别传送给第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据;
通过所述第一处理单元对所述第一输入特征数据执行第一操作,生成第一输出特征数据;
将所述第一输出特征数据中的第一预定数据存储到至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器;以及
将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。
2.如权利要求1所述的方法,其中,通过所述第一处理单元对所述第一输入特征数据执行第一操作包括:
通过所述第一处理单元对所述第一输入特征数据中的所述第一交叠数据执行第一操作以生成所述第一预定数据;
通过所述第一处理单元对除所述第一交叠数据之外的所述第一输入特征数据执行第一操作以生成第一输出部分特征数据;以及
基于所述第一预定数据与所述第一输出部分特征数据,确定所述第一输出特征数据。
3.如权利要求1所述的方法,还包括:
通过所述第二处理单元对除所述第一交叠数据之外的第二输入特征数据执行第二操作,生成第二输出部分特征数据;以及
基于所述第二输出部分特征数据与所述第一预定数据,确定第二输出特征数据。
4.如权利要求1所述的方法,其中,所述第一缓冲存储器在所述第一处理单元和所述第二处理单元之间共享,且所述第一缓冲存储器与所述第一处理单元和所述第二处理单元之间的数据传输配置为双向传输。
5.如权利要求4所述的方法,其中,将所述第一预定数据存储到所述第一缓冲存储器中包括:
将所述第一预定数据存储到所述第一处理单元的片上存储器中的预定地址对应的第一预定空间;以及
根据所述第一预定数据的字节长度将所述第一预定数据写入所述第一缓冲存储器的第二预定空间。
6.如权利要求5所述的方法,其中,将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元包括:
根据所述第一预定数据在所述第一缓冲存储器中的地址偏移和所述第一预定数据的字节长度,将所述第一预定数据读取到所述第二处理单元。
7.如权利要求1所述的方法,还包括:
将第一输出特征数据中的第二预定数据存储到所述至少一个缓冲存储器中的第二缓冲存储器中;
将所述第二缓冲存储器中的所述第二预定数据传送到第三处理单元;
其中,所述第一输入特征数据和传送给所述第三处理单元的第三输入特征数据存在第二交叠数据,且所述第二预定数据对应于所述第一处理单元对所述第二交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第三处理单元共享所述第二缓冲存储器。
8.一种特征数据处理装置,包括:
第一处理单元和第二处理单元;
至少一个缓冲存储器;以及
控制单元,被配置为:将第一输入特征数据和第二输入特征数据分别传送到第一处理单元和第二处理单元,其中,所述第一输入特征数据和所述第二输入特征数据存在第一交叠数据;
所述第一处理单元被配置为:对所述第一输入特征数据执行第一操作,生成第一输出特征数据;
所述控制单元还被配置为:将所述第一输出特征数据中的第一预定数据存储到所述至少一个缓冲存储器中的第一缓冲存储器中,其中,所述第一预定数据对应于所述第一处理单元对所述第一交叠数据执行所述第一操作所生成的数据,所述第一处理单元与第二处理单元共享所述第一缓冲存储器;将所述第一缓冲存储器中的所述第一预定数据传送到所述第二处理单元。
9.一种电子设备,包括:
一个或多个处理器;以及
存储器,存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行根据权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011189428.7A CN112257859B (zh) | 2020-10-30 | 2020-10-30 | 特征数据处理方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011189428.7A CN112257859B (zh) | 2020-10-30 | 2020-10-30 | 特征数据处理方法及装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112257859A true CN112257859A (zh) | 2021-01-22 |
CN112257859B CN112257859B (zh) | 2024-07-05 |
Family
ID=74267937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011189428.7A Active CN112257859B (zh) | 2020-10-30 | 2020-10-30 | 特征数据处理方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112257859B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023124428A1 (zh) * | 2021-12-30 | 2023-07-06 | 上海商汤智能科技有限公司 | 芯片、加速卡以及电子设备、数据处理方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2067217A1 (en) * | 1989-10-10 | 1991-04-11 | Gerald M. Edelman | Categorization automata employing neuronal group selection with reentry |
JPH08255143A (ja) * | 1995-03-17 | 1996-10-01 | Fujitsu Ltd | 分散メモリ型並列計算機におけるデータ更新方法およびプログラム変換装置 |
CN101681449A (zh) * | 2007-06-15 | 2010-03-24 | 佳能株式会社 | 计算处理装置及方法 |
CN108229645A (zh) * | 2017-04-28 | 2018-06-29 | 北京市商汤科技开发有限公司 | 卷积加速和计算处理方法、装置、电子设备及存储介质 |
CN108596331A (zh) * | 2018-04-16 | 2018-09-28 | 浙江大学 | 一种细胞神经网络硬件架构的优化方法 |
WO2019015541A1 (zh) * | 2017-07-20 | 2019-01-24 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN109359735A (zh) * | 2018-11-23 | 2019-02-19 | 浙江大学 | 深度神经网络硬件加速的数据输入装置与方法 |
CN109726798A (zh) * | 2018-12-27 | 2019-05-07 | 北京灵汐科技有限公司 | 一种数据处理方法及装置 |
CN110050267A (zh) * | 2016-12-09 | 2019-07-23 | 北京地平线信息技术有限公司 | 用于数据管理的系统和方法 |
CN110046702A (zh) * | 2018-01-17 | 2019-07-23 | 联发科技股份有限公司 | 神经网络计算加速器及其执行的方法 |
US20190303757A1 (en) * | 2018-03-29 | 2019-10-03 | Mediatek Inc. | Weight skipping deep learning accelerator |
GB201918880D0 (en) * | 2019-12-19 | 2020-02-05 | Advanced Risc Mach Ltd | Fault detection in neural networks |
CN111324433A (zh) * | 2020-01-22 | 2020-06-23 | 华为技术有限公司 | 一种数据计算的方法及相关设备 |
CN111382852A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、芯片及电子设备 |
-
2020
- 2020-10-30 CN CN202011189428.7A patent/CN112257859B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2067217A1 (en) * | 1989-10-10 | 1991-04-11 | Gerald M. Edelman | Categorization automata employing neuronal group selection with reentry |
JPH08255143A (ja) * | 1995-03-17 | 1996-10-01 | Fujitsu Ltd | 分散メモリ型並列計算機におけるデータ更新方法およびプログラム変換装置 |
CN101681449A (zh) * | 2007-06-15 | 2010-03-24 | 佳能株式会社 | 计算处理装置及方法 |
US20100223219A1 (en) * | 2007-06-15 | 2010-09-02 | Canon Kabushiki Kaisha | Calculation processing apparatus and method |
CN110050267A (zh) * | 2016-12-09 | 2019-07-23 | 北京地平线信息技术有限公司 | 用于数据管理的系统和方法 |
CN108229645A (zh) * | 2017-04-28 | 2018-06-29 | 北京市商汤科技开发有限公司 | 卷积加速和计算处理方法、装置、电子设备及存储介质 |
WO2019015541A1 (zh) * | 2017-07-20 | 2019-01-24 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN110046702A (zh) * | 2018-01-17 | 2019-07-23 | 联发科技股份有限公司 | 神经网络计算加速器及其执行的方法 |
US20190303757A1 (en) * | 2018-03-29 | 2019-10-03 | Mediatek Inc. | Weight skipping deep learning accelerator |
CN108596331A (zh) * | 2018-04-16 | 2018-09-28 | 浙江大学 | 一种细胞神经网络硬件架构的优化方法 |
CN109359735A (zh) * | 2018-11-23 | 2019-02-19 | 浙江大学 | 深度神经网络硬件加速的数据输入装置与方法 |
CN109726798A (zh) * | 2018-12-27 | 2019-05-07 | 北京灵汐科技有限公司 | 一种数据处理方法及装置 |
CN111382852A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、芯片及电子设备 |
GB201918880D0 (en) * | 2019-12-19 | 2020-02-05 | Advanced Risc Mach Ltd | Fault detection in neural networks |
CN111324433A (zh) * | 2020-01-22 | 2020-06-23 | 华为技术有限公司 | 一种数据计算的方法及相关设备 |
Non-Patent Citations (5)
Title |
---|
EUNJIN BAEK等: "A Multi-Neural Network Acceleration Architecture", 《2020 ACM/IEEE 47TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA)》, pages 940 - 953 * |
MOHAMED S. ABDELFATTAH等: "DLA: Compiler and FPGA Overlay for Neural Network Inference Acceleration", 《2018 28TH INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS (FPL)》, pages 411 - 418 * |
丁然等: "一种类CPU的深度学习协处理器架构", 《中国集成电路》, vol. 29, no. 4, pages 41 - 52 * |
李炳剑等: "面向卷积神经网络的FPGA加速器架构设计", 《计算机科学与探索》, vol. 14, no. 03, pages 437 - 448 * |
陈桂林等: "硬件加速神经网络综述", 《计算机研究与发展》, vol. 56, no. 02, pages 240 - 253 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023124428A1 (zh) * | 2021-12-30 | 2023-07-06 | 上海商汤智能科技有限公司 | 芯片、加速卡以及电子设备、数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112257859B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936937B2 (en) | Convolution operation device and convolution operation method | |
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
US10331997B2 (en) | Adaptive configuration of a neural network device | |
US10768894B2 (en) | Processor, information processing apparatus and operation method for processor | |
US11748599B2 (en) | Super-tiling in neural network processing to enable analytics at lower memory speed | |
KR20180012439A (ko) | 회선 신경망에서 가속기 및 이의 동작 방법 | |
CN111465943B (zh) | 一种集成电路和用于神经网络处理的方法 | |
US11355175B2 (en) | Deep learning accelerator and random access memory with a camera interface | |
US20210224222A1 (en) | Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit | |
EP3844610B1 (en) | Method and system for performing parallel computation | |
US11163686B2 (en) | Method and apparatus for accessing tensor data | |
CN110941789A (zh) | 张量运算方法和装置 | |
CN112416433A (zh) | 一种数据处理装置、数据处理方法及相关产品 | |
WO2020093968A1 (zh) | 卷积处理引擎及控制方法和相应的卷积神经网络加速器 | |
CN112257859B (zh) | 特征数据处理方法及装置、设备、存储介质 | |
CN112116071B (zh) | 神经网络计算方法、装置、可读存储介质以及电子设备 | |
TWI634436B (zh) | 緩衝裝置及卷積運算裝置與方法 | |
US11755892B2 (en) | Multi-size convolutional layer | |
CN112631955A (zh) | 数据处理方法、装置、电子设备以及介质 | |
US20200356844A1 (en) | Neural network processor for compressing featuremap data and computing system including the same | |
US20210357730A1 (en) | Multi-size convolutional layer background | |
CN113888390A (zh) | 特征图处理方法、装置、电子设备和计算机可读介质 | |
US11842273B2 (en) | Neural network processing | |
US20240046413A1 (en) | Methods of batch-based dnn processing for efficient analytics | |
CN112132274B (zh) | 特征图全连接卷积方法、装置、可读存储介质及电子设备 |
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 |