CN112799598B - 一种数据处理方法、处理器及电子设备 - Google Patents
一种数据处理方法、处理器及电子设备 Download PDFInfo
- Publication number
- CN112799598B CN112799598B CN202110172546.5A CN202110172546A CN112799598B CN 112799598 B CN112799598 B CN 112799598B CN 202110172546 A CN202110172546 A CN 202110172546A CN 112799598 B CN112799598 B CN 112799598B
- Authority
- CN
- China
- Prior art keywords
- data
- dimension direction
- segmentation
- dimension
- segmentation dimension
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Image Processing (AREA)
Abstract
本公开涉及一种数据处理方法、处理器及电子设备,根据切分维度方向以及切分维度方向的维度值对处理数据和权值数据进行切分,并将切分后的所述处理数据子数据块和所述权值数据子数据块按照所述坐标送入对应的计算核,使各个计算核对接收的所述处理数据子数据块和所述权值数据子数据块进行卷积运算,可以克服各计算核内物理存储空间容量的限制,充分利用芯片内资源,平衡存储与计算的关系,减少数据计算时钟,提升计算效率,降低芯片功耗。
Description
技术领域
本公开涉及信息处理技术领域,尤其涉及一种数据处理方法、处理器及电子设备。
背景技术
异构融合类脑计算芯片具有计算存储融合和去中心化的众核架构,每个计算核可以独立运行并且相互间可以进行数据交换。这种模块化的设计导致每个计算核的资源有限,能支撑的神经网络规模比较小。因此,可以对大规模的网络数据进行切分映射到计算核上,由于单个计算核内存资源有限,将大规模的网络映射在单个计算核上计算的时间将非常大。
发明内容
有鉴于此,本公开提出了一种数据处理方法、处理器及电子设备。
根据本公开的一方面,提供了一种数据处理方法,所述方法包括:
确定切分维度方向以及切分维度方向的维度值;
根据所述切分维度方向以及所述切分维度方向的维度值,从处理器包括的计算核中选取多个计算核,并按照所述切分维度方向以及所述切分维度方向的维度值为选取的多个计算核分配坐标;其中,所述处理器包括多个计算核,各个计算核之间能够相互通信;
根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块;
将切分后的所述处理数据子数据块和所述权值数据子数据块按照所述坐标送入对应的计算核,使各个计算核对接收的所述处理数据子数据块和所述权值数据子数据块进行卷积运算。
在一种可能的实现方式中,所述切分维度方向包括第一切分维度方向,第二切分维度方向,第三切分维度方向和第四切分维度方向;
其中,所述第一切分维度方向表示所述处理数据的宽度方向;
所述第二切分维度方向表示所述处理数据的高度方向;
所述第三切分维度方向表示所述处理数据的深度方向,也对应所述权值数据的深度方向;
所述第四切分维度方向表示所述权值数据的卷积核个数方向。
在一种可能的实现方式中,确定切分维度方向以及切分维度方向的维度值,包括:
在所述第一切分维度方向或所述第二切分维度方向上给定一个随机数作为维度值;
按照先考虑所述第三切分维度方向,再考虑所述第四切分维度方向,最后考虑所述第一切分维度方向和所述第二切分维度方向中未给定随机数的维度方向的顺序确定所述切分维度方向的维度值。
在一种可能的实现方式中,根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
根据所述第一切分维度方向,所述第二切分维度方向,所述第三切分维度方向以及所述切分维度方向的维度值对所述处理数据切分,获得所述处理数据子数据块;
根据所述第三切分维度方向,所述第四切分维度方向以及所述切分维度方向的维度值对所述权值数据切分,获得所述权值数据子数据块。
在一种可能的实现方式中,根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
在需要减少卷积运算的数据交叠量的情况下,对所述处理数据在所述第一切分维度方向和所述第二切分维度方向不切分或减少维度值;其中,数据交叠量包括因卷积过程中补全处理数据子数据块边缘引起的数据交叠;
在需要减少卷积运算的部分和产生的情况下,对所述处理数据在所述第三切分维度方向不切分或减少维度值,其中,所述部分和包括由深度切分引起的计算核输出的部分数据。
在一种可能的实现方式中,根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
在需要减少卷积运算中数据的多播的情况下,对所述权值数据在所述第四切分维度方向上不切分或减少维度值,其中,多播表示同一处理数据子数据块传播至多个计算核中。
在一种可能的实现方式中,确定切分维度方向以及切分维度方向的维度值,包括:
判断所述处理数据的数据量是否满足第一简化条件,以及判断所述权值数据的数据量是否满足第二简化条件;
在所述处理数据的数据量满足所述第一简化条件,并且所述权值数据的数据量满足所述第二简化条件的情况下,对所述处理数据和所述权值数据不切分;
在所述处理数据的数据量不满足所述第一简化条件,并且所述权值数据的数据量不满足所述第二简化条件的情况下,对所述处理数据在所述第一切分维度方向、所述第二切分维度方向以及所述第三切分维度方向上进行切分,对所述权值数据在所述第三切分维度方向和所述第四切分维度方向进行切分;
在所述处理数据的数据量满足所述第一简化条件,并且所述权值数据的数据量不满足所述第二简化条件的情况下,对所述处理数据在所述第一切分维度方向、所述第二切分维度方向上不切分,对所述权值数据在所述第四切分维度方向进行切分;
在所述处理数据的数据量不满足所述第一简化条件,并且所述权值数据的数据量满足所述第二简化条件的情况下,对所述处理数据在所述第一切分维度方向、所述第二切分维度方向上进行切分,对所述权值数据在所述第四切分维度方向上不切分。
在一种可能的实现方式中,所述第一简化条件包括,一个计算核能够满足所有处理数据需要的计算资源,所述第二简化条件包括,一个计算核能够满足所有权值数据需要的计算资源。
根据本公开的另一方面,提供了一种处理器,所述处理器包括多个计算核,各个计算核之间能够相互通信,所述处理器用于执行所述的数据处理方法。
根据本公开的另一方面,提供了一种电子设备,包括一个或多个处理器。
根据本公开的实施例,可以根据输入数据和权值数据的容量大小以及处理器的计算核资源,确定切分维度方向以及切分维度方向的维度值。通过按照切分维度方向以及切分维度方向的维度值为选取的多个计算核分配坐标,可使处理数据和权值数据的切分与多个计算核形成维度的对应关系。通过切分维度方向以及切分维度方向的维度值对处理数据和权值数据进行切分,可以解决处理数据和权值数据过大消耗各计算核的存储空间,切分后获得的处理数据子数据块和权值数据子数据块的数据量变小,可以克服各计算核内物理存储空间容量的限制。将切分后的所述处理数据子数据块和所述权值数据子数据块按照所述坐标送入对应的计算核,使各个计算核对接收的所述处理数据子数据块和所述权值数据子数据块进行卷积运算。所述方法可以将大规模的卷积运算进行有序的切分映射到多个计算核并行运算,平衡存储与计算的关系,充分利用芯片内资源,减少数据计算时钟,提升计算效率,降低芯片功耗。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开的实施例的处理器的示意图;
图2示出根据本公开的实施例的切分原理的示意图;
图3示出根据本公开的实施例的数据处理方法的流程图;
图4示出根据本公开的实施例的确定切分维度方向以及切分维度方向的维度值的流程图;
图5示出根据本公开的实施例的众核矩阵的示意图;
图6示出根据本公开的实施例的处理数据和权值数据切分示意图;
图7示出根据本公开的实施例的方法流程图;
图8示出根据本公开的实施例的电子装置的框图;
图9示出根据本公开的实施例的电子装置的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何处理以及所有可能处理,并且包括这些处理。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
还应当理解,张量(tensor)作为存放数据的容器,可以看作多维矩阵。图像数据以及其他感知数据(例如音频、视频等)可以表示为多维矩阵,并且可以以二进制形式存放到存储器中。为了便于对本公开技术方案的理解,下文中处理数据可以以图像数据为例。在此本公开说明书中所使用的图像数据仅仅是出于描述特定实施例的目的,而并不意在限定本公开。本公开对包括视频、音频、图像等可以在存储器中以二进制形式存储的处理数据均适用。
图1示出根据本公开的实施例的处理器的示意图。根据本公开实施例的数据处理方法可以应用于处理器,所述处理器包括多个计算核。
如图1所示,每个计算核包括处理部件及存储部件。所述处理部件用于对数据进行加工与处理。所述存储部件用于存储数据。
在一种可能的实现方式中,所述处理器可以是类脑计算芯片,即,以大脑的处理模式为参考,通过模拟大脑中神经元对信息的传递与处理,提升处理效率并降低功耗。所述处理器可以包括多个计算核,计算核之间可以独立处理不同的任务,例如:卷积运算任务、池化任务或全连接任务等;也可以并行处理同一任务,即,每个计算核可以处理所分配到的同一任务的不同部分。需要说明的是,本公开对芯片中计算核数量,以及计算核所运行的任务不做限制。
在计算核之内,可以设置有处理部件和存储部件。处理部件可以包括树突单元、轴突单元、胞体单元和路由单元。处理部件可以模拟大脑的神经元对信息的处理模式,其中,树突单元用于接收信号,轴突单元用于发送尖峰信号,胞体单元用于信号的集成变换,路由单元用于同其它计算核进行信息传输。计算核内的处理部件可以对存储部件进行读写访问,以与计算核内的存储部件进行数据交互,并可分别承担各自的数据处理任务和/或数据传输任务,以获得数据处理结果,或者与其他计算核进行通信。本公开对所述处理部件的应用领域不做限制。
在一种可能的实现方式中,存储部件可以包括两个以上存储单元,存储单元可以为静态随机存取存储器(Static Random-Access Memory,SRAM)。例如,存储单元可包括读写宽度为32B,容量为64KB的SRAM。本公开对存储单元的读写宽度和容量不做限制。
根据本公开的实施例的计算核,可将处理部件和存储部件设置在计算核内,使得存储部件直接接收处理部件的读写访问,无需对计算核外部的存储部件进行读写,优化了内存读写速度,适用于众核架构的处理部件。
在一种可能的实现方式中,所述处理器可以实现神经网络算法。如果一个神经网络是比较小的网络,一个计算核就可以满足处理该网络所需的资源,可以将该网络的输入数据送入一个计算核里处理。
如果是很大的神经网络,就需要计算大量的数据,一个计算核不能满足处理该网络所需的资源,在这种情况下,就需要多个计算核协作共同计算这个很大的神经网络。
卷积运算作为神经网络中的基本运算,往往需要占用大量的计算资源。如果想将一个卷积运算在计算核资源有限的情况下实现,可以将该卷积运算的输入数据进行切分。通过数据切分,可以将放在一个计算核内进行计算的数据分散到多个计算核上共同计算,以达到分散单个计算核负载的效果。例如,在处理器对一个较大的输入图像执行卷积运算操作的情况下,可以将这个较大的输入图像数据切分成若干个子图送入不同的计算核,通过各计算核对所收到子图的运算来完成对整个图像的运算。
图2示出根据本公开的实施例的切分原理的示意图。如图2所示,一个大的输入三维处理数据X[i,j,m]可以沿着深度方向m,宽度方向i,高度方向j进行切分,权值数据W[k,m,n]可以按照卷积核深度方向m和个数方向(或者称为卷积核排序方向,卷积核编号方向)n进行切分。权值数据W[k,m,n]在个数方向n进行切分相当于对卷积核个数进行分组(即表示将第几到第几个卷积核分为一组)。
其中,权值数据W[k,m,n]可以包括多个卷积核,C[k,m]表示可以在三维数据X[i,j,m]中任意滑动的窗口取到的处理数据,Y[i,j,n]代表卷积运算结果,k表示卷积核尺寸,就是卷积核高度方向和宽度方向的维度值的乘积,例如k=3×3,表示卷积核在高度方向的维度值为3,在宽度方向的维度值也为3。
相关技术对卷积处理数据和权值数据的切分不能与计算核形成维度的对应关系,难以进行映射优化,导致计算核的计算时钟大,计算缓存空间数据交换传输量大,计算速度低,计算效力低。
在一种可能的实现方式中,本公开提供一种数据处理方法,所述方法可以用于实现处理数据和权值数据的卷积运算。
其中,处理数据可以是卷积运算的输入数据,例如,处理数据可以是三维图像数据,可以用三维矩阵表示。权值数据可以是卷积运算的权值,例如,对三维图像数据做卷积运算的权值,权值数据可以包括多个卷积核,每个卷积核可以用三维矩阵表示。
在一种可能的实现方式中,一个或多个处理器可以集成到一个芯片中,每个处理器包括多个计算核。在芯片对大数据执行卷积运算操作的情况下,对芯片执行卷积操作的方式不做限定,可以是芯片内的一个处理器执行切分操作,并将切分后的子数据块送入该芯片内其它处理器的多个计算核执行卷积运算操作,例如,假设芯片包括处理器1和处理器2,处理器1执行处理数据和权值数据的切分操作,并将切分后的子数据块送入处理器2的多个计算核,处理器2内的多个计算核对接收的处理数据和权值数据执行卷积运算操作。还可以是芯片内的一个处理器完成切分以及卷积运算操作,例如,处理器内的部分计算核执行切分操作,并将切分后的数据送入该处理器内其它部分计算核执行卷积运算操作。
图3示出根据本公开的实施例的数据处理方法流程图。如图3所示方法可以包括步骤如下:
步骤S1、确定切分维度方向以及切分维度方向的维度值。
所述处理器可以根据输入数据和权值数据的容量大小以及处理器的计算核资源,确定切分维度方向以及切分维度方向的维度值。
其中,所述处理器确定的切分维度方向可以为一个或多个,切分维度方向的维度值表示处理器可以在切分维度方向进行切分的份数。例如,假设处理器确定的一个切分维度方向的维度值为3,表示处理器可以在该切分维度方向上将待处理任务或待处理数据切分成3份。
在一种可能实现的方式中,所述切分维度方向包括第一切分维度方向,第二切分维度方向,第三切分维度方向和第四切分维度方向。
其中,所述第一切分维度方向表示所述处理数据的宽度方向。
所述第二切分维度方向表示所述处理数据的高度方向。
所述第三切分维度方向表示所述处理数据的深度方向,也对应所述权值数据的深度方向。
所述第四切分维度方向表示所述权值数据的卷积核个数方向。
其中,所述第一切分维度方向,第二切分维度方向,第三切分维度方向和第四切分维度方向的维度值的乘积对应处理器中用于计算卷积运算的计算核个数,并且各个切分维度方向的维数值乘积小于或等于处理器内计算核的个数。
在一种可能实现的方式中,确定切分维度方向以及切分维度方向的维度值,包括:
在所述第一切分维度方向或所述第二切分维度方向上给定一个随机数作为维度值;
按照先考虑所述第三切分维度方向,再考虑所述第四切分维度方向,最后考虑所述第一切分维度方向和所述第二切分维度方向中未给定随机数的维度方向的顺序确定所述切分维度方向的维度值。
举例来说,图4示出根据本公开的实施例的确定切分维度方向以及切分维度方向的维度值的流程图。如图4所示方法可以包括步骤如下:
步骤S11、在处理数据第一切分维度方向给定切分随机数i作为第一切分维度方向的维度值,或者在处理数据第二切分维度方向给定切分随机数j作为第二切分维度方向的维度值。
其中,随机数i和j为正整数,对应处理数据第一切分维度方向和第二切分维度方向的维度值,可以和处理器硬件特点保持一致,例如,随机数可以根据计算核一次能够读取的数据量确定。如果处理器内部是行流水架构,可以先给定i值;如果处理器内部是列流水架构,可以先给定j值。
步骤S12、优先考虑第三切分维度方向,确定第三切分维度的维度值。
考虑第三切分维度方向也就是考虑处理数据的深度方向以及对应的权值数据的深度方向。如果处理器内各个计算核的计算资源可以满足按照步骤S11中切分维度方向及该方向给定切分随机数切分后的数据子块进行卷积运算的资源需求,第三切分维度方向不切分,m值为1。如果处理器内各个计算核的计算资源不满足按照步骤S11中切分维度方向及该方向给定切分随机数切分后的数据子块进行卷积运算的资源需求,第三切分维度方向需要切分,m值大于1。
第三切分维度方向切分的组数越多,需要进行部分和的计算量越大,在数据存储时也会占用更大的存储空间,浪费计算核的存储空间容量,并且增大了芯片的路由传输延时,容易造成拥堵。因此,第三切分维度方向m值越小越好,可以根据具体的卷积运算情况确定,本公开不做限定。
步骤S13、再考虑权值数据的第四切分维度方向,确定第四切分维度的维度值。
考虑权值数据的第四切分维度方向,相当于考虑对卷积核个数进行分组的方向。
如果处理器内各个计算核的计算资源可以满足按照步骤S11-S12中切分维度方向及各方向的维度值切分后的数据子块进行卷积运算的资源需求,第四切分维度方向不切分,n值为1。如果处理器内各个计算核的计算资源不满足按照步骤S11-S12中切分维度方向及各方向的维度值切分后的数据子块进行卷积运算的资源需求,第四切分维度方向需要切分,n值大于1。
第四切分维度方向分的组数越多,附加数据路由传输时间以及数据合并需要的计算的时钟越大。因此,第四切分维度方向切分的n值越小越好,可以根据具体的卷积运算情况确定,本公开不做限定。
步骤S14、最后考虑处理数据第一切分维度方向和第二切分维度方向中未给定随机数的维度方向,并确定所述方向的维度值。
例如,如果在步骤S11中在处理数据第一切分维度方向给定切分随机数i,本步骤中需要考虑第二切分维度方向并确定该方向的维度值j。
其中,如果处理器内各个计算核的计算资源可以满足按照步骤S11-S13中切分维度方向及各方向维度值切分后的数据子块进行卷积运算的资源需求,第二切分维度方向不切分,j值为1。如果处理器内各个计算核的计算资源不满足按照步骤S11-S13中切分维度方向及各方向维度值切分后的数据子块进行卷积运算的资源需求,第二切分维度方向需要切分,j值大于1。
在步骤S11中,处理数据沿着第一切分维度方向(宽度方向)切分成若干个列子数据块,列子数据块的数目越多时产生的交叠数据就越多,对应的路由发送与接收以及对数据的拆分操作的计算时钟就越大。例如,假设处理数据是输入的图像数据,将输入图像数据沿着横向拆分成若干个列条子图,列条的数目越多时则产生的交叠数据就越多,对应的路由发送与接收以及对数据的拆分操作的计算时钟就越大;其中,在对列条子图做卷积运算,并且卷积核尺寸大于1时,为了保证卷积运算的完整性,需要对列条子图的边缘补齐,满足卷积核的尺寸需求,其中补齐的部分引起数据交叠。
因此,如果使列子数据块产生的交叠数据越少则第二切分维度方向切分的j值越小越好,可以根据具体的卷积运算情况确定,本公开不做限定。
如果在步骤S11中在处理数据第二切分维度方向给定切分随机数j,本步骤中需要考虑第一切分维度方向并确定该方向的维度值i。
其中,如果处理器内各个计算核的计算资源可以满足按照步骤S11-S13中切分维度方向及各方向维度值切分后的数据子块进行卷积运算的资源需求,第一切分维度方向不切分,i值为1。如果处理器内各个计算核的计算资源不满足按照步骤S11-S13中切分维度方向及各方向维度值切分后的数据子块进行卷积运算的资源需求,第一切分维度方向需要切分,i值大于1。
在步骤S11中,处理数据沿着第二切分维度方向(高度方向)切分成若干个行子数据块,行子数据块的数目越多时产生的交叠数据就越多,对应的路由发送与接收以及对数据的拆分操作的计算时钟就越大。因此,如果使行子数据块产生的交叠数据越少则第一切分维度方向切分的i值越小越好,可以根据具体的卷积运算情况确定,本公开不做限定。
为了减少切分过程中引起的计算缓存消耗大量存储空间以及路由延时的增加,在所述处理器中的每个计算核的计算资源可以满足待送入的切分后处理数据子数据块和权值数据子数据块进行卷积运算的运算资源的情况下,尽量按照步骤S11-S14中优先级考虑顺序在各个维度方向上不切分或减少切分(即减少维度值)。其中,待送入的切分后各处理数据子数据块的数据量为处理器数据的1/(i×j×m),待送入的切分后各权值数据子数据块的数据量为权值数据的1/(m×n)。
在步骤S11-S14中,第一切分维度方向,第二切分维度方向,第三切分维度方向和第四切分维度方向的维度值的乘积(i×j×m×n)对应处理器中用于计算卷积运算的计算核个数。所述处理器内计算核的个数可以满足用于计算卷积运算的计算核个数。如果所述处理器内计算核的个数不满足用于计算卷积运算的计算核个数,可以在硬件上增加计算核个数。
步骤S2、根据所述切分维度方向以及所述切分维度方向的维度值,从处理器包括的计算核中选取多个计算核,并按照所述切分维度方向以及所述切分维度方向的维度值为选取的多个计算核分配坐标。
其中,所述处理器包括多个计算核,各个计算核之间能够相互通信。
其中,众核代表处理器内集成的众多计算核,可以为处理器内集成的所有计算核,也可以为处理器内集成的所有计算核中的部分计算核,本公开对处理器内集成的计算核数量不做限定。
其中,分配坐标可认为是将选取的多个计算核排列为众核矩阵,众核矩阵用于表示各计算核之间逻辑上的相对关系,与物理上的位置无关。
在一种可能实现的方式中,可以根据第一切分维度方向,第二切分维度方向,第三切分维度方向和第四切分维度方向以及各维度方向的维度值,选取所需数量的众核,众核按照第一切分维度方向,第二切分维度方向,第三切分维度方向,第四切分维度方向以及各个切分维度方向的维度值排列成众核矩阵,分配以相应的矩阵坐标。其中坐标的各维度方向可分别对应于各切分维度方向,例如,坐标可由第一、第二、第三、第四切分维度方向构成,坐标的每个维度方向的取值范围,对应于相应的切分维度的维度值。
举例来说,图5示出根据本公开的实施例众核矩阵的示意图。如图5所示,假设在处理器上集成了100个计算核,并且可以在处理器上按照10×10排列,即每行10个计算核,每列也10个计算核。并且处理器确定的第一切分维度方向的维度值i=4,第二切分维度方向的维度值j=2,第三切分维度方向的维度值m=2,第四切分维度方向的维度值n=4。
处理器根据切分维度方向以及各个切分维度方向的维度值,可以确定需要选取的计算核数量为:i×j×m×n=4×2×2×4=64。
由于处理器内集成的计算核之间可以任意通信,可以在处理器中100个计算核中选取64个计算核构成众核矩阵。在处理器中,有的计算核比较空闲负荷率为0%,有的计算核比较繁忙负荷率可以达到100%,在处理器中选取计算核构成众核矩阵执行卷积运算任务,可以按照计算核的空闲度选取,也可以根据选取算法选取,本公开对具体的计算核选取方式不做限定。
众核按照切分维度方向以及各方向的维度值,排列成四维众核矩阵。众核矩阵表示为:Core(i,j,m,n),i=1,2,3,4;j=1,2;m=1,2;n=1,2,3,4;众核矩阵Core(i,j,m,n)在第一切分维度方向i上排列4个计算核,在第二切分维度方向j上排列2个计算核,第三切分维度方向m上排列2个计算核,第四切分维度方向m上排列4个计算核。
众核矩阵Core(i,j,m,n)可以在i,j,m,n四个维度方向上排列4×2×2×4=64个计算核。众核矩阵Core(i,j,m,n)中的i,j,m,n是core的四维矩阵坐标。例如,Core(1,1,1,1)可以对应计算核13,Core(2,1,1,1)可以对应计算核21。Core(1,1,1,1)~Core(4,2,2,4)可以共同执行卷积运算任务。
处理器中剩余的36个计算核(例如计算核3,计算核10)可以执行其他任务。
从图5中可以看出,众核矩阵Core(i,j,m,n)用于表示各计算核之间逻辑上的相对关系,不需要同处理器中实际的物理位置对应。例如,众核矩阵Core(i,j,m,n)内首个计算核Core(1,1,1,1)可以对应处理器中第二行第三列的计算核13,不需要对应处理器中第一行第一列的首个计算核1。
通过按照切分维度方向以及切分维度方向的维度值为选取的多个计算核分配坐标,可以使处理数据和权值数据的切分与计算核形成维度的对应关系。
步骤S3、根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块。
在一种可能实现的方式中,根据所述第一切分维度方向,所述第二切分维度方向,所述第三切分维度方向以及所述切分维度方向的维度值对所述处理数据切分,获得所述处理数据子数据块。
根据所述第三切分维度方向,所述第四切分维度方向以及所述切分维度方向的维度值对所述权值数据切分,获得所述权值数据子数据块。
举例说明,图6示出根据本公开的实施例的处理数据和权值数据切分示意图。
如图6所示,Dxy表示处理数据(即图6中长方体Dx×Dy×Fmin),D(i,j,m)表示可以沿着第一切分维度方向将处理数据Dxy切分为i份,沿着第二切分维度方向将处理数据Dxy切分为j份,沿着第三切分维度方向将处理数据Dxy切分为m份。
其中,第一切分维度方向即图6中长方体宽度i的方向,第二切分维度方向即图6中长方体高度j的方向,第三切分维度方向即图6中长方体深度m的方向。
W表示权值数据(即图6中长方体FMout×K×FMin),W(m,n)表示可以沿着第三切分维度方向将权值数据W切分为m份,沿着第四切分维度方向将权值数据W切分为n份。
其中,第四切分维度方向即图6中卷积核个数方向,沿着第四切分维度方向将权值数据W切分为n份也就是沿着卷积核个数方向将卷积核分成n组;权值数据在第三切分维度方向与处理数据在第三切分维度方向上保持同步,同样切分为m份。
通过各切分维度方向以及切分维度方向的维度值对处理数据和权值数据进行切分,可以解决处理数据和权值数据过大消耗各计算核的存储空间。
步骤S4、将切分后的所述处理数据子数据块和所述权值数据子数据块按照所述坐标送入对应的计算核,使各个计算核对接收的所述处理数据子数据块和所述权值数据子数据块进行卷积运算。
在一种可能实现的方式中,众核矩阵中的计算核Core(i,j,m,n)与切分后的处理数据子数据块D(i,j,m)和权值数据子数据块W(m,n)一一对应。可以将切分后的处理数据子数据块D(i,j,m)和权值数据子数据块W(m,n)送入众核矩阵内对应的计算核Core(i,j,m,n)。
举例来说,众核矩阵中的计算核Core(1,1,1,1)同切分后的处理数据子数据块D(1,1,1)和权值数据子数据块W(1,1)对应,可以将切分后的处理数据子数据块D(1,1,1)和权值数据子数据块W(1,1)送入众核矩阵内对应的计算核Core(1,1,1,1)。
众核矩阵中的计算核Core(2,1,1,1)同切分后的处理数据子数据块D(2,1,1)和权值数据子数据块W(1,1)对应,可以将切分后的处理数据子数据块D(2,1,1)和权值数据子数据块W(1,1)送入众核矩阵内对应的计算核Core(2,1,1,1)。
众核矩阵中的计算核Core(4,2,2,4)同切分后的处理数据子数据块D(4,2,2)和权值数据子数据块W(2,4)对应,可以将切分后的处理数据子数据块D(4,2,2)和权值数据子数据块W(2,4)送入众核矩阵内对应的计算核Core(4,2,2,4)。
由此可知,处理器内的多个计算核之间可以进行数据传输,相同的权值数据子数据块W(1,1)可以传播至计算核Core(1,1,1,1)和计算核Core(2,1,1,1),相同的权值数据可以进行多次传播至多个计算核。
众核矩阵内的各个计算核可以对接收的所述处理数据子数据块和所述权值数据子数据块进行卷积运算。
众核矩阵中的计算核Core(i,j,m,n)可以对接收的处理数据子数据块D(i,j,m)和权值数据子数据块W(m,n)进行卷积运算,获得处理数据子数据块D(i,j,m)和权值数据子数据块W(m,n)的卷积运算结果O(i,j,n)。
例如:众核矩阵中的计算核Core(1,1,1,1)对接收的处理数据子数据块D(1,1,1)和权值数据子数据块W(1,1)进行卷积运算,获得处理数据子数据块D(1,1,1)和权值数据子数据块W(1,1)的卷积运算结果O(1,1,1)。
众核矩阵中的计算核Core(2,1,1,1)对接收的处理数据子数据块D(2,1,1)和权值数据子数据块W(1,1)进行卷积运算,获得处理数据子数据块D(2,1,1)和权值数据子数据块W(1,1)的卷积运算结果O(2,1,1)。
众核矩阵中的计算核Core(4,2,2,4)对接收的处理数据子数据块D(4,2,2)和权值数据子数据块W(2,4)进行卷积运算,获得处理数据子数据块D(4,2,2)和权值数据子数据块W(2,4)的卷积运算结果O(4,2,4)。
通过上述步骤S1-S4,可以将图6中第一行虚框中所示的处理数据和权值数据的卷积运算Oxy=Dxy*W,其中,Oxy(即图6中长方体Ox×Oy×FMout)表示处理数据Dxy和权值数据W的卷积运算结果,通过对处理数据和权值数据切分(如图6中第二行虚框中所示),并将切分后的处理数据子数据块D(i,j,m)和权值数据子数据块W(m,n)送入众核矩阵中对应的计算核Core(i,j,m,n),实现卷积运算的并行处理,具体公式如下:
式中,Dijm代表处理数据子数据块D(i,j,m),Wmn代表权值数据子数据块W(m,n),Oijn代表卷积运算结果O(i,j,n),m代表第三切分维度方向的维度值。
根据在四个切分维度方向上执行切分操作对处理器计算性能的影响程度,可以按照上述先考虑第三切分维度方向,再考虑第四切分维度方向,最后考虑剩余维度方向的优先级顺序确定切分方案,将大规模的卷积运算进行有序的切分映射到众核上,可以克服各计算核内物理存储空间容量的限制,充分利用芯片内资源,平衡存储与计算的关系,减少数据计算时钟,提升计算效率,降低芯片功耗。
在一种可能实现的方式中,根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
在需要减少卷积运算的数据交叠量的情况下,对所述处理数据在所述第一切分维度方向和所述第二切分维度方向不切分或减少维度值;其中,数据交叠量包括因卷积过程中补全处理数据子数据块边缘引起的数据交叠。
在需要减少卷积运算的部分和产生的情况下,对所述处理数据在所述第三切分维度方向不切分或减少维度值,其中,所述部分和包括由深度切分引起的计算核输出的部分数据。
通过对所述处理数据沿所述第一切分维度方向、所述第二切分维度方向、所述第三切分维度方向以及所述切分维度方向的维度值进行数据切分,使所述众核矩阵中的各个计算核的计算资源满足待接收的所述处理数据子数据块的数据量需要的计算资源。
其中,在需要减少卷积运算的数据交叠量的情况下,对所述处理数据在所述第一切分维度方向和所述第二切分维度方向不切分或减少维度值,即减少切分的份数。数据交叠量包括因卷积过程中补全处理数据子数据块边缘引起的数据交叠,例如,在对拆分后数据进行卷积运算的过程中,为了保证卷积运算的完整性,需要对处理数据子数据块边缘补齐后再进行卷积运算,其中补齐的部分引起数据交叠。
其中,在需要减少卷积运算的部分和产生的情况下,对所述处理数据在所述第三切分维度方向不切分或减少维度值,即减少切分份数。例如,在第三切分维度方向不切分部分和为0。其中,对处理数据和权值数据在深度方向上进行拆分,造成各计算核的计算结果为多个不完整的部分,需要对这个多个部分数据进一步相加才能得出最终的求和结果。由深度切分引起的、计算核输出的部分数据称之为部分和。
举例来说,可以对处理数据沿着第一切分维度方向、第二切分维度方向以及第三切分维度方向进行任意的切割。如图6所示,处理数据可以沿着第一切分维度方向被切分为i份,沿着第二切分维度方向被切分为j份,沿着第三切分维度方向被切分为m份,众核矩阵中每个计算核接收的数据量变为处理数据的1/(i×j×m)。对比切分前的处理数据,经过切分的处理数据子数据块所需的计算核资源可以降低。
其中,为了减少卷积运算的数据交叠量的产生,可以在第三切分维度方向上进行切分,在第一切分维度方向和第二切分维度方向上尽量不切分或减少维度值。
其中,为了减少卷积运算过程中部分和的产生,可以对处理数据在第一切分维度方向和第二切分维度方向上进行切分,在第三切分维度方向尽量不切分或减少切分。
在一种可能实现的方式中,根据所述切分维度方向以及所述切分维度方向的维度值对处理数据和权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
在需要减少卷积运算中数据的多播的情况下,对所述权值数据在所述第四切分维度方向上不切分或减少维度值,其中,多播表示同一处理数据子数据块传播至多个计算核中。
通过对所述权值数据沿所述第三切分维度方向、第四切分维度方向以及所述切分维度方向的维度值进行数据切分,使所述众核矩阵中的各个计算核的计算资源满足待接收的所述权值数据子数据块的数据量需要的计算资源。
其中,在需要减少卷积运算中数据的多播的情况下,对所述权值数据在所述第四切分维度方向上不切分或减少维度值。多播表示同一子数据块传播至多个计算核中。例如,在n不为1的情况下,处理子数据块D(i,j,m)需传播至n个计算核中进行计算,即相同的传播处理子数据块D(i,j,m)传播至计算核Core(i,j,m,1)、计算核Core(i,j,m,2)至计算核Core(i,j,m,n)分别进行卷积运算。当需要减少不同层之间数据合并计算量的情况下,也可以在所述第四切分维度方向上不切分或减少维度值。其中,神经网络可以包括多层卷积,在神经网络对数据处理的过程中,需要对不同层之间的数据进行合并。
举例来说,可以对权值数据沿着第三切分维度方向、第四切分维度方向进行切割。其中,权值数据在第三切分维度方向上的切分需要与处理数据在第三切分维度方向上保持同步,可以被切分为相同的份数。如图6所示,权值数据可以沿着第三切分维度方向被切分为m份,沿着第四切分维度方向被切分为n份,众核矩阵中每个计算核接收的数据量变为权值数据的1/(m×n)。对比切分前的权值数据,经过切分的权值数据子数据块所需的计算核资源可以大大的降低。
其中,为了减少卷积运算过程中数据的多播,可以对权值数据在第三切分维度方向上进行切分,在第四切分维度方向尽量不切分或减少切分。
在一种可能实现的方式中,图7示出根据本公开一实施例的流程图。如图7所示,确定切分维度方向以及切分维度方向的维度值,包括:
步骤S71、判断处理数据的数据量是否满足第一简化条件,以及判断权值数据的数据量是否满足第二简化条件。
所述第一简化条件包括,一个计算核能够满足所有处理数据需要的计算资源,所述第二简化条件包括,一个计算核能够满足所有权值数据需要的计算资源。
其中,如果处理数据的数据量比较小,一个计算核就可以满足所有处理数据需要的计算资源,处理数据的数据量是满足第一简化条件,反之则不满足第一简化条件。如果权值数据的数据量比较小,一个计算核就可以满足所有权值数据需要的计算资源,权值数据的数据量是满足第二简化条件,反之则不满足第二简化条件。
步骤S72、在处理数据的数据量满足第一简化条件,并且权值数据的数据量满足第二简化条件的情况下,对处理数据和权值数据不切分。
举例来说,如果处理数据和权值数据的数据量比较小时,一个计算核就可以满足卷积运算所需的计算资源,对处理数据和权值数据不切分,众核矩阵可以降维到一维,只剩下一个计算核。
步骤S73、在处理数据的数据量不满足第一简化条件,并且权值数据的数据量不满足第二简化条件的情况下,对处理数据在第一切分维度方向、第二切分维度方向以及第三切分维度方向上进行切分,对权值数据在第三切分维度方向和第四切分维度方向进行切分。
举例来说,如果处理数据和权值数据的数据量比较大,只有对处理数据和权值数据在各个切分维度方向上分别切分,众核矩阵中的计算核才可以满足对接收到的处理数据子数据块和权值数据子数据块进行卷积运算所需要的计算资源,切分维度不能简化。众核矩阵Core(i,j,m,n)的维度同样不能简化。
步骤S74、在处理数据的数据量满足第一简化条件,并且权值数据的数据量不满足第二简化条件的情况下,对处理数据在第一切分维度方向、第二切分维度方向上不切分,对权值数据在第四切分维度方向进行切分。
举例来说,如果处理数据的数据量比较小,权值数据的数据量比较大,可以在第一切分维度方向、第二切分维度方向上对处理数据不切分的情况下,对权值数据第四切分维度方向进行切分。
其中,在需要减少交叠数据量的情况下,可以在第一切分维度方向、第二切分维度方向上对处理数据不切分。
如果一个计算核可以满足接收到的第四切分维度方向进行切分后子数据块进行卷积运算所需的计算资源,则在第三切分维度方向上不切分,可以将切分维度简化到一维(即第四切分维度方向)。众核矩阵Core(n)的维度同样简化为一维。
如果一个计算核不能满足接收到的第四切分维度方向进行切分后子数据块进行卷积运算所需的计算资源,则在第三切分维度方向上继续切分,可以将切分维度简化到二维(即第三切分维度方向和第四切分维度方向)。众核矩阵Core(m,n)的维度同样简化为二维。
步骤S75、在处理数据的数据量不满足第一简化条件,并且权值数据的数据量满足第二简化条件的情况下,对处理数据在第一切分维度方向、第二切分维度方向上进行切分,对权值数据第四切分维度方向上不切分。
举例来说,如果处理数据的数据量比较大,权值数据的数据量比较小,可以在第四切分维度方向对权值数据不切分的情况下,对处理数据在第一切分维度方向、第二切分维度方向上进行切分。
其中,在需要减少部分和组数的情况下,可以在第三切分维度方向不切分。在需要减少数据多播的情况下,可以在第四切分维度方向不切分。
如果计算核可以满足接收到的第一切分维度方向和第二切分维度方向进行切分后子数据块进行卷积运算所需的计算资源,则在第三切分维度方向上不切分,可以将切分维度简化到二维(即第一切分维度方向和第二切分维度方向)。众核矩阵Core(i,j)的维度同样简化为二维。
如果计算核不能满足接收到的第一切分维度方向和第二切分维度方向进行切分后子数据块进行卷积运算所需的计算资源,则在第三切分维度方向上继续切分,可以将切分维度简化到三维(即第一切分维度方向、第二切分维度方向以及第三切分维度方向)。众核矩阵Core(i,j,m)的维度同样简化为三维。
通过判断处理数据和权值数据的数据量大小,可以简化切分维度,减少缓存数据,减少对存储空间的消耗与浪费,以及数据计算时钟和路由传输延时,提高计算效率,降低芯片功耗。
在一种可能的实现方式中,本公开实施例还提出一种处理器,所述处理器包括多个计算核,各个计算核之间能够相互通信,所述处理器用于执行上文所述的数据处理方法。
在一种可能的实现方式中,本公开实施例还提出一种人工智能芯片,所述芯片包括一个或多个如上所述的处理器。
在一种可能的实现方式中,本公开实施例提出了一种电子设备,包括一个或多个上述人工智能芯片。
图8是示出根据本公开实施例的一种组合处理装置1200的结构图。如图8中所示,该组合处理装置1200包括计算处理装置1202(例如,上述包括多个计算核的人工智能处理器)、接口装置1204、其他处理装置1206和存储装置1208。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置1210(例如,计算核)。
在一种可能的实现方式中,本公开的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本公开的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本公开的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本公开的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本公开的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本公开的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本公开的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
根据不同的应用场景,本公开的人工智能芯片可用于服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
图9示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图9,电子设备1900包括处理组件1922(例如,包括多个计算核的人工智能处理器),其进一步包括一个或多个计算核,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在本公开中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本公开实施例所述方案的目的。另外,在一些场景中,本公开实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本公开的电子设备或处理器还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本公开的电子设备或处理器还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本公开方案的算力高的电子设备或处理器可以应用于云端设备(例如云端服务器),而功耗小的电子设备或处理器可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (8)
1.一种数据处理方法,其特征在于,所述方法包括:
确定切分维度方向以及切分维度方向的维度值;所述切分维度方向包括第一切分维度方向,第二切分维度方向,第三切分维度方向和第四切分维度方向;其中,所述第一切分维度方向表示处理数据的宽度方向;所述第二切分维度方向表示所述处理数据的高度方向;所述第三切分维度方向表示所述处理数据的深度方向,也对应权值数据的深度方向;所述第四切分维度方向表示所述权值数据的卷积核个数方向;
根据所述切分维度方向以及所述切分维度方向的维度值,从处理器包括的计算核中选取多个计算核,并按照所述切分维度方向以及所述切分维度方向的维度值为选取的多个计算核分配坐标;其中,所述处理器包括多个计算核,各个计算核之间能够相互通信;
根据所述切分维度方向以及所述切分维度方向的维度值对所述处理数据和所述权值数据进行切分,获得处理数据子数据块和权值数据子数据块;
将切分后的所述处理数据子数据块和所述权值数据子数据块按照坐标送入对应的计算核,使各个计算核对接收的所述处理数据子数据块和所述权值数据子数据块进行卷积运算;
其中,确定切分维度方向以及切分维度方向的维度值,包括:
在所述第一切分维度方向或所述第二切分维度方向上给定一个随机数作为维度值;
按照先考虑所述第三切分维度方向,再考虑所述第四切分维度方向,最后考虑所述第一切分维度方向和所述第二切分维度方向中未给定随机数的维度方向的顺序确定所述切分维度方向的维度值。
2.根据权利要求1所述的方法,其特征在于,根据所述切分维度方向以及所述切分维度方向的维度值对所述处理数据和所述权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
根据所述第一切分维度方向,所述第二切分维度方向,所述第三切分维度方向以及所述切分维度方向的维度值对所述处理数据切分,获得所述处理数据子数据块;
根据所述第三切分维度方向,所述第四切分维度方向以及所述切分维度方向的维度值对所述权值数据切分,获得所述权值数据子数据块。
3.根据权利要求1或2所述的方法,其特征在于,根据所述切分维度方向以及所述切分维度方向的维度值对所述处理数据和所述权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
在需要减少卷积运算的数据交叠量的情况下,对所述处理数据在所述第一切分维度方向和所述第二切分维度方向不切分或减少维度值;其中,数据交叠量包括因卷积过程中补全处理数据子数据块边缘引起的数据交叠;
在需要减少卷积运算的部分和产生的情况下,对所述处理数据在所述第三切分维度方向不切分或减少维度值,其中,所述部分和包括由深度切分引起的计算核输出的部分数据。
4.根据权利要求1或2所述的方法,其特征在于,根据所述切分维度方向以及所述切分维度方向的维度值对所述处理数据和所述权值数据进行切分,获得处理数据子数据块和权值数据子数据块,包括:
在需要减少卷积运算中数据的多播的情况下,对所述权值数据在所述第四切分维度方向上不切分或减少维度值,其中,多播表示同一处理数据子数据块传播至多个计算核中。
5.根据权利要求1所述的方法,其特征在于,确定切分维度方向以及切分维度方向的维度值,包括:
判断所述处理数据的数据量是否满足第一简化条件,以及判断所述权值数据的数据量是否满足第二简化条件;
在所述处理数据的数据量满足所述第一简化条件,并且所述权值数据的数据量满足所述第二简化条件的情况下,对所述处理数据和所述权值数据不切分;
在所述处理数据的数据量不满足所述第一简化条件,并且所述权值数据的数据量不满足所述第二简化条件的情况下,对所述处理数据在所述第一切分维度方向、所述第二切分维度方向以及所述第三切分维度方向上进行切分,对所述权值数据在所述第三切分维度方向和所述第四切分维度方向进行切分;
在所述处理数据的数据量满足所述第一简化条件,并且所述权值数据的数据量不满足所述第二简化条件的情况下,对所述处理数据在所述第一切分维度方向、所述第二切分维度方向上不切分,对所述权值数据在所述第四切分维度方向进行切分;
在所述处理数据的数据量不满足所述第一简化条件,并且所述权值数据的数据量满足所述第二简化条件的情况下,对所述处理数据在所述第一切分维度方向、所述第二切分维度方向上进行切分,对所述权值数据在所述第四切分维度方向上不切分。
6.根据权利要求5所述的方法,其特征在于,所述第一简化条件包括,一个计算核能够满足所有处理数据需要的计算资源,所述第二简化条件包括,一个计算核能够满足所有权值数据需要的计算资源。
7.一种处理器,其特征在于,所述处理器包括多个计算核,各个计算核之间能够相互通信,所述处理器用于执行权利要求1-6任一项所述的数据处理方法。
8.一种电子设备,其特征在于,包括一个或多个如权利要求7所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110172546.5A CN112799598B (zh) | 2021-02-08 | 2021-02-08 | 一种数据处理方法、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110172546.5A CN112799598B (zh) | 2021-02-08 | 2021-02-08 | 一种数据处理方法、处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799598A CN112799598A (zh) | 2021-05-14 |
CN112799598B true CN112799598B (zh) | 2022-07-15 |
Family
ID=75814806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110172546.5A Active CN112799598B (zh) | 2021-02-08 | 2021-02-08 | 一种数据处理方法、处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799598B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023122854A1 (zh) * | 2021-12-27 | 2023-07-06 | 华为技术有限公司 | 数据处理的方法和装置 |
CN114816773B (zh) * | 2022-06-29 | 2022-09-23 | 浙江大华技术股份有限公司 | 数据处理方法、系统、电子装置和存储介质 |
CN118277711A (zh) * | 2022-12-31 | 2024-07-02 | 北京希姆计算科技有限公司 | 一种算子切分方法、装置和算子编译系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105944233A (zh) * | 2016-04-18 | 2016-09-21 | 清华大学 | 基于深度学习的视神经仿真方法及系统 |
CN107729994A (zh) * | 2017-11-28 | 2018-02-23 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的卷积层的运算的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650922B (zh) * | 2016-09-29 | 2019-05-03 | 清华大学 | 硬件神经网络转换方法、计算装置、软硬件协作系统 |
EP3651031A1 (en) * | 2017-08-31 | 2020-05-13 | Cambricon Technologies Corporation Limited | Chip device and related products |
CN107844827B (zh) * | 2017-11-28 | 2020-05-26 | 南京地平线机器人技术有限公司 | 执行卷积神经网络中的卷积层的运算的方法和装置 |
CN111832585B (zh) * | 2019-04-16 | 2023-04-18 | 杭州海康威视数字技术股份有限公司 | 图像处理的方法和装置 |
CN111738276A (zh) * | 2020-06-19 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 基于多核卷积神经网络的图像处理方法、装置及设备 |
-
2021
- 2021-02-08 CN CN202110172546.5A patent/CN112799598B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105944233A (zh) * | 2016-04-18 | 2016-09-21 | 清华大学 | 基于深度学习的视神经仿真方法及系统 |
CN107729994A (zh) * | 2017-11-28 | 2018-02-23 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的卷积层的运算的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112799598A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112799598B (zh) | 一种数据处理方法、处理器及电子设备 | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
WO2023045445A1 (zh) | 数据处理装置、数据处理方法及相关产品 | |
CN112686379B (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
US20230298237A1 (en) | Data processing method, apparatus, and device and storage medium | |
WO2023045446A1 (zh) | 计算装置、数据处理方法及相关产品 | |
CN110458285B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
WO2023045638A1 (zh) | 计算装置、利用计算装置实施卷积运算的方法及相关产品 | |
CN112801276B (zh) | 数据处理方法、处理器及电子设备 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN114201727A (zh) | 数据的处理方法、处理器、人工智能芯片及电子设备 | |
CN115221103A (zh) | 计算装置、数据处理方法及相关产品 | |
CN114281558A (zh) | 多核处理器、用于多核处理器的方法及相应产品 | |
CN114281561A (zh) | 处理单元、用于处理单元的同步方法及相应产品 | |
CN115373646A (zh) | 扩展信息方法、装置和相关产品 | |
CN113469333A (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
US20230376562A1 (en) | Integrated circuit apparatus for matrix multiplication operation, computing device, system, and method | |
CN112232498B (zh) | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 | |
WO2022257980A1 (zh) | 计算装置、利用计算装置实施卷积运算的方法及相关产品 | |
CN111353125B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113792867B (zh) | 运算电路、芯片和板卡 | |
CN116781484B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112801277A (zh) | 数据处理方法、处理器、芯片及电子设备 | |
CN113850376A (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 |