CN116781484B - 数据处理方法、装置、计算机设备及存储介质 - Google Patents
数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116781484B CN116781484B CN202311076186.4A CN202311076186A CN116781484B CN 116781484 B CN116781484 B CN 116781484B CN 202311076186 A CN202311076186 A CN 202311076186A CN 116781484 B CN116781484 B CN 116781484B
- Authority
- CN
- China
- Prior art keywords
- convolution
- convolution kernel
- size
- expansion
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 41
- 239000011159 matrix material Substances 0.000 claims abstract description 85
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 49
- 230000015654 memory Effects 0.000 claims description 129
- 238000004590 computer program Methods 0.000 claims description 17
- 230000010349 pulsation Effects 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 10
- 230000003362 replicative effect Effects 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000013473 artificial intelligence Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000001133 acceleration Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000003491 array Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Abstract
本申请公开了一种数据处理方法、装置、计算机设备及存储介质,属于计算机技术领域。该方法包括:获取待处理数据和脉动阵列的列数,待处理数据包括待卷积的输入数据和至少一个卷积核,脉动阵列中每一列的计算单元用于对输入数据和一个卷积核进行卷积;在卷积核的个数不大于脉动阵列的列数的情况下,基于脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数;基于扩充系数,对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大;在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。脉动阵列能够加速模型中的矩阵乘法与卷积运算,本申请能够提高脉动阵列的利用率,有利于充分利用脉动阵列的计算能力。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
脉动阵列是处理器中的一种阵列结构的计算器件,可被用于实现乘积累加运算。由于卷积操作涉及到乘积累加运算,所以在卷积神经网络中可以使用脉动阵列来进行卷积。
其中,脉动阵列中每一列的计算单元可用于基于一个卷积核进行卷积操作,如果一个卷积处理中的卷积核的个数小于脉动阵列的列数,那么脉动阵列中会存在一些行列的计算单元没有被使用到,导致脉动阵列的利用率较低,难以充分利用脉动阵列的计算能力。
发明内容
本申请实施例提供了一种数据处理方法、装置、计算机设备及存储介质,能够提高脉动阵列的利用率,有利于充分利用脉动阵列的计算能力。所述技术方案如下。
一方面,提供了一种数据处理方法,所述方法包括:获取待处理数据和脉动阵列的列数,所述待处理数据包括待卷积的输入数据和至少一个卷积核,所述脉动阵列为处理器中的计算器件,所述计算器件包括多个计算单元,所述脉动阵列中每一列的计算单元用于对所述输入数据和一个卷积核进行卷积;在所述卷积核的个数不大于所述脉动阵列的列数的情况下,基于所述脉动阵列的列数和所述卷积核的个数之间的比值,确定扩充系数;基于所述扩充系数,对所述卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大;在所述脉动阵列的计算单元上,对所述输入数据和扩充后的卷积核进行卷积,得到输出数据。
另一方面,提供了一种数据处理装置,所述装置包括:数据获取模块,用于获取待处理数据和脉动阵列的列数,所述待处理数据包括待卷积的输入数据和至少一个卷积核,所述脉动阵列为处理器中的计算器件,所述计算器件包括多个计算单元,所述脉动阵列中每一列的计算单元用于对所述输入数据和一个卷积核进行卷积;系数确定模块,用于在所述卷积核的个数不大于所述脉动阵列的列数的情况下,基于所述脉动阵列的列数和所述卷积核的个数之间的比值,确定扩充系数;扩充模块,用于基于所述扩充系数,对所述卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大;数据处理模块,用于在所述脉动阵列的计算单元上,对所述输入数据和扩充后的卷积核进行卷积,得到输出数据。
可选地,所述扩充模块,用于:基于所述扩充系数和第一卷积步长,确定第二卷积步长,所述第一卷积步长为扩充前的卷积核的卷积步长,第二卷积步长为扩充后的卷积核的卷积步长;基于所述扩充系数和第一尺寸,确定第二尺寸,所述第一尺寸为扩充前的卷积核的尺寸,所述第二尺寸为扩充后的卷积核的尺寸;将所述至少一个卷积核复制k-1份,所述k等于所述扩充系数;对每个卷积核进行填充,以使填充后的卷积核的尺寸等于所述第二尺寸。
可选地,所述扩充模块,用于:基于所述扩充系数、所述第一卷积步长和所述第二卷积步长,确定所述第二尺寸,以使第一乘积与第二乘积的比值等于所述扩充系数;其中,所述第一乘积表示基于所述第一尺寸的卷积核按照所述第一卷积步长对所述输入数据进行卷积所得到的输出数据的高度和宽度的乘积,所述第二乘积表示基于所述第二尺寸的卷积核按照所述第二卷积步长对所述输入数据进行卷积所得到的输出数据的高度和宽度的乘积。
可选地,所述第二卷积步长等于所述第一卷积步长和所述扩充系数的乘积,所述第一尺寸和所述第二尺寸均表示卷积核的宽度;所述扩充模块,用于:确定所述k-1与所述第一卷积步长的乘积,将所述乘积与所述第一尺寸相加,得到所述第二尺寸。
可选地,所述扩充模块,用于:将所述扩充系数和所述第一卷积步长相乘,得到所述第二卷积步长。
可选地,所述卷积核由权值矩阵表示,所述扩充模块,用于:按照所述第一尺寸和所述第二尺寸,在每个卷积核的权值矩阵中填充目标数值,以使填充后的权值矩阵的尺寸等于所述第二尺寸,所述目标数值等于0。
可选地,所述扩充模块,用于:将复制后的多个卷积核按照顺序划分为k组卷积核集合,每组卷积核集合包括连续的多个卷积核,且每组卷积核集合中的卷积核的个数相等;将所述第二尺寸和所述第一尺寸的差值确定为第三尺寸;对于每组卷积核集合,在同一组卷积核集合中的每个卷积核的权值矩阵中相同的位置填充所述目标数值,且填充所述目标数值的位置的总尺寸等于所述第三尺寸,且不同组的卷积核集合中的卷积核的权值矩阵中填充所述目标数值的位置不同。
可选地,所述第一尺寸、所述第二尺寸和所述第三尺寸均为宽度,所述第三尺寸等于m,所述m为正整数;所述扩充模块,用于:在第i组卷积核集合中的每个卷积核的权值矩阵的左侧填充i-1列所述目标数值,在每个卷积核的权值矩阵的右侧填充m-i+1列所述目标数值,所述i为不大于k的正整数。
可选地,所述第一尺寸、所述第二尺寸和所述第三尺寸均为高度,所述第三尺寸等于n,所述n为正整数;所述扩充模块,用于:在第i组卷积核集合中的每个卷积核的权值矩阵的上侧填充i-1行所述目标数值,在每个卷积核的权值矩阵的下侧填充n-i+1行所述目标数值,所述i为不大于k的正整数。
可选地,所述卷积核还包括偏置参数,所述扩充模块,用于:对于每个所述卷积核,将所述卷积核以及所述卷积核的偏置参数分别复制k-1份。
可选地,所述系数确定模块,用于:确定所述脉动阵列的列数和所述卷积核的个数之间的比值;对所述比值进行向下取整,得到参考数值;基于所述参考数值,确定所述扩充系数。
可选地,所述待处理数据存储于所述处理器上的第一存储器中,所述脉动阵列用于从所述处理器上的第二存储器中获取所述待处理数据,所述处理器上还包括数据搬运引擎;所述系数确定模块,用于:在所述数据搬运引擎支持随路扩充的情况下,将所述参考数值确定为所述扩充系数,所述随路扩充是指在任一存储器中对卷积核进行扩充;所述扩充模块,用于:通过所述数据搬运引擎,将所述输入数据和所述卷积核从所述第一存储器搬运至所述第二存储器,在所述第二存储器中基于所述扩充系数对所述卷积核进行扩充。
可选地,所述待处理数据存储于所述处理器上的第一存储器中,所述脉动阵列用于从所述处理器上的第二存储器中获取所述待处理数据,所述处理器上还包括数据搬运引擎;所述系数确定模块,用于:在所述数据搬运引擎不支持随路扩充的情况下,将大于1且小于所述参考数值的整数确定为所述扩充系数,所述随路扩充是指在任一存储器中对卷积核进行扩充;所述扩充模块,用于:在所述第一存储器中基于所述扩充系数对所述卷积核进行扩充,通过所述数据搬运引擎,将所述输入数据和扩充后的卷积核从所述第一存储器搬运至所述第二存储器。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如上述方面所述的数据处理方法所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如上述方面所述的数据处理方法所执行的操作。
另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述方面所述的数据处理方法所执行的操作。
本申请实施例提供的方案,如果待进行卷积的卷积核的个数不大于脉动阵列的列数,那么该脉动阵列中会存在计算单元不会被使用到,基于此,按照脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数,然后按照该扩充系数,对原始的卷积核进行扩充,来增大卷积核的个数,同时还增大卷积核的尺寸和卷积步长,以抵消卷积核个数增加所带来的影响,相当于将少量卷积核在较小卷积步长上的计算量等效为更多卷积核在较大卷积步长上的计算量,由于增大了卷积核的个数,使得脉动阵列中更多的计算单元可以被使用到,因此可以提高脉动阵列的利用率,有利于充分利用脉动阵列的计算能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理方法的系统架构图。
图2是本申请实施例提供的一种数据处理方法的流程图。
图3是本申请实施例提供的另一种数据处理方法的流程图。
图4是本申请实施例提供的一种偏置参数扩充方法的示意图。
图5是本申请实施例提供的一种卷积核扩充方法的示意图。
图6是本申请实施例提供的再一种数据处理方法的示意图。
图7是本申请实施例提供的又一种数据处理方法的流程图。
图8是本申请实施例提供的又一种数据处理方法的流程图。
图9是本申请实施例提供的又一种数据处理方法的流程图。
图10是本申请实施例提供的又一种数据处理方法的流程图。
图11是本申请实施例提供的一种数据处理装置的结构示意图。
图12是本申请实施例提供的一种终端的结构示意图。
图13是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一尺寸称为第二尺寸,且类似地,可将第二尺寸称为第一尺寸。
其中,至少一个是指一个或者一个以上,例如,至少一个卷积核可以是一个卷积核、两个卷积核、三个卷积核等任一大于等于一的整数个卷积核。多个是指两个或者两个以上,例如,多个卷积核可以是两个卷积核、三个卷积核等任一大于等于二的整数个卷积核。每个是指至少一个中的每一个,例如,每个卷积核是指多个卷积核中的每一个卷积核,若多个卷积核为3个卷积核,则每个卷积核是指3个卷积核中的每一个卷积核。
可以理解的是,在本申请的实施方式中,涉及到用户信息等(例如待处理数据)相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR(Optical Character Recognition,光学字符识别)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D(3-Dimension,三维)技术、虚拟现实、增强现实、同步定位与地图构建、自动驾驶、智慧交通等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
脉动阵列(Systolic Array Architecture)是由多个处理单元和多个锁存器,按照一定互联规则排列,组成的一种吞吐量很大的流水线式高速计算结构,运算时数据在阵列结构的各处理单元之间沿各自方向同步前进。脉动阵列可集成于AI加速器中,脉动阵列可以并行地对AI大模型中的卷积运算和矩阵乘法等矩阵运算进行出列,提升了运算速度和降低了功耗,从而加速了AI大模型的训练过程和推理过程,进而有利于提高AI大模型的训练速度和计算效率。并且,本申请提供的数据处理方法能够有效地利用脉动阵列的计算资源,能够进一步提升AI大模型的训练速度和计算效率。
以下将基于人工智能技术和计算机视觉技术,对本申请实施例提供的数据处理方法进行说明。
本申请实施例提供的数据处理方法,能够用于计算机设备中。可选地,该计算机设备为服务器或终端。可选地,该服务器是独立的物理服务器,或者,是多个物理服务器构成的服务器集群或者分布式系统,或者,是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。可选地,该终端是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能终端等,但并不局限于此。
在一种可能实现方式中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备能够组成区块链系统。
图1是本申请实施例提供的一种数据处理方法的系统架构图,本申请实施例的执行主体为计算机设备,例如该计算机设备为服务器或者终端。如图1所示,该计算机设备的处理器上集成有矩阵运算加速引擎、数据搬运引擎、二级存储器和三级存储器,例如该处理器可以为人工智能处理器(AI Core)。矩阵运算加速引擎用于实现矩阵运算,数据搬运引擎用于在一级存储器、二级存储器、三级存储器和ACC(Accumulator,累加器)存储器之间进行数据搬运,二级存储器和三级存储器用于存储数据。
矩阵加速引擎包括一级存储器、权值矩阵存储器、偏置参数存储器、脉动阵列、ACC存储器和可编程控制器。一级存储器用于存储数据搬运引擎从二级存储器或三级存储器中搬运的数据,权值矩阵存储器用于存储权值矩阵,偏置参数存储器用于存储偏置参数,脉动阵列用于实现矩阵运算,在本申请实施例中脉动阵列用于进行卷积运算,ACC存储器用于存储脉动阵列的输出数据。
本申请实施例中,可应用于对卷积神经网络中的数据进行卷积运算的场景中,卷积神经网络中的输入数据和卷积核存储在二级存储器或三级存储器中,数据搬运引擎将输入数据和卷积核从二级存储器或三级存储器中搬运至一级存储器中。另外,为了提高脉动阵列的利用率,还对卷积核进行扩充处理(扩充权值矩阵和偏置参数)。后续脉动阵列从一级存储器中获取输入数据和扩充后的卷积核,其中扩充后的卷积核中的权值矩阵可以先从一级存储器传输至权值矩阵存储器中,再由脉动阵列从权值矩阵存储器中获取扩充后的权值矩阵,扩充后的卷积核中的偏置参数可以先从一级存储器传输至偏置参数存储器中,再由脉动阵列从偏置参数存储器中获取扩充后的偏置参数。脉动阵列在获取到输入数据和扩充后的卷积核后,对输入数据和扩充后的卷积核进行卷积,得到输出数据,将输出数据存储在ACC存储器中。数据搬运引擎可以将ACC存储器中的输出数据搬运至二级存储器或三级存储器中,作为下一次卷积运算的输入数据。
本申请实施例提供的数据处理方法,可应用于需要对数据进行卷积运算的任一场景下。例如,应用于对卷积神经网络中的数据进行处理的场景下。其中,卷积神经网络是深度学习领域中兴起最早、发展最深、应用最广的一类深度学习算法,被广泛应用于图像处理、视频处理、语音处理等各个数字处理领域。深度学习的一个显著特点是计算量大、参数量大,传统的处理器难以实时处理,为此相关领域研发了AI(Artificial Intelligence,人工智能)处理器。AI处理器的一个核心特点是脉动阵列的设计,脉动阵列中的计算单元用于实现卷积运算。
但是,脉动阵列对大计算量的卷积层和矩阵乘法较为合适,对于神经网络来说,尤其是超分类神经网络和图像生成类网络等难免存在卷积核数量较小的卷积层,如果直接利用AI处理器中的脉动阵列,会导致脉动阵列的算力利用率低,成为算法加速的瓶颈。例如在脉动阵列的规格为2×64×64的情况下,脉动阵列的列数为64,当卷积神经网络中的卷积层中卷积核的个数小于64时,脉动阵列的算力利用率必定小于100%,例如卷积层中卷积核的个数为3,则脉动阵列的算力利用率最高仅为3/64。
因此,可以采用本申请实施例提供的数据处理方法,如果卷积核的个数较少,那么在使用脉动阵列进行卷积之前,先对卷积核进行扩充,以提高卷积核的个数,将卷积核在高度或宽度方向上的运算量,搬运至卷积核的个数方向上,使用脉动阵列基于扩充后的卷积核进行卷积运算,从而有效提高脉动阵列的算力利用率,加快数据处理速度。
图2是本申请实施例提供的一种数据处理方法的流程图,本申请实施例由计算机设备执行,参见图2,该方法包括以下步骤。
201、计算机设备获取待处理数据和脉动阵列的列数,待处理数据包括待卷积的输入数据和至少一个卷积核,脉动阵列为处理器中的计算器件,计算器件包括多个计算单元,脉动阵列中每一列的计算单元用于对输入数据和一个卷积核进行卷积。
待处理数据包括输入数据和至少一个卷积核,该至少一个卷积核用于对该输入数据进行卷积,该输入数据为待卷积的数据,例如该输入数据为卷积神经网络的某一个卷积层输出的数据,用于输入至下一个卷积层进行卷积运算,那么该卷积核即是下一个卷积层的卷积核。待处理数据中的卷积核的数量可以为一个或者多个,可选地,在卷积核的数量为多个的情况下,该多个卷积核的尺寸相等。
脉动阵列为计算机设备的处理器中的计算器件,该脉动阵列为集成于处理器中的硬件,该脉动阵列由多个计算单元构成,该多个计算单元所构成的结构为阵列结构,因此成为脉动阵列。脉动阵列包括多列计算单元,每一列的计算单元用于对输入数据和一个卷积核进行卷积。
可选地,输入数据以矩阵形式存在,由[Hi,Wi,Ci]表示,Hi表示输入数据的高度,Wi表示输入数据的宽度,Ci表示输入数据的通道数。卷积核以矩阵形式存在,由[Kh,Kw,Ci,Co]表示,Kh表示卷积核的高度,Kw表示卷积核的宽度,Ci表示卷积核的输入通道数,该输入通道数等于输入数据的通道数,Co表示卷积核的个数,也是卷积核的输出通道数,卷积核的输出通道数等于输出数据的通道数。
202、计算机设备在卷积核的个数不大于脉动阵列的列数的情况下,基于脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数。
计算机设备对比待处理数据中的卷积核的个数与脉动阵列的列数,如果卷积核的个数不大于脉动阵列的列数,说明由于卷积核的个数较小会导致脉动阵列的利用率较小,为了提高对脉动阵列的利用率,可以对卷积核进行扩充。因此,计算机设备基于该脉动阵列的列数和卷积核的个数之间的比值,来确定扩充系数。
在一种可能实现方式中,计算机设备可以对卷积核进行成倍扩充,则计算机设备判断卷积核的个数与脉动阵列的列数的二分之一之间的大小,如果卷积核的个数不大于脉动阵列的列数但是大于该列数的二分之一,那么对卷积核进行成倍扩充后,卷积核的个数会大于脉动阵列的列数,导致脉动阵列需要分批次对该卷积核进行卷积。为了保证脉动阵列无需分批次对一个卷积核进行卷积,则需要保证扩充后的卷积核的个数不大于脉动阵列的列数,因此,计算机设备在卷积核的个数不大于脉动阵列的列数的二分之一的情况下,基于脉动阵列的列数和卷积核的个数之间的比值,来确定扩充系数,以保证确定的该扩充系数不大于该列数和卷积核的个数之间的比值。
203、计算机设备基于扩充系数,对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大。
计算机设备在确定扩充系数后,基于该扩充系数对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大。可选地,扩充后的卷积核的个数与扩充前的卷积核的个数之间的比值等于该扩充系数,扩充后的卷积核的卷积步长与扩充前的卷积核的卷积步长之间的比值等于该扩充系数。
由于增大了卷积核的尺寸和卷积步长,该卷积核的尺寸是指在高度或宽度方向上的尺寸,由于增大了卷积核的尺寸和卷积步长,因此降低了卷积核在高度或宽度方向的运算量,由于增大了卷积核的个数,因此增加了输出通道数方向上的运算量,相当于通过对卷积核进行扩充,将高度或宽度方向上的运算量等效至了输出通道数方向上的运算量。与此同时,由于增加了卷积核的个数,因此还可以充分利用脉动阵列的计算能力。
204、计算机设备在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
计算机设备在获取到扩充后的卷积核后,在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。其中,该脉动阵列中多列的计算单元并行地对输入数据和一个卷积核进行卷积,由于扩充后的卷积核的个数增加了,因此使用到的脉动阵列中的计算单元的列数也就增加了,从而提高了该脉动阵列的利用率。
本申请实施例提供的方法,如果待进行卷积的卷积核的个数不大于脉动阵列的列数,那么该脉动阵列中会存在计算单元不会被使用到,基于此,按照脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数,然后按照该扩充系数,对原始的卷积核进行扩充,来增大卷积核的个数,同时还增大卷积核的尺寸和卷积步长,以抵消卷积核个数增加所带来的影响,相当于将少量卷积核在较小卷积步长上的计算量等效为更多卷积核在较大卷积步长上的计算量,由于增大了卷积核的个数,使得脉动阵列中更多的计算单元可以被使用到,因此可以提高脉动阵列的利用率,有利于充分利用脉动阵列的计算能力。
上述图2所示的实施例仅是对数据处理方法的简要说明,其中,确定扩充系数、对卷积核进行扩充的详细过程,可参见下述图3所示的实施例。图3是本申请实施例提供的另一种数据处理方法的流程图,本申请实施例由计算机设备执行,参见图3,该方法包括以下步骤。
301、计算机设备获取待处理数据和脉动阵列的列数,待处理数据包括待卷积的输入数据和至少一个卷积核,脉动阵列为处理器中的计算器件,计算器件包括多个计算单元,脉动阵列中每一列的计算单元用于对输入数据和一个卷积核进行卷积。
该步骤301与上述步骤201同理,在此不再赘述。
302、计算机设备在卷积核的个数不大于脉动阵列的列数的情况下,基于脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数。
计算机设备判断卷积核的个数是否大于脉动阵列的列数的二分之一,如果卷积核的个数不大于脉动阵列的列数,为了提高脉动阵列的利用率,需要对卷积核进行扩充,则计算机设备基于脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数,该扩充系数是指卷积核的扩充倍数。
在一种可能实现方式中,计算机设备在卷积核的个数不大于脉动阵列的列数的二分之一的情况下,基于脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数。可选地,计算机设备确定脉动阵列的列数和卷积核的个数之间的比值,对比值进行向下取整,得到参考数值。计算机设备基于参考数值,确定扩充系数。
本申请实施例中基于扩充系数对卷积核进行成倍扩充,因此要保证扩充后的卷积核的个数不大于脉动阵列的列数,因此该扩充系数必须为不大于脉动阵列的列数和卷积核的个数之间的比值的整数,因此计算机设备在确定脉动阵列的列数和卷积核的个数之间的比值后,先对该比值进行向下取整,得到参考数值,然后基于该参考数值确定扩充系数,该扩充系数应为不大于该参考数值的整数。其中,基于参考数值确定扩充系数可分为两种情况,详细过程请参见下述图7和图8所示的实施例,在此暂不做说明。
303、计算机设备基于扩充系数和第一卷积步长,确定第二卷积步长,第一卷积步长为扩充前的卷积核的卷积步长,第二卷积步长为扩充后的卷积核的卷积步长。
计算机设备基于扩充前的卷积核的卷积步长和扩充系数,确定扩充后的卷积核的卷积步长。
在一种可能实现方式中,计算机设备将扩充系数和第一卷积步长相乘,得到第二卷积步长。
304、计算机设备基于扩充系数和第一尺寸,确定第二尺寸,第一尺寸为扩充前的卷积核的尺寸,第二尺寸为扩充后的卷积核的尺寸。
计算机设备基于扩充前的卷积核的尺寸和扩充系数,确定扩充后的卷积核的尺寸。可选地,卷积核的尺寸包括高度、宽度和通道数,该第二尺寸与第一尺寸相比,仅在高度方向或宽度方向上具有变化,通道数方向上不变。
在一种可能实现方式中,计算机设备基于扩充系数、第一卷积步长和第二卷积步长,确定第二尺寸,以使第一乘积与第二乘积的比值等于扩充系数。其中,第一乘积表示基于第一尺寸的卷积核按照第一卷积步长对输入数据进行卷积所得到的输出数据的高度和宽度的乘积,第二乘积表示基于第二尺寸的卷积核按照第二卷积步长对输入数据进行卷积所得到的输出数据的高度和宽度的乘积。
输出数据包括高度、宽度和通道数三个维度,由于扩充后卷积核的个数与扩充前卷积核的个数之间的比值等于扩充系数,该扩充系数也即是扩充倍数,而卷积核的个数与输出数据的通道数相等,那么在对卷积核进行扩充后,输出数据的通道数与原来的通道数之间的比值也等于扩充系数,为了保证扩充后所得到的输出数据具有等效性,输出数据的尺寸所缩小的倍数需要等于该扩充系数。因此,需要保证扩充前所得到的输出数据的高度和宽度的乘积与扩充后所得到的输出数据的高度和宽度的乘积之间的比值等于该扩充系数。
例如,扩充前的输出数据为[Ho1,Wo1,Co1],扩充后的输出数据为[Ho2,Wo2,Co2],扩充系数等于4,则需要保证Co2/Co1=4,且(Ho2×Wo2)/(Ho1×Wo1)=1/4。
可选地,第二卷积步长等于第一卷积步长和扩充系数的乘积,第一尺寸和第二尺寸均表示卷积核的宽度。计算机设备基于扩充系数、第一卷积步长和第二卷积步长,确定第二尺寸,以使第一乘积与第二乘积的比值等于扩充系数,包括:确定k-1与第一卷积步长的乘积,将乘积与第一尺寸相加,得到第二尺寸。
也即是,将第一尺寸称为第一宽度,第二尺寸称为第二宽度,计算机设备采用以下公式确定第二宽度。
New_Kw=Kw+(Co_Expansion-1)×Stride_W。
其中,New_Kw表示第二宽度,Kw表示第一宽度,Co_Expansion表示扩充系数,Stride_W表示第一卷积步长。
305、计算机设备将至少一个卷积核复制k-1份,k等于扩充系数。
计算机设备需要将卷积核的个数进行扩充,以使扩充后卷积核的个数与扩充前卷积核的个数之间的比值等于扩充系数,将扩充系数称为k,则计算机设备将该至少一个卷积核复制k-1份,那么扩充后的卷积核的个数即为扩充前的卷积核的个数的k倍。例如,卷积核的个数为16个,扩充系数为4,计算机设备需要将16个卷积核复制3份,也即是新增48个卷积核,那么扩充后的卷积核的个数即为64个。
在一种可能实现方式中,卷积核还包括偏置参数,该偏置参数表示该卷积核的权重,用于对基于该卷积核进行卷积所得到的数据进行加权。则计算机设备对于每个卷积核,将该卷积核以及卷积核的偏置参数分别复制k-1份。也即是,每个卷积核对应有各自的偏置参数,计算机设备在复制每个卷积核时,同时还复制该卷积核对应的偏置参数。
图4是本申请实施例提供的一种偏置参数扩充方法的示意图,如图4所示,卷积核的个数为16个,每个卷积核对应有各自的偏置参数,16个卷积核的偏置参数分别为Co0、Co1、Co2、Co3……Co14和Co15,扩充系数为4,在将每个卷积核复制3份的同时,还将各自的偏置参数复制3份,最终得到64个卷积核和64个偏置参数。
306、计算机设备对每个卷积核进行填充,以使填充后的卷积核的尺寸等于第二尺寸。
计算机设备在扩充卷积核的个数之后,对每个卷积核进行填充,使得填充后的卷积核的尺寸等于第二尺寸。例如,卷积核的第一尺寸为3×3,第二尺寸为3×6,则需要对卷积核进行填充,得到尺寸为3×6的卷积核。
在一种可能实现方式中,卷积核由权值矩阵表示。计算机设备按照第一尺寸和第二尺寸,在每个卷积核的权值矩阵中填充目标数值,以使填充后的权值矩阵的尺寸等于第二尺寸,目标数值等于0。
可选地,计算机设备按照第一尺寸和第二尺寸,在每个卷积核的权值矩阵中填充目标数值,包括以下步骤3061-步骤3063。
3061、计算机设备将复制后的多个卷积核按照顺序划分为k组卷积核集合,每组卷积核集合包括连续的多个卷积核,且每组卷积核集合中的卷积核的个数相等。
以扩充前的卷积核的个数为第一数量为例,扩充后的卷积核的个数为第二数量,第二数量除以第一数量等于k,k为扩充系数,则将该第二数量的卷积核按照顺序划分为k组卷积核集合,每组卷积核集合中包括连续的第一数量个卷积核。
3062、计算机设备将第二尺寸和第一尺寸的差值确定为第三尺寸。
例如,第一尺寸表示扩充前的卷积核的宽度,第二尺寸表示扩充后的卷积核的宽度,则第三尺寸表示所需填充的宽度。例如,第一尺寸表示扩充前的卷积核的高度,第二尺寸表示扩充后的卷积核的高度,则第三尺寸表示所需填充的高度。或者,第一尺寸包括扩充前的卷积核的宽度和高度,第二尺寸包括扩充后的卷积核的宽度和高度,则第三尺寸包括所需填充的宽度和高度。
3063、计算机设备对于每组卷积核集合,在同一组卷积核集合中的每个卷积核的权值矩阵中相同的位置填充目标数值,且填充目标数值的位置的总尺寸等于第三尺寸,且不同组的卷积核集合中的卷积核的权值矩阵中填充目标数值的位置不同。
同一组卷积核集合中的卷积核的填充方式相同,不同组的卷积核集合中的卷积核的填充方式不同。以某一个卷积核为例,卷积核的权值矩阵表示为[Kh,Kw,Ci],Kh表示卷积核的高度,Kw表示卷积核的宽度,Ci表示卷积核的输入通道数。扩充前权值矩阵的尺寸为[Kh,3,Ci],扩充后权值矩阵的尺寸为[Kh,6,Ci],则需要填充尺寸为[Kh,3,Ci]的零值矩阵,该零值矩阵中的每个数值均等于0。
可选地,如果在宽度方向上对卷积核进行尺寸进行扩充,那么需要在宽度方向上进行填充。例如,第一尺寸、第二尺寸和第三尺寸均为宽度,第三尺寸等于m,m为正整数。则计算机设备在第i组卷积核集合中的每个卷积核的权值矩阵的左侧填充i-1列目标数值,在每个卷积核的权值矩阵的右侧填充m-i+1列目标数值,i为不大于k的正整数。
图5是本申请实施例提供的一种卷积核扩充方法的示意图,扩充系数等于4,扩充前卷积核的个数为16,扩充后卷积核的个数为64,扩充前卷积核的宽度为3,扩充后卷积核的宽度为6,则需要在第1组卷积核集合的每个卷积核的权值矩阵右侧填充宽度为3的零值矩阵;在第2组卷积核集合的每个卷积核的权值矩阵左侧填充宽度为1的零值矩阵,在右侧填充宽度为2的零值矩阵;在第3组卷积核集合的每个卷积核的权值矩阵左侧填充宽度为2的零值矩阵,在右侧填充宽度为1的零值矩阵;在第4组卷积核集合的每个卷积核的权值矩阵左侧填充宽度为3的零值矩阵。
可选地,如果在高度方向上对卷积核进行尺寸进行扩充,那么需要在高度方向上进行填充。第一尺寸、第二尺寸和第三尺寸均为高度,第三尺寸等于n,n为正整数。计算机设备在第i组卷积核集合中的每个卷积核的权值矩阵的上侧填充i-1行目标数值,在每个卷积核的权值矩阵的下侧填充n-i+1行目标数值,i为不大于k的正整数。
例如,扩充系数等于4,扩充前卷积核的个数为16,扩充后卷积核的个数为64,扩充前卷积核的高度为3,扩充后卷积核的高度为6,则需要在第1组卷积核集合的每个卷积核的权值矩阵下侧填充高度为3的零值矩阵;在第2组卷积核集合的每个卷积核的权值矩阵上侧填充高度为1的零值矩阵,在下侧填充高度为2的零值矩阵;在第3组卷积核集合的每个卷积核的权值矩阵上侧填充高度为2的零值矩阵,在下侧填充高度为1的零值矩阵;在第4组卷积核集合的每个卷积核的权值矩阵上侧填充高度为3的零值矩阵。
307、计算机设备在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
计算机设备在获取到扩充后的卷积核后,在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。其中,该脉动阵列中多列的计算单元并行地对输入数据和一个卷积核进行卷积,由于扩充后的卷积核的个数增加了,因此使用到的脉动阵列中的计算单元的列数也就增加了,从而提高了该脉动阵列的利用率。
需要说明的是,如果仅在宽度方向上对卷积核进行扩充,那么扩充后所得到的输出数据可以直接等效于扩充前所得到的输出数据,无需对输出数据进行数据重排布,直接将该输出数据作为处理结果或者作为下一个输入数据即可。如果在高度方向或者高度和宽度方向上对卷积核进行扩充,则在得到输出数据后,还需要根据扩充方式,对输出数据进行数据重排布,以使重排布后所得到输出数据等效于扩充前所得到的输出数据。
图6是本申请实施例提供的再一种数据处理方法的示意图,图6以在宽度方向上进行扩充为例,输入数据为[Hi,Wi,Ci],Hi表示输入数据的高度,Wi表示输入数据的宽度,Ci表示输入数据的通道数,卷积核为[Kh,Kw,Ci,Co],Kh表示卷积核的高度,Kh=3,Kw表示卷积核的宽度,Kw=3,Ci表示卷积核的输入通道数,Co表示卷积核的输出通道数,也是卷积核的个数,Co=16,卷积核的卷积步长Stride_W=1,如果不对卷积核进行扩充,输出数据为[Ho,Wo,Co]。
为了提高脉动阵列的利用率,以扩充系数Co_Expansion=4,对卷积核进行宽度方向上的扩充,扩充后的卷积核为[Kh,New_Kw,Ci,New_Co],New_Kw=Kw+(Co_Expansion-1)×Stride_W=6,New_Co=Co_Expansion×Co=64,扩充后的输出数据为[Ho,Wo/4,New_Co]。其中,扩充后的卷积核的个数为64个,如图6所示,这64个卷积核的排列顺序为从第一行第一个到第一行最后一个,再从第二行第一个到第二行最后一个,以此类推,直至到最后一行最后一个。其中,卷积核中的加粗部分为对原始的卷积核进行复制得到的,未加粗部分为填充0得到的。
在对卷积核进行扩充之前,在脉动阵列上进行卷积运算所需花费的运算时间可表示为下述公式。
Compute_Time=Ho×Wo×Ceil(Co/N)×Kh×Kw×Ceil(Ci/K)。
其中,Compute_Time表示扩充前的运算时间,Ho表示输出数据的高度,Wo表示输出数据的宽度,Co表示输出数据的通道数,N表示脉动阵列的列数,Ceil(Co/N)表示对Co/N进行向上取整,Kh表示卷积核的高度,Kw表示卷积核的宽度,Ci表示卷积核的输入通道数,也是输入数据的通道数,K表示脉动阵列的行数,Ceil(Ci/K)表示对Ci/K进行向上取整。
在对卷积核进行扩充之后,在脉动阵列上进行卷积运算所需花费的运算时间可表示为下述公式。
New_Compute_Time=Ho×Wo/Co_Expansion×Ceil(Co×Co_Expansion/N)×Kh×New_Kw×Ceil(Ci/K)。
其中,New_Compute_Time表示扩充后的运算时间,Ho表示输出数据的高度,Wo表示输出数据的宽度,Co_Expansion表示扩充系数,Co表示输出数据的通道数,N表示脉动阵列的列数,Ceil(Co×Co_Expansion/N)表示对Co×Co_Expansion/N进行向上取整,Kh表示卷积核的高度,New_Kw表示扩充后卷积核的宽度,Ci表示卷积核的输入通道数,也是输入数据的通道数,K表示脉动阵列的行数,Ceil(Ci/K)表示对Ci/K进行向上取整。
针对Co较小的场景,上面2个公式中Ceil(Co/N)和Ceil(Co×Co_Expansion/N)均等于1,因此通过对卷积核进行扩充,运算时间的加速倍数可表示为下述公式。
Ratio=Co_Expansion×Kw/New_Kw。
其中,Ratio表示运算时间的加速倍数,Co_Expansion表示扩充系数,Kw表示卷积核的宽度,New_Kw表示扩充后卷积核的宽度。运算时间的加速倍数随着Co_Expansion和Kw变化,以Kh=3,Kw=3,Stride_w=1,Co=16的卷积核为例,针对N=64的脉动阵列来说,加速倍数等于2。
本申请实施例提供的方法,如果待进行卷积的卷积核的个数不大于脉动阵列的列数,那么该脉动阵列中会存在计算单元不会被使用到,基于此,按照脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数,然后按照该扩充系数,对原始的卷积核进行扩充,来增大卷积核的个数,同时还增大卷积核的尺寸和卷积步长,以抵消卷积核个数增加所带来的影响,相当于将少量卷积核在较小卷积步长上的计算量等效为更多卷积核在较大卷积步长上的计算量,由于增大了卷积核的个数,使得脉动阵列中更多的计算单元可以被使用到,因此可以提高脉动阵列的利用率,有利于充分利用脉动阵列的计算能力。
在另一实施例中,待处理数据存储于处理器上的第一存储器中,脉动阵列用于从处理器上的第二存储器中获取待处理数据,处理器上还包括数据搬运引擎,该数据搬运引擎用于将待处理数据从第一存储器搬运至第二存储器,以便脉动阵列从第二存储器中获取待处理数据。例如该第一存储器为图1所示的二级存储器或三级存储器,该第二存储器为图1所示的一级存储器。
那么,在采用本申请实施例提供的数据处理方法对卷积核进行扩充的同时,由于增大了卷积核的数据量,因此增加了数据搬运引擎搬运数据的数据量。因此,在需要对卷积核进行扩充时,还需要考虑数据搬运引擎的搬运量是否会过大。基于此,针对数据搬运引擎是否支持随路扩充,分别提供了下述图7和图8所示的实施例,来对数据处理过程进行说明。
图7是本申请实施例提供的又一种数据处理方法的流程图,本申请实施例由计算机设备执行,图7以数据搬运引擎支持随路扩充为例,参见图7,该方法包括以下步骤。
701、计算机设备获取待处理数据和脉动阵列的列数,待处理数据包括待卷积的输入数据和至少一个卷积核,脉动阵列为处理器中的计算器件,计算器件包括多个计算单元,脉动阵列中每一列的计算单元用于对输入数据和一个卷积核进行卷积。
该步骤701与上述步骤201同理,在此不再赘述。
702、计算机设备在卷积核的个数不大于脉动阵列的列数的二分之一的情况下,确定脉动阵列的列数和卷积核的个数之间的比值,对比值进行向下取整,得到参考数值。
计算机设备判断卷积核的个数是否大于脉动阵列的列数的二分之一,如果卷积核的个数不大于脉动阵列的列数的二分之一,为了提高脉动阵列的利用率,需要对卷积核进行扩充,则计算机设备确定脉动阵列的列数和卷积核的个数之间的比值,对比值进行向下取整,得到参考数值,后续基于该参考数据来确定扩充系数。
703、计算机设备在数据搬运引擎支持随路扩充的情况下,将参考数值确定为扩充系数。
计算机设备确定处理器中的数据搬运引擎是否支持随路扩充,随路扩充是指在任一存储器中对卷积核进行扩充。如果数据搬运引擎支持随路扩充,则表示该数据搬运引擎具有在任一存储器中对卷积核进行扩充的功能。这种情况下,数据搬运引擎可以先将待处理数据从第一存储器搬运至第二存储器中,然后在第二存储器中对卷积核进行扩充,由于搬运时还没有对卷积核进行扩充,所以无需考虑扩充卷积核对数据搬运过程的影响。而扩充系数必须为不大于参考数值的整数,也即是扩充系数的最大取值为该参考数值,而扩充系数越大,对脉动阵列的利用率就越高,因此计算机设备直接将该参考数值确定为扩充系数。
704、计算机设备通过数据搬运引擎,将输入数据和卷积核从第一存储器搬运至第二存储器,在第二存储器中基于扩充系数对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大。
由于数据搬运引擎具有随路扩充能力,因此计算机设备先通过数据搬运引擎,将输入数据和卷积核从第一存储器搬运至第二存储器,然后再通过该数据搬运引擎,在该第二存储器中基于该扩充系数对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大,从而保证后续脉动阵列能够在第二存储器中获取到扩充后的卷积核。
其中,在第二存储器中基于扩充系数对卷积核进行扩充的过程,与上述步骤303-步骤306的过程同理,在此不再一一赘述。
705、计算机设备通过脉动阵列获取第二存储器中的输入数据和扩充后的卷积核,在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
计算机设备通过脉动阵列获取第二存储器中存储的输入数据和扩充后的卷积核,将该输入数据和扩充后的卷积核输入至脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
本申请实施例提供的方法,在数据搬运引擎支持随路扩充的情况下,将扩充系数设置为可实现的最大取值,先通过数据搬运引擎,将输入数据和卷积核从第一存储器搬运至第二存储器,然后再通过该数据搬运引擎,在该第二存储器中基于该扩充系数对卷积核进行扩充,一方面可以最大化脉动阵列的利用率,另一方面还可以避免扩充卷积核对数据搬运过程的影响,有利于提高数据处理过程的整体效率,实现数据的加速处理。
图8是本申请实施例提供的又一种数据处理方法的流程图,本申请实施例由计算机设备执行,图7以数据搬运引擎不支持随路扩充为例,参见图8,该方法包括以下步骤。
801、计算机设备获取待处理数据和脉动阵列的列数,待处理数据包括待卷积的输入数据和至少一个卷积核,脉动阵列为处理器中的计算器件,计算器件包括多个计算单元,脉动阵列中每一列的计算单元用于对输入数据和一个卷积核进行卷积。
该步骤701与上述步骤201同理,在此不再赘述。
802、计算机设备在卷积核的个数不大于脉动阵列的列数的二分之一的情况下,确定脉动阵列的列数和卷积核的个数之间的比值,对比值进行向下取整,得到参考数值。
计算机设备判断卷积核的个数是否大于脉动阵列的列数的二分之一,如果卷积核的个数不大于脉动阵列的列数的二分之一,为了提高脉动阵列的利用率,需要对卷积核进行扩充,则计算机设备确定脉动阵列的列数和卷积核的个数之间的比值,对比值进行向下取整,得到参考数值,后续基于该参考数据来确定扩充系数。
803、计算机设备在数据搬运引擎不支持随路扩充的情况下,将大于1且小于参考数值的整数确定为扩充系数。
计算机设备确定处理器中的数据搬运引擎是否支持随路扩充,随路扩充是指在任一存储器中对卷积核进行扩充。如果数据搬运引擎不支持随路扩充,则表示该数据搬运引擎不具有在任一存储器中对卷积核进行扩充的功能。这种情况下,无法先搬运数据再进行扩充,因此需要考虑扩充卷积核对数据搬运过程的影响。扩充系数必须为不大于参考数值的整数,也即是扩充系数的最大取值为该参考数值。而扩充系数越大,对脉动阵列的利用率就越高。但是扩充系数越大,所需搬运的数据量就越多,搬运数据所花费的搬运时间也就越多,因此计算机设备将大于1且小于参考数值的整数确定为扩充系数,尽量减少所需搬运的数据量,综合考虑扩充卷积核所节省的运算时间以及扩充卷积核所增加的搬运时间。通过基于合理的扩充系数进行扩充,使得扩充后所花费的搬运时间和运算时间之和,少于扩充前所花费的搬运时间和运算时间之和。
804、计算机设备在第一存储器中基于扩充系数对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大,通过数据搬运引擎,将输入数据和扩充后的卷积核从第一存储器搬运至第二存储器。
计算机设备在搬运数据之前,先在第一存储器中基于扩充系数对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大,在完成对卷积核的扩充之后,再通过数据搬运引擎将输入数据和扩充后的卷积核从第一存储器搬运至第二存储器,从而保证后续脉动阵列能够在第二存储器中获取到扩充后的卷积核。
其中,在第一存储器中基于扩充系数对卷积核进行扩充的过程,与上述步骤303-步骤306的过程同理,在此不再一一赘述。
805、计算机设备通过脉动阵列获取第二存储器中的输入数据和扩充后的卷积核,在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
计算机设备通过脉动阵列获取第二存储器中存储的输入数据和扩充后的卷积核,将该输入数据和扩充后的卷积核输入至脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
本申请实施例提供的方法,如果数据搬运引擎不支持随路扩充,将扩充系数设置为小于可实现的最大取值的整数,综合考虑扩充卷积核所节省的运算时间以及扩充卷积核所增加的搬运时间。通过基于合理的扩充系数进行扩充,使得扩充后所花费的搬运时间和运算时间之和,少于扩充前所花费的搬运时间和运算时间之和。一方面可以提高脉动阵列的利用率,另一方面还可以尽量减小扩充卷积核对数据搬运过程的影响,有利于提高数据处理过程的整体效率,实现数据的加速处理。
图9是本申请实施例提供的又一种数据处理方法的流程图,如图9所示,卷积神经网络提供输入数据和矩阵数据,该矩阵数据是指卷积核和卷积核的偏置参数。计算机设备判断数据搬运引擎是否支持随路扩充,如果支持随路扩充,则按照最大化脉动阵列的算力利用率来计算扩充系数,也即是最大化扩充系数。如果不支持随路扩充,则需要综合考虑算力利用率和数据搬运量,来计算扩充系数,以保证节约的运算时间大于增加的搬运时间。
图10是本申请实施例提供的又一种数据处理方法的流程图,如图10所示,卷积神经网络提供输入数据和矩阵数据,计算机设备比较卷积核个数Co与脉动阵列的列数N,如果Co大于N/2,则不对矩阵数据进行扩充,如果Co不大于N/2,则需要对矩阵数据进行扩充。计算机设备计算最大扩充系数,判断数据搬运引擎是否支持随路扩充。如果支持随路扩充,则按照最大扩充系数对矩阵数据进行随路扩充(搬运后进行扩充)。如果不支持随路扩充,则综合考虑运算时间和搬运时间计算最优扩充系数,最优扩充系数小于最大扩充系数,按照最优扩充系数对矩阵数据进行离线扩充(搬运前进行扩充)。计算机设备在第二存储器中存储扩充后的矩阵数据,通过脉动阵列对输入数据和扩充后的矩阵数据进行卷积处理,得到输出数据。
本申请实施例提供的数据处理方法,可以针对脉动阵列处理数量较小的卷积核的情况,为脉动阵列的运算过程带来成倍的性能提升,而且无需对硬件架构进行改进,该方法可广泛适用于不同的硬件架构和不同的卷积参数。例如,在卷积核的高度和宽度等于3、卷积步长等于1时,针对不同的卷积核个数,扩充系数的取值以及对应的运算加速倍数如下述表1所示。
表1
从表1中可以看出,本申请实施例在不增加硬件复杂度的前提下,通过对卷积核进行扩充,可以对运算时间进行成倍加速,充分利用了脉动阵列的计算能力。
图11是本申请实施例提供的一种数据处理装置的结构示意图。参见图11,该装置包括:数据获取模块1101,用于获取待处理数据和脉动阵列的列数,待处理数据包括待卷积的输入数据和至少一个卷积核,脉动阵列为处理器中的计算器件,计算器件包括多个计算单元,脉动阵列中每一列的计算单元用于对输入数据和一个卷积核进行卷积;系数确定模块1102,用于在卷积核的个数不大于脉动阵列的列数的情况下,基于脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数;扩充模块1103,用于基于扩充系数,对卷积核进行扩充,以使扩充后的卷积核的个数、尺寸和卷积步长增大;数据处理模块1104,用于在脉动阵列的计算单元上,对输入数据和扩充后的卷积核进行卷积,得到输出数据。
本申请实施例提供的数据处理装置,如果待进行卷积的卷积核的个数不大于脉动阵列的列数,那么该脉动阵列中会存在计算单元不会被使用到,基于此,按照脉动阵列的列数和卷积核的个数之间的比值,确定扩充系数,然后按照该扩充系数,对原始的卷积核进行扩充,来增大卷积核的个数,同时还增大卷积核的尺寸和卷积步长,以抵消卷积核个数增加所带来的影响,相当于将少量卷积核在较小卷积步长上的计算量等效为更多卷积核在较大卷积步长上的计算量,由于增大了卷积核的个数,使得脉动阵列中更多的计算单元可以被使用到,因此可以提高脉动阵列的利用率,有利于充分利用脉动阵列的计算能力。
可选地,扩充模块1103,用于:基于扩充系数和第一卷积步长,确定第二卷积步长,第一卷积步长为扩充前的卷积核的卷积步长,第二卷积步长为扩充后的卷积核的卷积步长;基于扩充系数和第一尺寸,确定第二尺寸,第一尺寸为扩充前的卷积核的尺寸,第二尺寸为扩充后的卷积核的尺寸;将至少一个卷积核复制k-1份,k等于扩充系数;对每个卷积核进行填充,以使填充后的卷积核的尺寸等于第二尺寸。
可选地,扩充模块1103,用于:基于扩充系数、第一卷积步长和第二卷积步长,确定第二尺寸,以使第一乘积与第二乘积的比值等于扩充系数;其中,第一乘积表示基于第一尺寸的卷积核按照第一卷积步长对输入数据进行卷积所得到的输出数据的高度和宽度的乘积,第二乘积表示基于第二尺寸的卷积核按照第二卷积步长对输入数据进行卷积所得到的输出数据的高度和宽度的乘积。
可选地,第二卷积步长等于第一卷积步长和扩充系数的乘积,第一尺寸和第二尺寸均表示卷积核的宽度;扩充模块1103,用于:确定k-1与第一卷积步长的乘积,将乘积与第一尺寸相加,得到第二尺寸。
可选地,扩充模块1103,用于:将扩充系数和第一卷积步长相乘,得到第二卷积步长。
可选地,卷积核由权值矩阵表示,扩充模块1103,用于:按照第一尺寸和第二尺寸,在每个卷积核的权值矩阵中填充目标数值,以使填充后的权值矩阵的尺寸等于第二尺寸,目标数值等于0。
可选地,扩充模块1103,用于:将复制后的多个卷积核按照顺序划分为k组卷积核集合,每组卷积核集合包括连续的多个卷积核,且每组卷积核集合中的卷积核的个数相等;将第二尺寸和第一尺寸的差值确定为第三尺寸;对于每组卷积核集合,在同一组卷积核集合中的每个卷积核的权值矩阵中相同的位置填充目标数值,且填充目标数值的位置的总尺寸等于第三尺寸,且不同组的卷积核集合中的卷积核的权值矩阵中填充目标数值的位置不同。
可选地,第一尺寸、第二尺寸和第三尺寸均为宽度,第三尺寸等于m,m为正整数;扩充模块1103,用于:在第i组卷积核集合中的每个卷积核的权值矩阵的左侧填充i-1列目标数值,在每个卷积核的权值矩阵的右侧填充m-i+1列目标数值,i为不大于k的正整数。
可选地,第一尺寸、第二尺寸和第三尺寸均为高度,第三尺寸等于n,n为正整数;扩充模块1103,用于:在第i组卷积核集合中的每个卷积核的权值矩阵的上侧填充i-1行目标数值,在每个卷积核的权值矩阵的下侧填充n-i+1行目标数值,i为不大于k的正整数。
可选地,卷积核还包括偏置参数,扩充模块1103,用于:对于每个卷积核,将卷积核以及卷积核的偏置参数分别复制k-1份。
可选地,系数确定模块1102,用于:确定脉动阵列的列数和卷积核的个数之间的比值;对比值进行向下取整,得到参考数值;基于参考数值,确定扩充系数。
可选地,待处理数据存储于处理器上的第一存储器中,脉动阵列用于从处理器上的第二存储器中获取待处理数据,处理器上还包括数据搬运引擎;系数确定模块1102,用于:在数据搬运引擎支持随路扩充的情况下,将参考数值确定为扩充系数,随路扩充是指在任一存储器中对卷积核进行扩充;扩充模块1103,用于:通过数据搬运引擎,将输入数据和卷积核从第一存储器搬运至第二存储器,在第二存储器中基于扩充系数对卷积核进行扩充。
可选地,待处理数据存储于处理器上的第一存储器中,脉动阵列用于从处理器上的第二存储器中获取待处理数据,处理器上还包括数据搬运引擎;系数确定模块1102,用于:在数据搬运引擎不支持随路扩充的情况下,将大于1且小于参考数值的整数确定为扩充系数,随路扩充是指在任一存储器中对卷积核进行扩充;扩充模块1103,用于:在第一存储器中基于扩充系数对卷积核进行扩充,通过数据搬运引擎,将输入数据和扩充后的卷积核从第一存储器搬运至第二存储器。
需要说明的是:上述实施例提供的数据处理装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的数据处理方法中所执行的操作。
可选地,该计算机设备提供为终端。图12示出了本申请一个示例性实施例提供的终端1200的结构示意图。
终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一条计算机程序,该至少一条计算机程序用于被处理器1201所具有以实现本申请中方法实施例提供的数据处理方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。可选地,外围设备包括:射频电路1204、显示屏1205或摄像头组件1206中的至少一种。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。前置摄像头设置在终端1200的前面板,后置摄像头设置在终端1200的背面。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
可选地,该计算机设备提供为服务器。图13是本申请实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1301和一个或一个以上的存储器1302,其中,所述存储器1302中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器1301加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的数据处理方法所执行的操作。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述实施例的数据处理方法所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待处理数据和脉动阵列的列数,所述待处理数据包括待卷积的输入数据和至少一个卷积核,所述脉动阵列为处理器中的计算器件,所述计算器件包括多个计算单元,所述脉动阵列中每一列的计算单元用于对所述输入数据和一个卷积核进行卷积;
在所述卷积核的个数不大于所述脉动阵列的列数的情况下,基于所述脉动阵列的列数和所述卷积核的个数之间的比值,确定扩充系数;
基于所述扩充系数和第一卷积步长,确定第二卷积步长,所述第一卷积步长为扩充前的卷积核的卷积步长,所述第二卷积步长为扩充后的卷积核的卷积步长;
基于所述扩充系数、所述第一卷积步长和所述第二卷积步长,确定第二尺寸,以使第一乘积与第二乘积的比值等于所述扩充系数,所述第一乘积表示基于第一尺寸的卷积核按照所述第一卷积步长对所述输入数据进行卷积所得到的输出数据的高度和宽度的乘积,所述第二乘积表示基于所述第二尺寸的卷积核按照所述第二卷积步长对所述输入数据进行卷积所得到的输出数据的高度和宽度的乘积,所述第一尺寸为扩充前的卷积核的尺寸,所述第二尺寸为扩充后的卷积核的尺寸;
将所述至少一个卷积核复制k-1份,所述k等于所述扩充系数;
对每个卷积核进行填充,以使填充后的卷积核的尺寸等于所述第二尺寸;
在所述脉动阵列的计算单元上,对所述输入数据和扩充后的卷积核进行卷积,得到输出数据。
2.根据权利要求1所述的方法,其特征在于,所述第二卷积步长等于所述第一卷积步长和所述扩充系数的乘积,所述第一尺寸和所述第二尺寸均表示卷积核的宽度;所述基于所述扩充系数、所述第一卷积步长和所述第二卷积步长,确定第二尺寸,以使第一乘积与第二乘积的比值等于所述扩充系数,包括:
确定所述k-1与所述第一卷积步长的乘积,将所述乘积与所述第一尺寸相加,得到所述第二尺寸。
3.根据权利要求1所述的方法,其特征在于,所述卷积核由权值矩阵表示,所述对每个卷积核进行填充,以使填充后的卷积核的尺寸等于所述第二尺寸,包括:
按照所述第一尺寸和所述第二尺寸,在每个卷积核的权值矩阵中填充目标数值,以使填充后的权值矩阵的尺寸等于所述第二尺寸,所述目标数值等于0。
4.根据权利要求3所述的方法,其特征在于,所述按照所述第一尺寸和所述第二尺寸,在每个卷积核的权值矩阵中填充目标数值,以使填充后的权值矩阵的尺寸等于所述第二尺寸,包括:
将复制后的多个卷积核按照顺序划分为k组卷积核集合,每组卷积核集合包括连续的多个卷积核,且每组卷积核集合中的卷积核的个数相等;
将所述第二尺寸和所述第一尺寸的差值确定为第三尺寸;
对于每组卷积核集合,在同一组卷积核集合中的每个卷积核的权值矩阵中相同的位置填充所述目标数值,且填充所述目标数值的位置的总尺寸等于所述第三尺寸,且不同组的卷积核集合中的卷积核的权值矩阵中填充所述目标数值的位置不同。
5.根据权利要求4所述的方法,其特征在于,所述第一尺寸、所述第二尺寸和所述第三尺寸均为宽度,所述第三尺寸等于m,所述m为正整数;所述对于每组卷积核集合,在同一组卷积核集合中的每个卷积核的权值矩阵中相同的位置填充所述目标数值,包括:
在第i组卷积核集合中的每个卷积核的权值矩阵的左侧填充i-1列所述目标数值,在每个卷积核的权值矩阵的右侧填充m-i+1列所述目标数值,所述i为不大于k的正整数。
6.根据权利要求4所述的方法,其特征在于,所述第一尺寸、所述第二尺寸和所述第三尺寸均为高度,所述第三尺寸等于n,所述n为正整数;所述对于每组卷积核集合,在同一组卷积核集合中的每个卷积核的权值矩阵中相同的位置填充所述目标数值,包括:
在第i组卷积核集合中的每个卷积核的权值矩阵的上侧填充i-1行所述目标数值,在每个卷积核的权值矩阵的下侧填充n-i+1行所述目标数值,所述i为不大于k的正整数。
7.根据权利要求1所述的方法,其特征在于,所述卷积核还包括偏置参数,所述将所述至少一个卷积核复制k-1份,包括:
对于每个所述卷积核,将所述卷积核以及所述卷积核的偏置参数分别复制k-1份。
8.根据权利要求1所述的方法,其特征在于,所述基于所述扩充系数和第一卷积步长,确定第二卷积步长,包括:
将所述扩充系数和所述第一卷积步长相乘,得到所述第二卷积步长。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述基于所述脉动阵列的列数和所述卷积核的个数之间的比值,确定扩充系数,包括:
确定所述脉动阵列的列数和所述卷积核的个数之间的比值;
对所述比值进行向下取整,得到参考数值;
基于所述参考数值,确定所述扩充系数。
10.根据权利要求9所述的方法,其特征在于,所述待处理数据存储于所述处理器上的第一存储器中,所述脉动阵列用于从所述处理器上的第二存储器中获取所述待处理数据,所述处理器上还包括数据搬运引擎;
所述基于所述参考数值,确定所述扩充系数,包括:
在所述数据搬运引擎支持随路扩充的情况下,将所述参考数值确定为所述扩充系数,所述随路扩充是指在任一存储器中对卷积核进行扩充;
所述方法还包括:
通过所述数据搬运引擎,将所述输入数据和所述卷积核从所述第一存储器搬运至所述第二存储器,在所述第二存储器中基于所述扩充系数对所述卷积核进行扩充。
11.根据权利要求9所述的方法,其特征在于,所述待处理数据存储于所述处理器上的第一存储器中,所述脉动阵列用于从所述处理器上的第二存储器中获取所述待处理数据,所述处理器上还包括数据搬运引擎;
所述基于所述参考数值,确定所述扩充系数,包括:
在所述数据搬运引擎不支持随路扩充的情况下,将大于1且小于所述参考数值的整数确定为所述扩充系数,所述随路扩充是指在任一存储器中对卷积核进行扩充;
所述方法还包括:
在所述第一存储器中基于所述扩充系数对所述卷积核进行扩充,通过所述数据搬运引擎,将所述输入数据和扩充后的卷积核从所述第一存储器搬运至所述第二存储器。
12.一种数据处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取待处理数据和脉动阵列的列数,所述待处理数据包括待卷积的输入数据和至少一个卷积核,所述脉动阵列为处理器中的计算器件,所述计算器件包括多个计算单元,所述脉动阵列中每一列的计算单元用于对所述输入数据和一个卷积核进行卷积;
系数确定模块,用于在所述卷积核的个数不大于所述脉动阵列的列数的情况下,基于所述脉动阵列的列数和所述卷积核的个数之间的比值,确定扩充系数;
扩充模块,用于基于所述扩充系数和第一卷积步长,确定第二卷积步长,所述第一卷积步长为扩充前的卷积核的卷积步长,所述第二卷积步长为扩充后的卷积核的卷积步长;
所述扩充模块,还用于基于所述扩充系数、所述第一卷积步长和所述第二卷积步长,确定第二尺寸,以使第一乘积与第二乘积的比值等于所述扩充系数,所述第一乘积表示基于第一尺寸的卷积核按照所述第一卷积步长对所述输入数据进行卷积所得到的输出数据的高度和宽度的乘积,所述第二乘积表示基于所述第二尺寸的卷积核按照所述第二卷积步长对所述输入数据进行卷积所得到的输出数据的高度和宽度的乘积,所述第一尺寸为扩充前的卷积核的尺寸,所述第二尺寸为扩充后的卷积核的尺寸;
所述扩充模块,还用于将所述至少一个卷积核复制k-1份,所述k等于所述扩充系数;
所述扩充模块,还用于对每个卷积核进行填充,以使填充后的卷积核的尺寸等于所述第二尺寸;
数据处理模块,用于在所述脉动阵列的计算单元上,对所述输入数据和扩充后的卷积核进行卷积,得到输出数据。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如权利要求1至11任一项所述的数据处理方法所执行的操作。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如权利要求1至11任一项所述的数据处理方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311076186.4A CN116781484B (zh) | 2023-08-25 | 2023-08-25 | 数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311076186.4A CN116781484B (zh) | 2023-08-25 | 2023-08-25 | 数据处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116781484A CN116781484A (zh) | 2023-09-19 |
CN116781484B true CN116781484B (zh) | 2023-11-07 |
Family
ID=87993513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311076186.4A Active CN116781484B (zh) | 2023-08-25 | 2023-08-25 | 数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116781484B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728303A (zh) * | 2019-09-12 | 2020-01-24 | 东南大学 | 基于卷积神经网络数据复杂度的动态自适应计算阵列 |
CN111382833A (zh) * | 2018-12-29 | 2020-07-07 | 佳能株式会社 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
WO2021226782A1 (zh) * | 2020-05-11 | 2021-11-18 | 深圳市大疆创新科技有限公司 | 卷积计算装置、方法和计算机存储介质 |
CN113705069A (zh) * | 2021-02-26 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 基于脉动阵列的浅深度模型的计算优化方法和装置 |
CN114995782A (zh) * | 2022-08-03 | 2022-09-02 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
-
2023
- 2023-08-25 CN CN202311076186.4A patent/CN116781484B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382833A (zh) * | 2018-12-29 | 2020-07-07 | 佳能株式会社 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
CN110728303A (zh) * | 2019-09-12 | 2020-01-24 | 东南大学 | 基于卷积神经网络数据复杂度的动态自适应计算阵列 |
WO2021226782A1 (zh) * | 2020-05-11 | 2021-11-18 | 深圳市大疆创新科技有限公司 | 卷积计算装置、方法和计算机存储介质 |
CN113705069A (zh) * | 2021-02-26 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 基于脉动阵列的浅深度模型的计算优化方法和装置 |
CN114995782A (zh) * | 2022-08-03 | 2022-09-02 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116781484A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
CN107886167A (zh) | 神经网络运算装置及方法 | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN113469350B (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN114995782B (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN113673701A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
WO2023045445A1 (zh) | 数据处理装置、数据处理方法及相关产品 | |
WO2023045446A1 (zh) | 计算装置、数据处理方法及相关产品 | |
CN114461978B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN116781484B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US20230259780A1 (en) | Neural network sparsification apparatus and method and related product | |
CN116980277B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112801276B (zh) | 数据处理方法、处理器及电子设备 | |
CN114003198A (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
CN114692844A (zh) | 数据处理装置、数据处理方法及相关产品 | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN111125627A (zh) | 用于池化多维矩阵的方法及相关产品 | |
CN117494816B (zh) | 基于计算单元部署的模型推理方法、装置、设备及介质 | |
CN115841587B (zh) | 图像分类任务的特征提取方法、装置、设备及存储介质 | |
CN110826704B (zh) | 一种用于防止神经网络过拟合的处理装置及系统 | |
CN114692820A (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN114444677A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40094508 Country of ref document: HK |