CN114995782A - 数据处理方法、装置、设备和可读存储介质 - Google Patents
数据处理方法、装置、设备和可读存储介质 Download PDFInfo
- Publication number
- CN114995782A CN114995782A CN202210924445.3A CN202210924445A CN114995782A CN 114995782 A CN114995782 A CN 114995782A CN 202210924445 A CN202210924445 A CN 202210924445A CN 114995782 A CN114995782 A CN 114995782A
- Authority
- CN
- China
- Prior art keywords
- kernel
- expanded
- output channels
- matrix
- matrix multiplication
- 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 claims abstract description 16
- 239000011159 matrix material Substances 0.000 claims abstract description 227
- 238000010586 diagram Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000001502 supplementing effect Effects 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 17
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备和可读存储介质,该方法包括:获取待处理的输入特征图和原始输出通道的数量;当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道;根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图。本申请可使每个原始输出通道每周期生成多个输出,进而提高矩阵乘引擎的利用率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、设备和可读存储介质。
背景技术
通用矩阵乘(general matrix-matrix multiplication,GEMM)是深度学习的核心操作之一,广泛应用于卷积(convolution),全连接(full connection),以及矩阵乘(matmul)等算子的实现。
在各种实现方式中,矩阵乘法可以通过使用执行点积运算的硬件(例如,矩阵乘引擎)来执行。换句话说,矩阵乘引擎可以用来计算卷积的不同变体。在各种实施例中,矩阵乘引擎需要足够大的输入(例如,足够大的输入通道和输出通道)才能高效。输入不够大会导致利用率低。
当输入通道和/或输出通道的数量小于矩阵乘引擎被配置用于的指定大小时,矩阵乘引擎的整体效率会下降。而卷积的输出是神经网络中一层的输出,并且该输出被馈送到下一层。因此对于多层具有有限输入通道和/或输出通道的神经网络,如何提高矩阵乘引擎的效率,尤为重要。
发明内容
本申请实施例的目的在于提供一种数据处理方法、装置、设备和可读存储介质,提升了矩阵乘引擎的效率,从而提高了资源利用率。
本申请实施例第一方面提供了一种数据处理方法,包括:获取待处理的输入特征图和原始输出通道的数量;当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道;根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图。
上述数据处理方法,在原始输出通道无法填满矩阵乘引擎的情况下,通过扩展原始输出通道的尺寸参数,得到多个扩展后的输出通道,然后使用多个扩展后的输出通道在矩阵乘引擎中处理输入特征图,由于多个扩展后的输出通道可以提高矩阵乘引擎在一个计算周期内的使用率,因此可以提升矩阵乘引擎的效率,从而提高资源利用率。
于一实施例中,所述当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道,包括:当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个所述原始输出通道对应的所述多个扩展后的输出通道。
上述实施例,当原始输出通道的数量小于矩阵乘引擎的列数量时,通过沿着行方向和列方向扩展原始通道,并用特定元素填补多出的行列,从而一个原始通道可以扩展成多个输出通道,提高矩阵乘引擎在一个计算周期内的使用率。
于一实施例中,所述将每个所述原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个所述原始输出通道对应的所述多个扩展后的输出通道,包括:
根据所述原始输出通道的核宽度、沿着行方向的步长以及沿核宽度方向的扩展参数,确定所述扩展后的输出通道的核宽度;
根据所述原始输出通道的核高度、沿着列方向的步长以及沿核高度方向的扩展参数,确定所述扩展后的输出通道的核高度;
按照所述扩展后的输出通道的核宽度和扩展后的输出通道的核高度,构建多个扩展后的输出通道,并在扩展出来的行列中补充特定元素。
上述实施例,通过设定的步长和扩展参数进行扩展,可以按照请求扩展出合适尺寸的核数据,充分利用矩阵乘引擎的计算资源。
于一实施例中,所述根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图,包括:根据所述输出特征图的限定参数、输入通道参数和所述多个扩展后的输出通道的参数,将所述输入特征图进行图像到列的转换,得到输入矩阵;根据所述输入通道参数和所述多个扩展后的输出通道的参数,将核数据进行图像到列的转换,得到核矩阵;将所述输入矩阵和所述核矩阵输入至所述矩阵乘引擎中进行处理,得到所述输出特征图。
上述实施例,通过对输入特征图进行图像到列的转换,将核数据就那些图像到列的转换,从而可以输入特征图和核数据可以逐列进行点积计算,提高输出特征图的计算效率,降低计算复杂度。
于一实施例中,所述将所述输入矩阵和所述核矩阵输入至所述矩阵乘引擎中进行处理,得到所述输出特征图,包括:若所述核矩阵的高度大于所述矩阵乘引擎的高度,则将所述输入矩阵进行切分,得到切分后的多个子输入矩阵,将所述核矩阵进行切分,得到多个子核矩阵;分别将所述多个子输入矩阵和所述多个子核矩阵输入至所述矩阵乘引擎中进行处理,得到多个子结果,将所述多个子结果累加,得到最终的所述输出特征图。
上述实施例,在核矩阵的高度大于矩阵乘引擎的高度时,表示无法一次性完成矩阵乘运算,通过对输入矩阵和核矩阵进行切分,并分别将多个子输入矩阵和多个子核矩阵输入至矩阵乘引擎中进行处理,可以降低处理难度,提高处理效率。
于一实施例中,在所述根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图之后,还包括:将所述矩阵乘引擎最终输出的所述输出特征图传递给下游的向量引擎,以进行后续向量操作。
上述实施例,将矩阵乘引擎最终输出的输出特征图传递给下游的向量引擎,可以提高深度学习的效率。
本申请实施例第二方面提供了一种数据处理装置,包括:获取模块,用于获取待处理的输入特征图和原始输出通道的数量;扩展模块,用于当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道;处理模块,用于根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图。
于一实施例中,所述扩展模块用于:当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个所述原始输出通道对应的所述多个扩展后的输出通道。
于一实施例中,所述扩展模块还用于:根据所述原始输出通道的核宽度、沿着行方向的步长以及沿核宽度方向的扩展参数,确定所述扩展后的输出通道的核宽度;
根据所述原始输出通道的核高度、沿着列方向的步长以及沿核高度方向的扩展参数,确定所述扩展后的输出通道的核宽度。
于一实施例中,所述处理模块用于:根据所述输出特征图的限定参数、输入通道参数和所述多个扩展后的输出通道的参数,将所述输入特征图进行图像到列的转换,得到输入矩阵;根据所述输入通道参数和所述多个扩展后的输出通道的参数,将核数据进行图像到列的转换,得到核矩阵;将所述输入矩阵和所述核矩阵输入至所述矩阵乘引擎中进行处理,得到所述输出特征图。
于一实施例中,所述处理模块还用于:若所述核矩阵的高度大于所述矩阵乘引擎的高度,则将所述输入矩阵进行切分,得到切分后的多个子输入矩阵,将所述核矩阵进行切分,得到多个子核矩阵;分别将所述多个子输入矩阵和所述多个子核矩阵输入至所述矩阵乘引擎中进行处理,得到多个子结果,将所述多个子结果累加,得到最终的所述输出特征图。
于一实施例中,还包括:传递模块,用于在所述根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图之后,将所述矩阵乘引擎最终输出的所述输出特征图传递给下游的向量引擎,以进行后续向量操作。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行所述计算机程序,以实现本申请实施例第一方面及其任一实施例的方法。
本申请实施例第四方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的装置、设备和可读存储介质,在原始输出通道无法填满矩阵乘引擎的情况下,通过扩展原始输出通道的尺寸参数,得到多个扩展后的输出通道,然后使用多个扩展后的输出通道在矩阵乘引擎中处理所述输入特征图,由于多个扩展后的输出通道可以提高矩阵乘引擎在一个计算周期内的使用率,因此可以提升矩阵乘引擎的效率,从而提高资源利用率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的示意图;
图2为本申请一实施例的为通用矩阵乘操作的示意图;
图3为本申请一实施例的处理器的结构示意图;
图4为本申请一实施例的张量引擎的结构示意图;
图5为本申请一实施例的卷积运算过程示意图;
图6为本申请一实施例的数据处理方法的流程示意图;
图7为本申请一实施例的数据处理方法的流程示意图;
图8为本申请一实施例的多个扩展后的输出通道的示意图;
图9为本申请一实施例的输入特征图转换成输入矩阵的过程示意图;
图10为本申请一实施例的核数据转换成核矩阵的过程示意图;
图11为本申请一实施例的图9中输入矩阵最右边的列与核矩阵的Kernel 0_0对应列做点积运算的过程示意图;
图12为本申请一实施例的为图9中输入矩阵最右边的列与核矩阵的Kernel 0_1对应列做点积运算的过程示意图;
图13为本申请一实施例的图9中输入矩阵最右边的列与核矩阵的Kernel 0_2对应列做点积运算的过程示意图;
图14为本申请一实施例的图9中输入矩阵最右边的列与核矩阵的Kernel 0_3对应列做点积运算的过程示意图;
图15为本申请一实施例的数据处理装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了清楚的描述本实施例的方案,现将涉及的名词定义如下:
CPU:Central Processing Unit,中央处理器,是计算机系统的运算和控制核心,是软件程序的执行单元。
GPU:Graphics Processing Unit,图形处理器,一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器,可以作为CPU的计算加速器。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以提升矩阵乘引擎的效率,从而提高了资源利用率。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型运算系统。
通用矩阵乘是深度学习的核心操作之一,广泛应用于卷积、全连接以及矩阵乘等算子的实现。
如图2所示,为通用矩阵乘操作的示意图,通用矩阵乘可用C=AB来表示,其中A,B,C三个矩阵的形状分别为M x K、K x N、M x N。图2中矩阵C阴影部分的输出由矩阵A阴影部分的行与矩阵B阴影部分的列进行点积运算得到,具体的操作如下述伪代码所示:
for (m = 0; m < M; m++) {
for (n = 0; n < N; n++) {
for (k = 0; k < K; k++) {
C[m][n] += A[m][k] * B[k][n];
}
}
}
以卷积计算为例,假设输入特征图(Input Feature Map)大小为224x224,输入通道数(Input Channel,IC)为3,卷积核(Convolution Kernel)大小为7x7,输出通道数(Output Channel,OC)为64,步长(stride)为2,采用相等填充(same padding)。则经过图像到列(Image2Column)转换后的输入矩阵A大小为12544x147。卷积核矩阵B大小为147x64,可产生大小为12544x64的输出矩阵C,再经过转换得到通道数为64的112x112大小的输出特征图。
上述这一卷积层的操作总共需要 12544 * 64 * 147 * 2次的运算,也就是数亿次点积(dot product)运算,同时也需要大量的缓存去搬运数据与暂存中间结果。而这样的卷积层正随着深度学习的不断发展变得越来越多。因而,传统的CPU、GPU受限制于有限的缓存、带宽与运算单元,已渐满足不了需要,越来越多的厂商选择开发专用的人工智能处理器来加速通用矩阵乘操作。
如图3所示,本实施例提供一种处理器的结构示意图,主要包括:主机接口(HostInterface)、直接内存访问模块(Direct Memory Access,DMA)、静态随机存储器(SRAM)、张量引擎(Tensor Engine)、以及向量引擎(Vector Engine)。其中,主机接口接收来自主机的命令,一方面控制DMA把数据从主机端搬运到SRAM,另一方面控制张量引擎在数据准备好后进行各种通用矩阵乘运算,然后在通用矩阵乘运算完成后,由向量引擎进行各种向量运算,比如激活(activation)以及池化(pooling)操作。待向量运算完成后,输出数据会被写回到SRAM,提供给下一层网络作为输入数据使用,或者由DMA从SRAM搬回到主机。
如图4所示,本实施例提供一种张量引擎的结构示意图,张量引擎主要包括:数据组织模块(Data Setup)、权重组织模块(Weight Setup)、矩阵乘引擎(Matrix MultiplyEngine,下述简称MME)和累加器(Accumulator)。
以卷积运算为例,数据组织模块负责把输入特征图(Input Feature Map)数据从SRAM中取出来,进行图像到列(Image2Column)的转换得到M x K的输入矩阵。权重组织模块负责把卷积核数据从SRAM中取出来,进行图像到列(Image2Column)的转换得到K x N的核矩阵。其中,M = OH * OW,OH为输出特征图高度,OW为输出特征图宽度。K = IC* KH* KW,IC为输入通道的数量,KH为卷积核的核高度,KW为卷积核的核宽度。N为输出通道的数量。然后将输入矩阵和核矩阵输出到矩阵乘引擎去执行通用矩阵乘操作,把操作结果保存到累加器中。
在实际场景中,输出通道需映射到矩阵乘引擎的列,每个列每周期只能产生对应输出通道的一个输出。如果输出通道数量是矩阵乘引擎列数量的整数倍,则矩阵乘引擎可以达到最高的效率。但不同网络层的输出通道数不同,矩阵乘引擎很难一直保持最高的效率。
如图5所示,为本申请实施例提供的卷积运算过程示意图,以包括16列的矩阵乘引擎(Matrix Multiply Engine)为例,假设输入通道是1,卷积核的核大小是3x3,输出通道/核数量是4,即4个卷积核: Kernel0、 Kernel1、Kernel2、Kernel3。运算过程中,核数据先经过图像到列的转换变成大小为9x4的核矩阵(Kernel Matrix)。然后9x4的核矩阵输出到矩阵乘引擎的列0,1,2,3。另一方面,输入特征图(Input Feature Map)经过图像到列的转换变成大小为Mx9的输入矩阵(Input Matrix)(为更好地表示数据流动方向,图5以及后续图例均对输入矩阵顺时针旋转90度),然后每列数据依次输出至矩阵乘引擎,并在矩阵乘引擎内部沿着行方向依次传输到多个列,从而依次与多个输出通道的权重进行点积运算。因为输出通道数只有4,而矩阵乘引擎有16个列,并且每列也只利用了16个乘加器中的9个,则当前示例下,矩阵乘引擎只有(4/16)* (9/16) = 14.0625%的利用率。
利用率低下会导致矩阵乘引擎的整体效率下降。而卷积的输出是神经网络中一层的输出,并且该输出被馈送到下一层。因此对于多层具有有限输入通道和/或输出通道的神经网络,如何提高矩阵乘引擎的效率,尤为重要。
为提高矩阵乘引擎的利用率,本申请实施例提供一种数据处理方法,可使每个输出通道每周期生成多个输出,进而提高矩阵乘引擎的利用率。
下面结合图文进一步详细叙述本申请实施例的数据处理方法。
请参看图6,其为本申请一实施例的数据处理方法,该方法可由图1所示的电子设备1来执行,并可以应用于对上述图2-图5所示的矩阵乘运算场景中,以使每个原始输出通道每周期生成多个输出,进而提高矩阵乘引擎的利用率。该方法包括如下步骤:
步骤301:获取待处理的输入特征图和原始输出通道的数量。
在本步骤中,以图像处理的神经网络场景为例,待处理的输入特征图可以输入神经网络模型中某一层的图像数据。原始输出通道是该神经网络模型中某一层网络的输出通道,因此原始输出通道的数量由其所属的神经网络模型的具体配置参数确定。
步骤302:当原始输出通道的数量小于矩阵乘引擎的列数量时,将每个原始输出通道进行扩展处理,得到多个扩展后的输出通道。
在本步骤中,在进行矩阵乘运算之前,可以先判断原始输出通道的数量是否小于矩阵乘引擎的列数量,如果是,说明如果直接采用原始输出通道和矩阵乘引擎来处理输入特征图的话,会出现矩阵乘引擎利用率极低的情况,为了提高矩阵乘引擎的利用效率,可以将每个原始输出通道进行扩展处理,即把单个卷积核数据复制多份,每份的核数据位置不一样,会得到多个扩展后的输出通道,在每个运算周期内,每个扩展后的输出通道均可以跟输入特征图的数据做点积,因此可以产生多个输出,这样就实现了使每个原始输出通道每周期生成多个输出,进而提高矩阵乘引擎的利用率。
于另一实施例中,如果原始输出通道的数量大于或等于矩阵乘引擎的列数量,则说明在对输入特征图进行矩阵乘运算时,原始输出通道可以填满矩阵乘引擎,矩阵乘引擎的利用率很高,可以不对原始输出通道进行扩展。有针对性的通道扩展,可以节约计算资源,提高计算效率。
步骤303:根据多个扩展后的输出通道在矩阵乘引擎中处理输入特征图,得到输出特征图。
在本步骤中,一个原始输出通道被扩展成多个扩展后的输出通道,在每个运算周期内,每个扩展后的输出通道均在矩阵乘引擎中与输入特征图进行运算,并得到一个对应的输出,也就是说一个运算周期内矩阵乘引擎的利用率会增加,如此一个原始输出通道扩展后,在一个运算周期内可以对应多个输出,提高了矩阵乘引擎的利用率,提高了计算机资源利用效率。
上述数据处理方法,在原始输出通道无法填满矩阵乘引擎的情况下,通过扩展原始输出通道的尺寸参数,得到多个扩展后的输出通道,然后使用多个扩展后的输出通道在矩阵乘引擎中处理输入特征图,由于多个扩展后的输出通道可以提高矩阵乘引擎在一个计算周期内的使用率,因此可以提升矩阵乘引擎的效率,从而提高资源利用率。
请参看图7,其为本申请一实施例的数据处理方法,该方法可由图1所示的电子设备1来执行,并可以应用于对上述图2-图5所示的矩阵乘运算场景中,以使每个原始输出通道每周期生成多个输出,进而提高矩阵乘引擎的利用率。该方法包括如下步骤:
步骤401:获取待处理的输入特征图和原始输出通道的数量。详细参见上述实施例中对步骤301的描述。
步骤402:当原始输出通道的数量小于矩阵乘引擎的列数量时,将每个原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个原始输出通道对应的多个扩展后的输出通道。
其中,沿着行方向扩展是指将核数据在行方向(横向)移动若干列,从而空出的列可以用特定元素填补。沿着列方向扩展是指将核数据在列方向(纵向)移动若干行,从而空出的行用特定元素填补。在本步骤中,当原始输出通道的数量小于矩阵乘引擎的列数量时,说明如果直接采用原始输出通道和矩阵乘引擎来处理输入特征图的话,会出现矩阵乘引擎利用率极低的情况,为了提高矩阵乘引擎的利用效率,可以即把单个卷积核数据复制多份,每份的核数据位置进行变换,比如可以将每个原始输出通道的核数据沿着行方向和列方向移动,并在扩展出来的行列中补充特定元素,以将单个原始输出通道扩展成多个扩展后的输出通道。此处特定元素可以是数值0,也可以是量化0。
于一实施例中,上述步骤402包括:根据所述原始输出通道的核宽度、沿着行方向的步长以及沿核宽度方向的扩展参数,确定所述扩展后的输出通道的核宽度;根据所述原始输出通道的核高度、沿着列方向的步长以及沿核高度方向的扩展参数,确定所述扩展后的输出通道的核高度;按照所述扩展后的输出通道的核宽度和扩展后的输出通道的核高度,构建多个扩展后的输出通道,并在扩展出来的行列中补充特定元素。
其中,沿着行方向的步长用于表示核数据在行方向上每步移动的距离。沿核宽度方向的扩展参数,简称“MOE宽”,MOE宽可以基于实际场景中矩阵乘引擎的大小和输出特征图的大小进行设定。其中,沿着行方向的步长与扩展后的输出通道的核宽度呈正相关关系,沿核宽度方向的扩展参数与扩展后的输出通道的核宽度呈正相关关系。也就是说,沿着行方向的步长越大或沿核宽度方向的扩展参数越大,扩展后的输出通道的核宽度越大。
具体的,可以采用如下公式确定扩展后的输出通道的核宽度:
Kernel_width_extend = Kernel_width + Stride_width * (MOE_width - 1)
其中,Kernel_width_extend为扩展后的输出通道的核宽度,Kernel_width为原始输出通道的核宽度,Stride_width为沿着行方向的步长,MOE_width为沿核宽度方向的扩展参数。
沿着列方向的步长用于表示核数据在列方向上每步移动的距离。沿核高度方向的扩展参数,简称“MOE高”,MOE高可以基于实际场景中矩阵乘引擎的大小和待处理的输入特征图的大小进行设定。其中,沿着列方向的步长与扩展后的输出通道的核高度呈正相关关系,沿核高度方向的扩展参数与扩展后的输出通道的核高度呈正相关关系。也就是说,沿着列方向的步长越大或沿核高度方向的扩展参数越大,扩展后的输出通道的核高度越大。
具体的,可以采用如下公式确定扩展后的输出通道的核高度:
Kernel_height_extend = Kernel_height + Stride_height * (MOE_height -1)
其中,Kernel_height_extend为扩展后的输出通道的核高度,Kernel_height为原始输出通道的核高度,Stride_height为沿着列方向扩展的步长,MOE_height为沿核高度方向的扩展参数。
最终输出通道的核宽度上述计算得到的核宽度,最终输出通道的核高度就是上述计算得到的核高度。输出通道中相比原始通道而言,增加的行和列可以用特定元素(例如0)进行填充。
假设一个原始输出通道扩展出MOE宽*MOE高个扩展后的输出通道, Stride_width、Stride_height均为1,则扩展后的输出通道核宽度=原始输出通道核宽度+MOE宽度-1,扩展后的核高度=原始的核高度+MOE高度-1。
于一实施例中,以如图5中的卷积核作为原始输出通道为例,假设MOE宽、MOE高均为2,则图5中大小为3x3的卷积核Kernel0经过扩展后变成图8所示的大小为4x4的四个卷积核:Kernel0_0、Kernel0_1、Kernel0_2、Kernel0_3。Kernel0_0内原始输出通道的3x3核数据位于左上角,其余部分补充特定元素,比如补充数值0(本实施例以数值0为例,但并不限于数值0)。其中,Kernel0_1相当于原始输出通道的3x3核数据沿行方向向右移动一步,Kernel0_2相当于原始输出通道的3x3核数据沿列方向向下移动一步,Kernel0_3相当于原始输出通道的3x3核数据分别沿列跟行方向移动一步。
卷积核Kernel1、卷积核Kernel2、卷积核Kernel3的扩展过程类似于卷积核Kernel0的扩展过程,以此类推,图5中大小为3x3的卷积核Kernel1经过扩展后变成图8所示的大小为4x4的四个卷积核:Kernel1_0、Kernel1_1、Kernel1_2、Kernel1_3。图5中大小为3x3的卷积核Kernel2经过扩展后变成图8所示的大小为4x4的四个卷积核:Kernel2_0、Kernel2_1、Kernel2_2、Kernel2_3。图5中大小为3x3的卷积核Kernel3经过扩展后变成图8所示的大小为4x4的四个卷积核:Kernel3_0、Kernel3_1、Kernel3_2、Kernel3_3。则最终从4个原始输出通道扩展成16个扩展后的输出通道。
于另一实施例中,假设输出特征图在高度方向较大,则可以将原始输出通道仅沿着高度方向扩展,比如设定 MOE宽为1,MOE高为4,也可以将图5中一个大小为3x3的卷积核经过扩展后变成大小为3x6的四个卷积核,最终实现由4个原始输出通道扩展成16个扩展后的输出通道。
于另一实施例中,假设输出特征图在宽度方向较大,则可以将原始输出通道仅沿着宽度方向扩展,比如设定 MOE宽为4,MOE高为1,也可以将图5中一个大小为3x3的卷积核经过扩展后变成大小为6x3的四个卷积核,最终实现由4个原始输出通道扩展成16个扩展后的输出通道。
步骤403:根据输出特征图的限定参数、输入通道参数和多个扩展后的输出通道的参数,将输入特征图进行图像到列的转换,得到输入矩阵。
在本步骤中,输出特征图的限定参数可以包括输出特征图高度OH和输出特征图宽度OW,输入通道参数可以包括输入通道的数量IC,多个扩展后的输出通道的参数可以包括扩展后的输出通道的核高度KH和核宽度KW。则可以将输入特征图进行图像到列的转换,即从输入特征图中每次取与核数据相同尺寸的图像,并按照从左到右从上到下的顺序从该图像中取出数值排成一列。通过将输入特征进行图像到列的转换,可以将与卷积核相同尺寸的图像数据排成一列。由于后续步骤S404将每个通道的核数据也排成一列,从而直接让每一列的图像数据与每一列的核数据进行点积计算即可,提高计算效率,降低计算复杂度。将输入特征图进行图像到列的转换,例如可以得到如图9所示的M x K的输入矩阵,M和K分别为正整数,其中,M = OH * OW,K = IC* KH* KW。
步骤404:根据输入通道参数和多个扩展后的输出通道的参数,将核数据进行图像到列的转换,得到核矩阵。
其中,核数据进行图像到列的转换是指按照从左到右从上到下的顺序从核数据中取出数值排成一列。在本步骤中,多个扩展后的输出通道的参数还可以包括:扩展后的输出通道的总数量,卷积核数据从SRAM中取出来后,进行图像到列(Image2Column)的转换得到Kx N的核矩阵。其中, N 为扩展后的输出通道的总数量,N为正整数。
于一实施例中,图8中的16个扩展后的输出通道,即N=16,核数据经过图像到列的转换后变成16x16的核矩阵(Kernel Matrix),如图10所示,能够填满矩阵乘引擎。
步骤405:将输入矩阵和核矩阵输入至矩阵乘引擎中进行处理,得到输出特征图。
在本步骤中,对于输入特征图(Input Feature Map),用扩展后的输出通道对输入数据进行图像到列的转换。以扩展后的输出通道4x4核对输入特征图(Input Feature Map)进行图像到列的转换可以得到Mx16的输入矩阵(Input Matrix),将输入矩阵依次输出至矩阵乘引擎进行矩阵乘运算。以输入矩阵最右边的列为例,分别与核矩阵的Kernel 0_0、Kernel 0_1、Kernel 0_2、Kernel 0_3对应列做点积运算,得到对应于同一个原始输出通道Kernel 0的4个输出。
以原始输出通道Kernel0对应的矩阵乘运算过程为例,如图11所示,为图9中输入矩阵最右边的列与核矩阵的Kernel 0_0对应列做点积运算的过程示意图。
如图12所示,为图9中输入矩阵最右边的列与核矩阵的Kernel 0_1对应列做点积运算的过程示意图。
如图13所示,为图9中输入矩阵最右边的列与核矩阵的Kernel 0_2对应列做点积运算的过程示意图。
如图14所示,为图9中输入矩阵最右边的列与核矩阵的Kernel 0_3对应列做点积运算的过程示意图。
分别相当于输出(0,0), (0,1), (1,0),(1,1)对应的输入特征图的数据与原始输出通道Kernel0对应的核数据进行点积运算。
其余原始输出通道Kernel1、Kernel2、Kernel3对应的矩阵乘运算过程可以参阅上述对原始输出通道Kernel0对应的矩阵乘运算过程的描述。
在上述实施例中,扩展后的输出通道填满了矩阵乘引擎,矩阵乘引擎的效率提升到56.25%。相比于优化前的14.0625%,有4倍提升。
于一实施例中,步骤405具体可以包括:若核矩阵的高度大于矩阵乘引擎的高度,则将输入矩阵进行切分,得到切分后的多个子输入矩阵,将核矩阵进行切分,得到多个子核矩阵。分别将多个子输入矩阵和多个子核矩阵输入至矩阵乘引擎中进行处理,得到多个子结果,将多个子结果累加,得到最终的输出特征图。
实际应用中,如果核矩阵的K>矩阵乘引擎的高度,说明无法一次性完成矩阵乘运算,可以对K进行切分,即将矩阵乘任务切分成子任务,具体地,将输入矩阵沿着K方向进行切分,得到切分后的多个子输入矩阵,将核矩阵沿着K方向进行切分,得到多个子核矩阵,然后分别将多个子输入矩阵和多个子核矩阵对应依次输入至矩阵乘引擎中进行处理,得到矩阵乘运算的多个子结果,将多个子结果累加,最后一次累加后的结果作为最终的输出特征图。
需要申明的是,上述数据处理方法,不仅限于上述示例,并可广泛应用于各种不同类型的卷积、全连接、以及矩阵乘等场景。
步骤406:将矩阵乘引擎最终输出的输出特征图传递给下游的向量引擎,以进行后续向量操作。
在本步骤中,一层神经网络运算中往往不仅有需要张量运算,还有各种向量运算,比如激活(activation)以及池化(pooling)等操作。在张量运算完成后,可以将矩阵乘引擎最终输出的输出特征图传递给下游的向量引擎,由向量引擎进行各种向量运算操作。待向量运算完成后,输出数据会被写回到SRAM,以提供给下一层神经网络作为输入数据使用,或者由DMA从SRAM搬回到主机。
请参看图15,其为本申请一实施例的数据处理装置700,该装置可应用于图1所示的电子设备1或者应用于张量引擎,并可以应用于对上述图2-图5所示中的矩阵乘运算场景中,以使每个原始输出通道每周期生成多个输出,进而提高矩阵乘引擎的利用率。该装置包括:获取模块701、扩展模块702和处理模块703,各个模块的原理关系如下:
获取模块701,用于获取待处理的输入特征图和原始输出通道的数量。
扩展模块702,用于当原始输出通道的数量小于矩阵乘引擎的列数量时,将每个原始输出通道进行扩展处理,得到多个扩展后的输出通道。
处理模块703,用于根据多个扩展后的输出通道在矩阵乘引擎中处理输入特征图,得到输出特征图。
于一实施例中,扩展模块702用于:当原始输出通道的数量小于矩阵乘引擎的列数量时,将每个原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个原始输出通道对应的多个扩展后的输出通道。
于一实施例中,采用如下公式确定所述扩展后的输出通道的核宽度:
Kernel_width_extend = Kernel_width + Stride_width * (MOE_width - 1)
其中,Kernel_width_extend为扩展后的输出通道的核宽度,Kernel_width为原始输出通道的核宽度,Stride_width为沿着行方向的步长,MOE_width为沿核宽度方向的扩展参数。
于一实施例中,采用如下公式确定所述扩展后的输出通道的核高度:
Kernel_height_extend = Kernel_height + Stride_height * (MOE_height -1)
其中,Kernel_height_extend为扩展后的输出通道的核高度,Kernel_height为原始输出通道的核高度,Stride_height为沿着列方向的步长,MOE_height为沿核高度方向的扩展参数。
于一实施例中,处理模块703用于:根据输出特征图的限定参数、输入通道参数和多个扩展后的输出通道的参数,将输入特征图进行图像到列的转换,得到输入矩阵。根据输入通道参数和多个扩展后的输出通道的参数,将核数据进行图像到列的转换,得到核矩阵。将输入矩阵和核矩阵输入至矩阵乘引擎中进行处理,得到输出特征图。
于一实施例中,处理模块703还用于:若核矩阵的高度大于矩阵乘引擎的高度,则将输入矩阵进行切分,得到切分后的多个子输入矩阵,将核矩阵进行切分,得到多个子核矩阵。分别将多个子输入矩阵和多个子核矩阵输入至矩阵乘引擎中进行处理,得到多个子结果,将多个子结果累加,得到最终的输出特征图。
于一实施例中,还包括:传递模块704,用于在根据多个扩展后的输出通道在矩阵乘引擎中处理输入特征图,得到输出特征图之后,将矩阵乘引擎最终输出的输出特征图传递给下游的向量引擎,以进行后续向量操作。
上述数据处理装置700的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取待处理的输入特征图和原始输出通道的数量;
当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道;
根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图。
2.根据权利要求1所述的方法,其特征在于,所述当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道,包括:
当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个所述原始输出通道对应的所述多个扩展后的输出通道。
3.根据权利要求2所述的方法,其特征在于,所述将每个所述原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个所述原始输出通道对应的所述多个扩展后的输出通道,包括:
根据所述原始输出通道的核宽度、沿着行方向的步长以及沿核宽度方向的扩展参数,确定所述扩展后的输出通道的核宽度;
根据所述原始输出通道的核高度、沿着列方向的步长以及沿核高度方向的扩展参数,确定所述扩展后的输出通道的核高度;
按照所述扩展后的输出通道的核宽度和扩展后的输出通道的核高度,构建多个扩展后的输出通道,并在扩展出来的行列中补充特定元素。
4.根据权利要求1所述的方法,其特征在于,所述根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图,包括:
根据所述输出特征图的限定参数、输入通道参数和所述多个扩展后的输出通道的参数,将所述输入特征图进行图像到列的转换,得到输入矩阵;
根据所述输入通道参数和所述多个扩展后的输出通道的参数,将核数据进行图像到列的转换,得到核矩阵;
将所述输入矩阵和所述核矩阵输入至所述矩阵乘引擎中进行处理,得到所述输出特征图。
5.根据权利要求4所述的方法,其特征在于,所述将所述输入矩阵和所述核矩阵输入至所述矩阵乘引擎中进行处理,得到所述输出特征图,包括:
若所述核矩阵的高度大于所述矩阵乘引擎的高度,则将所述输入矩阵进行切分,得到切分后的多个子输入矩阵,将所述核矩阵进行切分,得到多个子核矩阵;
分别将所述多个子输入矩阵和所述多个子核矩阵输入至所述矩阵乘引擎中进行处理,得到多个子结果,将所述多个子结果累加,得到最终的所述输出特征图。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图之后,还包括:
将所述矩阵乘引擎最终输出的所述输出特征图传递给下游的向量引擎,以进行后续向量操作。
7.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待处理的输入特征图和原始输出通道的数量;
扩展模块,用于当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道进行扩展处理,得到多个扩展后的输出通道;
处理模块,用于根据所述多个扩展后的输出通道在所述矩阵乘引擎中处理所述输入特征图,得到输出特征图。
8.根据权利要求7所述的装置,其特征在于,所述扩展模块用于:
当所述原始输出通道的数量小于矩阵乘引擎的列数量时,将每个所述原始输出通道沿着行方向和列方向扩展,并在扩展出来的行列中补充特定元素,得到每个所述原始输出通道对应的所述多个扩展后的输出通道。
9.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至6中任一项所述的方法。
10.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210924445.3A CN114995782B (zh) | 2022-08-03 | 2022-08-03 | 数据处理方法、装置、设备和可读存储介质 |
PCT/CN2022/131157 WO2024027039A1 (zh) | 2022-08-03 | 2022-11-10 | 数据处理方法、装置、设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210924445.3A CN114995782B (zh) | 2022-08-03 | 2022-08-03 | 数据处理方法、装置、设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114995782A true CN114995782A (zh) | 2022-09-02 |
CN114995782B CN114995782B (zh) | 2022-10-25 |
Family
ID=83021530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210924445.3A Active CN114995782B (zh) | 2022-08-03 | 2022-08-03 | 数据处理方法、装置、设备和可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114995782B (zh) |
WO (1) | WO2024027039A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781484A (zh) * | 2023-08-25 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116980277A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
WO2024027039A1 (zh) * | 2022-08-03 | 2024-02-08 | 北京登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
US20200210844A1 (en) * | 2018-12-29 | 2020-07-02 | Canon Kabushiki Kaisha | Training and application method of a multi-layer neural network model, apparatus and storage medium |
CN111382833A (zh) * | 2018-12-29 | 2020-07-07 | 佳能株式会社 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
CN111610963A (zh) * | 2020-06-24 | 2020-09-01 | 上海西井信息科技有限公司 | 芯片结构及其乘加计算引擎 |
CN111797983A (zh) * | 2020-05-25 | 2020-10-20 | 华为技术有限公司 | 一种神经网络构建方法以及装置 |
CN111831254A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 图像处理加速方法、图像处理模型存储方法及对应装置 |
US20200410036A1 (en) * | 2019-06-28 | 2020-12-31 | Amazon Technologies, Inc. | Dilated convolution using systolic array |
CN113034391A (zh) * | 2021-03-19 | 2021-06-25 | 西安电子科技大学 | 一种多模式融合水下图像增强方法、系统及应用 |
CN113343953A (zh) * | 2021-08-05 | 2021-09-03 | 南京信息工程大学 | 一种用于遥感场景识别的fgr-am方法和系统 |
CN113378862A (zh) * | 2021-07-09 | 2021-09-10 | 上海商汤科技开发有限公司 | 一种图像处理方法及装置、电子设备和存储介质 |
CN113538243A (zh) * | 2021-07-22 | 2021-10-22 | 西安电子科技大学 | 基于多视差注意力模块组合的超分辨图像重建方法 |
CN114066883A (zh) * | 2021-12-20 | 2022-02-18 | 昆明理工大学 | 一种基于特征选择与残差融合的肝肿瘤分割方法 |
WO2022067508A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为技术有限公司 | 一种神经网络加速器、加速方法以及装置 |
CN114430837A (zh) * | 2019-09-27 | 2022-05-03 | 亚马逊技术股份有限公司 | 使用脉动阵列的转置卷积 |
US20220164663A1 (en) * | 2020-11-24 | 2022-05-26 | Arm Limited | Activation Compression Method for Deep Learning Acceleration |
WO2022110386A1 (zh) * | 2020-11-30 | 2022-06-02 | 清华大学 | 数据处理方法及人工智能处理器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487846B2 (en) * | 2018-05-04 | 2022-11-01 | Apple Inc. | Performing multiply and accumulate operations in neural network processor |
CN110796229B (zh) * | 2018-08-01 | 2024-04-12 | 华为技术有限公司 | 一种实现卷积运算的装置及方法 |
CN112732630A (zh) * | 2019-10-14 | 2021-04-30 | 无锡江南计算技术研究所 | 针对深度学习的浮点矩阵乘算子众核并行优化方法 |
CN114995782B (zh) * | 2022-08-03 | 2022-10-25 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
-
2022
- 2022-08-03 CN CN202210924445.3A patent/CN114995782B/zh active Active
- 2022-11-10 WO PCT/CN2022/131157 patent/WO2024027039A1/zh unknown
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
US20200210844A1 (en) * | 2018-12-29 | 2020-07-02 | Canon Kabushiki Kaisha | Training and application method of a multi-layer neural network model, apparatus and storage medium |
CN111382833A (zh) * | 2018-12-29 | 2020-07-07 | 佳能株式会社 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
CN111831254A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 图像处理加速方法、图像处理模型存储方法及对应装置 |
US20200410036A1 (en) * | 2019-06-28 | 2020-12-31 | Amazon Technologies, Inc. | Dilated convolution using systolic array |
CN114430837A (zh) * | 2019-09-27 | 2022-05-03 | 亚马逊技术股份有限公司 | 使用脉动阵列的转置卷积 |
CN111797983A (zh) * | 2020-05-25 | 2020-10-20 | 华为技术有限公司 | 一种神经网络构建方法以及装置 |
CN111610963A (zh) * | 2020-06-24 | 2020-09-01 | 上海西井信息科技有限公司 | 芯片结构及其乘加计算引擎 |
WO2022067508A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为技术有限公司 | 一种神经网络加速器、加速方法以及装置 |
US20220164663A1 (en) * | 2020-11-24 | 2022-05-26 | Arm Limited | Activation Compression Method for Deep Learning Acceleration |
WO2022110386A1 (zh) * | 2020-11-30 | 2022-06-02 | 清华大学 | 数据处理方法及人工智能处理器 |
CN113034391A (zh) * | 2021-03-19 | 2021-06-25 | 西安电子科技大学 | 一种多模式融合水下图像增强方法、系统及应用 |
CN113378862A (zh) * | 2021-07-09 | 2021-09-10 | 上海商汤科技开发有限公司 | 一种图像处理方法及装置、电子设备和存储介质 |
CN113538243A (zh) * | 2021-07-22 | 2021-10-22 | 西安电子科技大学 | 基于多视差注意力模块组合的超分辨图像重建方法 |
CN113343953A (zh) * | 2021-08-05 | 2021-09-03 | 南京信息工程大学 | 一种用于遥感场景识别的fgr-am方法和系统 |
CN114066883A (zh) * | 2021-12-20 | 2022-02-18 | 昆明理工大学 | 一种基于特征选择与残差融合的肝肿瘤分割方法 |
Non-Patent Citations (1)
Title |
---|
范欢喜: "Two-Stage MobileNet:一种用于人脸属性识别的轻量化模型", 《现代计算机》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024027039A1 (zh) * | 2022-08-03 | 2024-02-08 | 北京登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
CN116781484A (zh) * | 2023-08-25 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116781484B (zh) * | 2023-08-25 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116980277A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116980277B (zh) * | 2023-09-18 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114995782B (zh) | 2022-10-25 |
WO2024027039A1 (zh) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114995782B (zh) | 数据处理方法、装置、设备和可读存储介质 | |
KR102316670B1 (ko) | 연산 가속기 | |
CN108765247B (zh) | 图像处理方法、装置、存储介质及设备 | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN113469350B (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
JP7403638B2 (ja) | 高速なスパースニューラルネットワーク | |
CN110989920B (zh) | 能量高效的存储器系统和方法 | |
CN112703511B (zh) | 运算加速器和数据处理方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN113159287A (zh) | 一种基于梯度稀疏的分布式深度学习方法 | |
KR20210014561A (ko) | 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체 | |
CN117435855B (zh) | 用于进行卷积运算的方法、电子设备和存储介质 | |
CN114385972A (zh) | 一种直接求解结构化三角稀疏线性方程组的并行计算方法 | |
US11874898B2 (en) | Streaming-based artificial intelligence convolution processing method and apparatus, readable storage medium and terminal | |
CN108960203B (zh) | 一种基于fpga异构计算的车辆检测方法 | |
CN110837483B (zh) | 张量维度变换的方法以及装置 | |
CN116090518A (zh) | 基于脉动运算阵列的特征图处理方法、装置以及存储介质 | |
TWI779475B (zh) | 圖形處理器及其加速方法 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN116781484B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
TWI798591B (zh) | 卷積神經網路運算方法及裝置 | |
US20230099656A1 (en) | Method for processing image, electronic device and storage medium | |
CN116187434A (zh) | 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法 | |
CN114218521A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221110 Address after: Room 1303, 12th Floor, No. 11, Caihefang Road, Haidian District, Beijing 100089 Patentee after: Beijing Denglin Technology Co.,Ltd. Address before: 201000 building 10, No. 439, Chunxiao Road, Zhangjiang Town, Pudong New Area, Shanghai Patentee before: Shanghai Denglin Technology Co.,Ltd. |