CN115829000A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115829000A CN115829000A CN202211350775.2A CN202211350775A CN115829000A CN 115829000 A CN115829000 A CN 115829000A CN 202211350775 A CN202211350775 A CN 202211350775A CN 115829000 A CN115829000 A CN 115829000A
- Authority
- CN
- China
- Prior art keywords
- input
- array
- matrix
- weight
- matrixes
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 239000011159 matrix material Substances 0.000 claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000004364 calculation method Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 10
- 230000004931 aggregating effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000005457 optimization Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本公开提供了一种数据处理方法、装置、电子设备及存储介质,其中,该方法包括:获取全连接层的输入特征及权重参数;将输入特征拆分为多个输入矩阵,并将权重参数对应拆分为多个权重矩阵,至少一个输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;将多个输入矩阵及多个权重矩阵输入至PE阵列进行卷积运算,得到全连接层的输出特征。在进行拆分的过程中,能够将全连接层输入的在一个维度上的数据拆分出一部分到行/列上参与后续的运算,这将使得每次启动PE阵列时可以占用更多的计算单元,从而提升PE阵列的利用率。
Description
技术领域
本公开涉及人工智能技术领域,具体而言,涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
随着人工智能的发展,卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Networks,RNN)、深度神经网络(Deep Neural Networks,DNN)等神经网络模型已经被应用于各种领域中,例如语音识别、图片分类、物体检测等领域。
在实际应用中,全连接层是组成神经网络模型不可缺少的部分,全连接层用于将上一层神经元的运算结果,输出至下一层的全部神经元的输入,以便下一层继续进行运算。作为神经网络模型中主要的计算单元,处理单元(Processing Element,PE)阵列提供了一种针对全连接层进行卷积计算的方案。
然而,由于PE阵列自身的计算特性,使得PE阵列在进行全连接层的计算过程中,利用率不高。
发明内容
本公开实施例至少提供一种数据处理方法、装置、电子设备及存储介质,以通过对全连接层的数据拆分提升PE阵列在全连接计算时的利用率。
第一方面,本公开实施例提供了一种数据处理方法,包括:
获取全连接层的输入特征及权重参数;
将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
在一种可能的实施方式中,多个所述输入矩阵的行列分布均一致。
在一种可能的实施方式中,所述输入矩阵的个数大于等于所述PE阵列的行数。
在一种可能的实施方式中,所述输入矩阵的个数为所述PE阵列行数的整数倍。
在一种可能的实施方式中,所述输入矩阵的特征个数小于等于所述PE阵列的计算单元的计算阈值。
在一种可能的实施方式中,所述输入矩阵在行方向上的特征个数小于等于所述PE阵列的计算单元在行方向上的计算阈值。
在一种可能的实施方式中,所述输入矩阵在列方向上的特征个数小于等于所述PE阵列的计算单元在列方向上的计算阈值。
在一种可能的实施方式中,所述全连接层的输入特征为一维向量,所述权重参数在列方向上的特征个数与所述一维向量的特征个数一致。
在一种可能的实施方式中,所述将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,包括:
针对每个输入矩阵及对应的权重矩阵,利用所述PE阵列的一个计算单元对所述输入矩阵与对应的权重矩阵进行点乘运算,得到运算结果;
将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总,得到所述全连接层的输出特征。
在一种可能的实施方式中,所述将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总,包括:
将所述PE阵列中处于同一列的计算单元得到的运算结果进行叠加,得到所述全连接层的输出特征。
第二方面,本公开实施例还提供了一种数据处理装置,包括:
获取模块,用于获取全连接层的输入特征及权重参数;
拆分模块,用于将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
运算模块,用于将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
第三方面,本公开实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式中任一项所述的数据处理方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式中任一项所述的数据处理方法。
采用上述数据处理方法、装置、电子设备及存储介质,在获取到全连接层的输入特征及权重参数的情况下,可以将输入特征拆分为多个输入矩阵,并将权重参数对应拆分为多个权重矩阵,这样,在将多个输入矩阵及多个权重矩阵输入到PE阵列进行卷积计算之后,即可得到全连接层的输出特征。在进行拆分的过程中,不管是拆分得到的输入矩阵在行方向的特征个数大于1,还是在列方向上的特征个数大于1,都能够将全连接层输入的在一个维度上的数据拆分出一部分到行/列上参与后续的运算,这将使得每次启动PE阵列时可以占用更多的计算单元,从而提升PE阵列的利用率。
本公开的其他优点将配合以下的说明和附图进行更详细的解说。
应当理解,上述说明仅是本公开技术方案的概述,以便能够更清楚地了解本公开的技术手段,从而可依照说明书的内容予以实施。为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本公开的具体实施方式。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1示出了本公开实施例所提供的一种数据处理方法的流程图;
图2示出了本公开实施例所提供的一种PE阵列的结构示意图;
图3示出了本公开实施例所提供的一种数据处理装置的示意图;
图4示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本公开实施方式的描述中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个这一特征。在本公开实施方式的描述中,除非另有说明,“多个”的含义是两个或两个以上。
经研究发现,PE阵列作为人工智能(Artificial Intelligence,AI)芯片中的主要计算单元,可以实现有关输入特征矩阵与权重矩阵之间的运算,这里的输入特征矩阵与权重矩阵通常是4维矩阵。为了便于进一步理解上述运算过程,接下来可以结合具体的公式进行描述。
假设Ifmap(input feature):输入特征矩阵,从高维到低维依次由N,C,H,W表示;weight:权值,从高维到低维依次由M,C,R,S来表示;Ofmap(output feature):输出特征矩阵,是ifmap和weight卷积计算之后的结果,其从高维到低维由N,M,E,F来表示,具体的卷积计算公式如下:
基于上述卷积公式可知的是,卷积的输出的每一个点都需要在C,R,S三个方向完成乘加操作。为了实现针对全连接层的运算,相关技术中提供了一种把全连接按照卷积的方式进行计算的方案。在全连接层计算时,R=1,S=1,E=1,F=1,此时公式可以简化为:
由上式可以看出全连接层按照卷积的方式进行计算时,只需要完成在C方向的乘加即可。
基于当前主流的PE阵列的计算,其列方向(PE_HEIGHT)负责完成在C方向的乘加。然而,由于在全连接层的计算中只利用了在C方向的乘加,导致在R,S方向的乘加无法有效利用。
除此之外,在每次启动PE阵列(对应一个pass)的运算中,只能够处理PE_HEIGHT(对应PE行数)个C方向的乘加,此时需要C/PE_HEIGHT次pass的计算,也即需要重启C/PE_HEIGHT次。在单个pass中R,S方向的乘加只启动了一次,也即,一次循环可以完成一个pass的计算。假设一个pass需要的配置指令下发时间是n个循环时间,由于计算的时间只有一次循环时间,实际PE阵列的利用率只有1/(n+1),可见,PE阵列在进行全连接运算过程中利用率极低。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开提供了至少一种对全连接层的输入数据先进行拆分,再进行运算的数据处理方案,该方案,使C方向的累加在R,S方向上同时进行,可以显著提升PE阵列在一个pass运算内的利用率,且能够有效地节省指令的生成个数,提高PE阵列的计算效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理方法进行详细介绍,本公开实施例所提供的数据处理方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、蜂窝电话、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该数据处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的数据处理方法的流程图,所述方法包括步骤S101~S103,其中:
S101:获取全连接层的输入特征及权重参数;
S102:将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
S103:将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
为了便于理解本公开实施例提供的数据处理方法,接下来首先对该方法的应用场景进行详细介绍。本公开实施例中的数据处理方法主要可以应用于任何需要全连接层参与计算的相关领域,例如,可以基于全连接层进行语音识别任务,再如,可以基于全连接层进行物体检测任务等,还可以是其他各种应用领域,在此不做具体的限制。
考虑在利用PE阵列实现全连接层计算的过程中,可能只有很少的计算单元参与实质的运算,也即,PE阵列的利用率较低。基于此,本公开实施例提供了一种先在行/列方向上进行数据拆分,而后再基于拆分数据进行运算的方案,其拆分数据能够很好的适配PE阵列,这使得PE阵列在行/列上的利用率得以显著提升。
在进行数据拆分之前,首先对PE阵列的结构进行简单说明。
如图2所示,为示例的一种6*6的PE阵列,该PE阵列在行方向及列方向上分别对应6个计算单元,共计36个计算单元。针对每个计算单元,可以进行对应拆分得到的一个输入矩阵的运算,例如,第一行第一列的第1个计算单元及第四行第一列的第19个计算单元均可以进行如图所示的20*4的输入矩阵以及对应权重矩阵的运算。
其中,有关全连接层的输入特征可以是一维向量【a1、a2……a1280】,该一维向量例如可以表征为NCHW=1*1280*1*1,也即,在C维度上具有1280个特征值。为了更好的适配于PE阵列的结构设计,这里,可以对上述一维向量进行拆分,例如,这里可以将C维度上的1280个特征值只拆分一部分到H维度上,还可以只拆分一部分到W维度上,还可以同时拆分在H维度上及W维度上,从而能够尽可能的满足不同的拆分需求。
这里,针对经过行方向拆分得到的输入矩阵而言,其在行方向上的特征个数将大于1,针对经过列方向拆分得到的输入矩阵而言,其在列方向上的特征个数将大于1。
假设PE阵列是由16*16的计算单元构成的阵列,这时,可以满格从C维度上进行拆分,也即,输入矩阵的个数可以是16,此时,若仍以NCHW=1*1280*1*1为例,在拆分为两组输入矩阵的情况下,可以对应是NCHW=1*16*20*2的两组输入矩阵。针对每组而言,均对应有16个输入矩阵,其行方向上拆分出20个特征值,列方向上拆分出2个特征值,后续针对拆分出的特征值进行相应的运算即可。仍以NCHW=1*1280*1*1的输入矩阵为例,在拆分为一组输入矩阵的情况下,可以对应的是NCHW=1*16*20*4的一组输入矩阵,在这种情况下,对应有16个输入矩阵,行方向上拆分出20个特征值,列方向上拆分出4个特征值。
需要说明的是,在进行特征拆分的过程中,可以是按照原有C维度的排列顺序进行拆分的,以拆分出NCHW=1*16*20*4这一组输入矩阵为例,可以将16个特征值仍保留在C维度,将后续的20个特征值及接着的4个特这值分别拆分到H维度及W维度,这样,C维度的特征个数对应的是PE阵列的行数,将16个20*4的输入矩阵分别输入到PE阵列的计算单元即可参与到后续的卷积运算。
在针对输入矩阵进行拆分的过程中,对应参与运算的权重参数也需要进行拆分。对应的拆分方法与上述输入矩阵的拆分一致,在此不做赘述。
需要说明的是,在全连接层的输入特征为一维向量的情况下,所述权重参数在列方向上的特征个数与所述一维向量的特征个数一致,这里仍以NCHW=1*1280*1*1为例,对应于C维度上的1280个特征值,权重参数在列方向上也有1280个权重值,此时可以进行类似的拆分。
针对拆分后的输入矩阵及权重矩阵而言,可以对应输入到PE阵列进行卷积运算,从而得到全连接层的输出特征。本公开实施例中可以按照如下步骤进行卷积运算:
步骤201、针对每个输入矩阵及对应的权重矩阵,利用所述PE阵列的一个计算单元对所述输入矩阵与对应的权重矩阵进行点乘运算,得到运算结果;
步骤202、将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总,得到所述全连接层的输出特征。
这里,针对每个输入矩阵及对应的权重矩阵所构成的配对矩阵,可以利用PE阵列的一个计算单元对所述输入矩阵与对应的权重矩阵进行点乘运算,得到运算结果,这样,在将各个配对矩阵得到的运算结果进行汇总,即可得到整个全连接层的输出特征。
在多个输入矩阵是按照PE阵列的行数满格拆分的情况下,这时一次PE阵列的启动即可以确定各个配对矩阵的运算结果,将各个运算结果进行叠加,即可确定全连接层的输出特征。
可知上述进行叠加的过程,即是将PE阵列中处于同一列的计算单元得到的运算结果进行叠加。
为了便于理解上述卷积运算过程中的点乘运算,可以结合如下公式进行说明。
由上式可知,在对输入特征Ifmap做拆分操作后,把C方向的乘加放到R,S方向后就可以有效利用C,R,S方向的乘加。相比相关技术中需要C/PE_HEIGHT次pass才可以完成运算,这里仅需要C/(R*S)/PE_HEIGHT个pass就可以完成计算,其pass个数是优化前的1/(R*S),相应的指令个数仅为之前的1/(R*S)。
除此之外,假设PE阵列一个pass需要n个循环等待配置指令的下发。优化前的PE阵列计算的占空比只有1/n,优化后一个pass需要R*S个循环完成计算。优化后PE阵列计算的占空比为R*S/n,占空比提升了R*S倍。进而提升了PE阵列的利用率。
本公开实施例提供的数据处理方法,可以采用各种拆分方式进行拆分,这其中可以考虑不同拆分方向、不同的拆分顺序、不同的拆分个数等各种因素,例如,可以是仅拆分在行方向上,还可以是仅在列方向上拆分,还可以是在行列方向上均进行拆分;再如,可以是拆分出更少的特征个数,也可以是拆分出更多的特征个数;再如,可以是按顺序拆分,还可以是其他拆分顺序,在此均不做具体的限制。
拆分后的输入矩阵个数/PE阵列的行数取整小于初始的输入特征/PE阵列的行数取整,即代表启动PE阵列的pass个数减少,如此即可提高PE阵列的计算效率。如:输入特征表征为NCHW=1*1280*1*1,PE阵列是由16*16的计算单元构成的阵列,初始的输入特征/PE阵列的行数为80,PE阵列启动80次;将其拆分为1264个矩阵,其中包括1263个1*1和1个1*16或2*8或2*4或16*1,拆分后的输入矩阵个数/PE阵列的行数为79,PE阵列启动79次,相较于拆分前减少了运算时间。
为了尽可能的确保计算资源的平均分配,在实际应用中,拆分的多个输入矩阵可以是行列分布一致的多个矩阵,这样,便于进行拆分;其次,不同输入矩阵几乎可以同时输出运算结果,从而确保更为快速的得到全连接层的输出特征以支持全连接层的运算。
在实际应用中,输入矩阵的个数大于等于所述PE阵列的行数,这样,在每次启动PE阵列的情况下,PE阵列的行计算资源得以充分的利用。例如,针对NCHW=1*1280*1*1这一输入特征而言,在PE阵列有16行的情况下,可以拆分出16个20*4的输入矩阵,从而确保每次启动PE阵列均可以占满16行计算资源进行运算。
在一些特殊情况下,输入矩阵的个数也可以小于PE阵列的行数,这里并不做具体的限制。
为了进一步确保在每次启动PE阵列的情况下,PE阵列的行计算资源得以充分利用,这时输入矩阵的个数为所述PE阵列行数的整数倍。例如,针对NCHW=1*1280*1*1这一输入特征而言,在PE阵列有16行的情况下,可以拆分出64个5*4的输入矩阵,这样,在经过4次启动即可完成整个运算。如若拆分不满足上述整数倍的要求,这时,可能存在某次启动无法充分利用PE阵列的情况,会对PE阵列的利用率带来一定的影响。
在本公开实施例中,输入矩阵的特征个数小于等于所述PE阵列的计算单元的计算阈值,这主要是考虑到输入特征越多,一定程度上所需的计算资源越多,反之,输入特征越少,一定程度上所需的计算资源越少,为了尽可能的确保在PE阵列的计算单元内完成运算才进行了上述约束,从而确保后续能够提供更为准确的计算。
在实际应用中,输入矩阵在行方向上的特征个数小于等于所述PE阵列的计算单元在行方向上的计算阈值;输入矩阵在列方向上的特征个数小于等于所述PE阵列的计算单元在列方向上的计算阈值。
这里以输入矩阵在行方向的特征个数为20为例,这时,PE阵列的计算单元在行方向上的计算阈值需要大于20才能够满足计算需求。
为了进一步理解本公开实施例提供的数据处理方法,接下来结合一个具体的示例进行说明。
假设全连接层中的输入特征Ifmap表示为NCHW=1*1280*1*1,输出特征Ofmap表示为MEF=1000*1*1,权重参数中RS=1*1。
按照原始的拆分方法一个pass中NCHW=1*16*1*1,MEF=32*1*1,一个pass的计算中计算时间仅需要1拍,但此时需要1280/16=80个pass,此时指令的解析会成为计算的瓶颈。
在利用本公开实施例提供的数据处理方法进行拆分后,可以将原始的Ifmap和weight分别确定为NCHW=1*16*20*4,RS=20*4,一个pass中NCHW=1*16*20*4,MEF=32*1*1,计算时间为20*4=80拍,这样就能够充分利用计算单元进行计算,减少指令的条数,即一个pass即可。
使用mobilenet_v2_1.0.224中的最后一层全连接层进行测试NCHW=1*1280*1*1,MEF=1001*1*1。
这里,原始拆分方法测试指令总共的计算时间为652938ns,然而利用本公开实施例提供的数据处理方法优化后NCHW拆分为1*16*20*4,MCRS拆分为1001*16*20*4,此时总计算时间仅需150915ns,显著提升了计算效率。
可知的是,优化后计算时间仅为优化前的150915/652938=23%,减少了77%左右的计算时间,此外,动作指令的条数在优化之前有10000条左右,优化后降为1000条左右,动作指令的条数降低了90%,显著降低了指令复杂度。
在本说明书的描述中,参考术语“一些可能的实施方式”、“一些实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方式或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式或示例以及不同实施方式或示例的特征进行结合和组合。
关于本公开实施方式的方法流程图,将某些操作描述为以一定顺序执行的不同的步骤。这样的流程图属于说明性的而非限制性的。可以将在本文中所描述的某些步骤分组在一起并且在单个操作中执行、可以将某些步骤分割成多个子步骤、并且可以以不同于在本文中所示出的顺序来执行某些步骤。可以由任何电路结构和/或有形机制(例如,由在计算机设备上运行的软件、硬件(例如,处理器或芯片实现的逻辑功能)等、和/或其任何组合)以任何方式来实现在流程图中所示出的各个步骤。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据处理方法对应的数据处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图3所示,为本公开实施例提供的一种数据处理装置的示意图,所述装置包括:获取模块301、拆分模块302、运算模块303;其中,
获取模块301,用于获取全连接层的输入特征及权重参数;
拆分模块302,用于将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
运算模块303,用于将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
采用上述数据处理装置,在获取到全连接层的输入特征及权重参数的情况下,可以将输入特征拆分为多个输入矩阵,并将权重参数对应拆分为多个权重矩阵,这样,在将多个输入矩阵及多个权重矩阵输入到PE阵列进行卷积计算之后,即可得到全连接层的输出特征。在进行拆分的过程中,不管是拆分得到的输入矩阵在行方向的特征个数大于1,还是在列方向上的特征个数大于1,都能够将全连接层输入的在一个维度上的数据拆分出一部分到行/列上参与后续的运算,这将使得每次启动PE阵列时可以占用更多的计算单元,从而提升PE阵列的利用率。
一种可能的实施方式中,多个所述输入矩阵的行列分布均一致。
在一种可能的实施方式中,所述输入矩阵的个数大于等于所述PE阵列的行数。
在一种可能的实施方式中,所述输入矩阵的个数为所述PE阵列行数的整数倍。
在一种可能的实施方式中,所述输入矩阵的特征个数小于等于所述PE阵列的计算单元的计算阈值。
在一种可能的实施方式中,所述输入矩阵在行方向上的特征个数小于等于所述PE阵列的计算单元在行方向上的计算阈值。
在一种可能的实施方式中,所述输入矩阵在列方向上的特征个数小于等于所述PE阵列的计算单元在列方向上的计算阈值。
在一种可能的实施方式中,所述全连接层的输入特征为一维向量,所述权重参数在列方向上的特征个数与所述一维向量的特征个数一致。
在一种可能的实施方式中,所述运算模块303,用于按照如下步骤将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算:
针对每个输入矩阵及对应的权重矩阵,利用所述PE阵列的一个计算单元对所述输入矩阵与对应的权重矩阵进行点乘运算,得到运算结果;
将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总,得到所述全连接层的输出特征。
在一种可能的实施方式中,所述运算模块303,用于按照如下步骤将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总:
将所述PE阵列中处于同一列的计算单元得到的运算结果进行叠加,得到所述全连接层的输出特征。
需要说明的是,本公开实施方式中的装置可以实现前述方法的实施方式的各个过程,并达到相同的效果和功能,这里不再赘述。
本公开实施例还提供了一种电子设备,如图4所示,为本公开实施例提供的电子设备结构示意图,包括:处理器401、存储器402、和总线403。所述存储器402存储有所述处理器401可执行的机器可读指令(比如,图3中的装置中获取模块301、拆分模块302、运算模块303对应的执行指令等),当电子设备运行时,所述处理器401与所述存储器402之间通过总线403通信,所述机器可读指令被所述处理器401执行时执行如下处理:
获取全连接层的输入特征及权重参数;
将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
本公开中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,对于装置、设备和计算机可读存储介质实施方式而言,由于其基本相似于方法实施方式,所以其描述进行了简化,相关之处可参见方法实施方式的部分说明即可。
本公开实施方式提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
本领域内的技术人员应明白,本公开的实施方式可提供为方法、装置(设备或系统)、或计算机可读存储介质。因此,本公开可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机可读存储介质的形式。
本公开是参照根据本公开实施方式的方法、装置(设备或系统)、和计算机可读存储介质的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
获取全连接层的输入特征及权重参数;
将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
2.根据权利要求1所述的方法,其特征在于,多个所述输入矩阵的行列分布均一致。
3.根据权利要求1所述的方法,其特征在于,所述输入矩阵的个数大于等于所述PE阵列的行数。
4.根据权利要求1所述的方法,其特征在于,所述输入矩阵的个数为所述PE阵列行数的整数倍。
5.根据权利要求1所述的方法,其特征在于,所述输入矩阵的特征个数小于等于所述PE阵列的计算单元的计算阈值。
6.根据权利要求5所述的方法,其特征在于,所述输入矩阵在行方向上的特征个数小于等于所述PE阵列的计算单元在行方向上的计算阈值。
7.根据权利要求5所述的方法,其特征在于,所述输入矩阵在列方向上的特征个数小于等于所述PE阵列的计算单元在列方向上的计算阈值。
8.根据权利要求1所述的方法,其特征在于,所述全连接层的输入特征为一维向量,所述权重参数在列方向上的特征个数与所述一维向量的特征个数一致。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,包括:
针对每个输入矩阵及对应的权重矩阵,利用所述PE阵列的一个计算单元对所述输入矩阵与对应的权重矩阵进行点乘运算,得到运算结果;
将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总,得到所述全连接层的输出特征。
10.根据权利要求9所述的方法,其特征在于,所述将每个输入矩阵及对应的权重矩阵得到的运算结果进行汇总,包括:
将所述PE阵列中处于同一列的计算单元得到的运算结果进行叠加,得到所述全连接层的输出特征。
11.一种数据处理装置,其特征在于,包括:
获取模块,用于获取全连接层的输入特征及权重参数;
拆分模块,用于将所述输入特征拆分为多个输入矩阵,并将所述权重参数对应拆分为多个权重矩阵,至少一个所述输入矩阵在行方向上的特征个数大于1,和/或,在列方向上的特征个数大于1;
运算模块,用于将多个所述输入矩阵及多个所述权重矩阵输入至PE阵列进行卷积运算,得到所述全连接层的输出特征。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至10中任一项所述的数据处理方法。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211350775.2A CN115829000A (zh) | 2022-10-31 | 2022-10-31 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211350775.2A CN115829000A (zh) | 2022-10-31 | 2022-10-31 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115829000A true CN115829000A (zh) | 2023-03-21 |
Family
ID=85525957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211350775.2A Pending CN115829000A (zh) | 2022-10-31 | 2022-10-31 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115829000A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980277A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-10-31 CN CN202211350775.2A patent/CN115829000A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980277A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116980277B (zh) * | 2023-09-18 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111758107B (zh) | 用于基于硬件的池化的系统和方法 | |
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
CN111897579A (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN111090467A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
US11625911B2 (en) | Image recognition neural network processing method, device and system | |
US20230068450A1 (en) | Method and apparatus for processing sparse data | |
CN110866610A (zh) | 一种深度学习模型分布式运算的方法及装置 | |
CN115829000A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114924748A (zh) | 编译方法、装置及设备 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN109844774B (zh) | 一种并行反卷积计算方法、单引擎计算方法及相关产品 | |
CN116991560A (zh) | 针对语言模型的并行调度方法、装置、设备及存储介质 | |
CN112966729B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN114968362B (zh) | 异构融合计算指令集以及使用方法 | |
CN111027688A (zh) | 一种基于fpga的神经网络计算器生成方法及装置 | |
CN107122303B (zh) | 一种测试方法及装置 | |
CN115480919A (zh) | 卷积优化运算方法、装置、计算机设备及存储介质 | |
CN112015325B (zh) | 一种生成解码矩阵的方法、解码方法和对应装置 | |
Lee et al. | Acceleration of dnn training regularization: Dropout accelerator | |
CN111931919B (zh) | 一种基于脉动阵列的稀疏神经网络计算方法及装置 | |
CN110929623A (zh) | 多媒体文件的识别方法、装置、服务器和存储介质 | |
US20240070538A1 (en) | Feature interaction using attention-based feature selection | |
Mehrez et al. | Understanding the performances of sparse compression formats using data parallel programming model | |
CN117196015A (zh) | 算子执行方法、装置、电子设备及存储介质 | |
CN118469795A (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 |