CN111488116B - 运算方法、装置及相关产品 - Google Patents
运算方法、装置及相关产品 Download PDFInfo
- Publication number
- CN111488116B CN111488116B CN201910085443.8A CN201910085443A CN111488116B CN 111488116 B CN111488116 B CN 111488116B CN 201910085443 A CN201910085443 A CN 201910085443A CN 111488116 B CN111488116 B CN 111488116B
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- storage space
- blocks
- space
- 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
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种运算方法、装置及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种运算方法、装置及相关产品。
背景技术
随着计算机技术的发展,尤其是神经网络技术的普及,越来越多的神经网络被开发和使用,神经网络的规模也随之越来越大。通常情况下,神经网络是逐层进行计算,网络上每层的计算结果都会保存下来。当神经网络的网络层深很深时,保存每层的计算结果所需的存储空间往往大于处理器所能提供的存储空间,给存储空间带来巨大压力。
发明内容
有鉴于此,本公开提出了一种数据处理方法及装置以及人工智能处理装置。
根据本公开的一方面,提供了一种数据处理方法,包括:
根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列;
根据所述多个数据块的标识以及所述多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在所述数据执行序列中的初次出现位置及末次出现位置;
根据所述对应关系,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个;
在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间;
在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
在一种可能的实现方式中,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的数据块,包括:在所述第一数据块的初次出现位置在所述第二数据块的末次出现位置之后时,判断所述第二数据块与所述第一数据块的使用周期不重叠。
在一种可能的实现方式中,在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块分配对应的存储空间,包括以下任意一种:
在所述第二数据块的存储空间大于或等于所述第一数据块的尺寸且未被占用时,将所述第二数据块的存储空间指定为所述第一数据块的存储空间;
在所述第二数据块的存储空间被占用时,为所述第一数据块指定新的存储空间;
在所述第二数据块的存储空间小于所述第一数据块的尺寸时,为所述第一数据块指定新的存储空间;
在所述第二数据块的存储空间小于所述第一数据块的尺寸时,根据所述第一数据块的尺寸扩展所述第二数据块的存储空间,并将扩展后的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间,包括以下任意一种:
当存在不重叠的多个第二数据块时,将初次出现位置最前的第二数据块的存储空间指定为所述第一数据块的存储空间;
当存在不重叠的多个第二数据块时,将尺寸最大的第二数据块的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,所述方法还包括:在第一数据块之前使用的数据块均与所述第一数据块的使用周期重叠时,为所述第一数据块分配新的存储空间。
在一种可能的实现方式中,在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块,包括:在数据处理过程中生成所述第一数据块时,将所述第一数据块存储到对应的存储空间。
在一种可能的实现方式中,所述数据处理过程包括神经网络计算过程,所述多个数据块包括中间结果。
在一种可能的实现方式中,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,其中,通用处理器用于指定各个数据块的存储空间,人工智能处理器用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
根据本公开的另一方面,提供了一种数据处理装置,包括:
数据序列建立模块,用于根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列;
周期确定模块,用于根据所述多个数据块的标识以及所述多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在所述数据执行序列中的初次出现位置及末次出现位置;
判断模块,用于根据所述对应关系,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个;
空间指定模块,用于在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间;
数据存储模块,用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
在一种可能的实现方式中,所述判断模块包括:判断子模块,用于在所述第一数据块的初次出现位置在所述第二数据块的末次出现位置之后时,判断所述第二数据块与所述第一数据块的使用周期不重叠。
在一种可能的实现方式中,所述空间指定模块包括以下任意一种:
第一空间指定子模块,用于在所述第二数据块的存储空间大于或等于所述第一数据块的尺寸且未被占用时,将所述第二数据块的存储空间指定为所述第一数据块的存储空间;
第二空间指定子模块,用于在所述第二数据块的存储空间被占用时,为所述第一数据块指定新的存储空间;
第三空间指定子模块,用于在所述第二数据块的存储空间小于所述第一数据块的尺寸时,为所述第一数据块指定新的存储空间;
第四空间指定子模块,用于在所述第二数据块的存储空间小于所述第一数据块的尺寸时,根据所述第一数据块的尺寸扩展所述第二数据块的存储空间,并将扩展后的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,所述空间指定模块包括以下任意一种:
第五空间指定子模块,用于当存在不重叠的多个第二数据块时,将初次出现位置最前的第二数据块的存储空间指定为所述第一数据块的存储空间;
第六空间指定子模块,用于当存在不重叠的多个第二数据块时,将尺寸最大的第二数据块的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,所述装置还包括:空间分配模块,用于在第一数据块之前使用的数据块均与所述第一数据块的使用周期重叠时,为所述第一数据块分配新的存储空间。
在一种可能的实现方式中,所述数据存储模块包括:存储子模块,用于在数据处理过程中生成所述第一数据块时,将所述第一数据块存储到对应的存储空间。
在一种可能的实现方式中,所述数据处理过程包括神经网络计算过程,所述多个数据块包括中间结果。
根据本公开的另一方面,提供了一种人工智能处理装置,所述装置包括通用处理器和人工智能处理器,所述装置被配置为执行上述数据处理方法,其中,通用处理器用于指定各个数据块的存储空间,人工智能处理器用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
根据本公开的实施例,能够建立数据执行序列以确定数据块的使用周期,进而判断不同数据块的使用周期之间是否重叠,并在使用周期不重叠时复用存储空间(内存),从而提高数据处理过程中存储空间的使用效率,降低存储空间的占用率,有效缓解存储空间的压力。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据处理方法的流程图。
图2示出根据本公开实施例的数据处理方法的示意图。
图3示出根据本公开实施例的数据处理装置的框图。
图4示出根据本公开实施例的人工智能处理装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的数据处理方法的流程图。如图1所示,该数据处理方法包括:
在步骤S11中,根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列;
在步骤S12中,根据所述多个数据块的标识以及所述多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在所述数据执行序列中的初次出现位置及末次出现位置;
在步骤S13中,根据所述对应关系,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个;
在步骤S14中,在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间;
在步骤S15中,在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
根据本公开的实施例,能够建立数据执行序列以确定数据块的使用周期,进而判断不同数据块的使用周期之间是否重叠,并在使用周期不重叠时复用存储空间(内存),从而提高数据处理过程中存储空间的使用效率,降低存储空间的占用率,有效缓解存储空间的压力。
在一种可能的实现方式中,所述数据处理方法可以由处理器执行。处理器可以是人工智能处理器(IPU),用于执行人工智能运算(可包括机器学习运算、类脑运算等);处理器也可以是通用处理器,例如中央处理单元CPU、图形处理单元GPU等。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,所述数据处理方法可以应用于异构计算架构中,所述异构计算架构可包括通用处理器和人工智能处理器,其中,通用处理器可用于指定各个数据块的存储空间,人工智能处理器可用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。也就是说,该数据处理方法可以由通用处理器和人工智能处理器共同执行,例如,可以采用CPU+IPU的处理器异构架构,首先通过CPU的计算来指定各个数据块的存储空间,然后在数据处理过程中,根据各个数据块的存储空间的地址,通过IPU来分配存储空间。
在一种可能的实现方式中,所述数据处理方法由处理器执行时,处理器可以是单一架构。也就是说,数据处理方法可以由任一个处理器独立执行,例如,可以由IPU来执行该数据处理方法。
应当理解,本领域技术人员可以根据处理器的实际情况设置数据处理方法的执行方式,本公开对此不作限制。
在一种可能的实现方式中,所述数据处理过程可以包括神经网络计算过程,所述多个数据块可以包括中间结果。其中,中间结果可以是神经网络计算过程中除了输入数据和输出数据之外的各层的计算结果。例如,神经网络可以由全连接和池化两个算子组成,首先对输入数据进行全连接运算,然后对运算结果进行池化运算,得到最终的输出结果,中间结果是全连接运算完成后生成的结果。多个数据块还可以包括输入数据、输出数据。神经网络可例如包括卷积神经网络CNN,本公开对神经网络的具体类型不作限制。
在一种可能的实现方式中,可以在步骤S11中根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列。其中,数据执行序列可以是根据待使用的多个数据块在数据处理过程中的使用顺序而建立的数据序列,可以用数据块在序列中的位置来表示其使用顺序。在数据处理过程中,使用多次的数据块在数据执行序列中会出现多次。建立数据执行序列的方式可以有多种,例如,可以通过CPU对数据执行过程进行编译,生成数据执行序列。本公开对建立数据执行序列的具体方式不作限制。
在一种可能的实现方式中,建立数据执行序列后,可以在步骤S12中根据所述多个数据块的标识以及多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在数据执行序列中的初次出现位置及末次出现位置。
举例来说,可以根据数据块的标识及数据块在数据执行序列中的初次出现位置及末次出现位置,确定数据块的标识与使用周期之间的对应关系,其中,数据块的使用周期可以用<初次出现位置,末次出现位置>来表示。例如,在数据执行序列中,数据块标识D2的初次出现位置为2,末次出现位置为7,那么,数据块D2的使用周期可表示为<2,7>。本领域技术人员可以根据实际情况对使用周期的表示方式进行设定,本公开对此不作限制。
应当理解,在上述实施例中,数据块的初次出现位置、末次出现位置可以根据数据处理过程中待使用的多个数据块的不同而不同,本公开对数据块的初次出现位置、末次出现位置均不作限制。
在一种可能的实现方式中,根据各个数据块的标识与使用周期之间的对应关系,可以在步骤S13中判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个。在该实现方式中,可以对在第一数据块的初次出现位置之前使用的数据块,判断是否存在与第一数据块的使用周期不重叠的第二数据块。例如,第一数据块的初次出现位置为8,可以对在第一数据块初次出现位置8之前使用的数据块,判断是否存在与第一数据块的使用周期不重叠的第二数据块。判断数据块的使用周期是否重叠可以有多种方式,例如可以通过数据块在数据执行序列中出现位置的先后进行判断,本公开对此不作限制。
在一种可能的实现方式中,步骤S13可包括:在所述第一数据块的初次出现位置在所述第二数据块的末次出现位置之后时,判断所述第二数据块与所述第一数据块的使用周期不重叠。
举例来说,可以将第一数据块的初次出现位置与第二数据块的末次出现位置进行比较,当第一数据块的初次出现位置在第二数据块的末次出现位置之后时,判断第二数据块与第一数据块的使用周期不重叠。例如,第一数据块的初次出现位置为8,第二数据块的末次出现位置为6,第一数据块的初次出现位置8在第二数据块的末次出现位置6之后,第二数据块与第一数据块的使用周期不重叠。通过这种方式,可以简单且快速地确定与第一数据块的使用周期不重叠的第二数据块,从而提高数据处理效率。
应当理解,在上述实施例中,第一数据块的初次出现位置、第二数据块的末次出现位置可以根据数据处理过程中待使用的多个数据块的不同而不同,本公开对第一数据块的初次出现位置、第二数据块的末次出现位置均不作限制。
在一种可能的实现方式中,在存在不重叠的第二数据块时,可以在步骤S14中,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间。例如,可以判断第二数据块的存储空间是否充足、是否已被占用等,根据判断结果为第一数据块指定对应的存储空间。本领域技术人员可以结合实际情况来根据第二数据块的存储空间为第一数据块指定对应的存储空间,本公开对此不作限制。
在一种可能的实现方式中,步骤S14可包括以下任意一种:
在所述第二数据块的存储空间大于或等于所述第一数据块的尺寸且未被占用时,将所述第二数据块的存储空间指定为所述第一数据块的存储空间;
在所述第二数据块的存储空间被占用时,为所述第一数据块指定新的存储空间;
在所述第二数据块的存储空间小于所述第一数据块的尺寸时,为所述第一数据块指定新的存储空间;
在第二数据块的存储空间小于第一数据块的尺寸时,根据第一数据块的尺寸扩展第二数据块的存储空间,并将扩展后的存储空间指定为第一数据块的存储空间。
举例来说,在存在与第一数据块的使用周期不重叠的第二数据块时,可以将第二数据块的存储空间与第一数据块的尺寸进行比较,并判断第二数据块的存储空间是否已被占用。在第二数据块的存储空间大于或等于第一数据块的尺寸,且第二数据块的存储空间未被占用时,可以将第二数据块的存储空间指定为第一数据块的存储空间。例如,第一数据块的尺寸为4个字节,第二数据块的存储空间为8个字节,大于第一数据块的尺寸,且未被占用,则将第二数据块的存储空间指定为第一数据块的存储空间。通过这种方式,可以将第二数据块的存储空间指定为第一数据块的存储空间,从而提高存储空间的使用效率。
在一种可能的实现方式中,若第二数据块的存储空间被占用,则可以为第一数据块指定新的存储空间。也就是说,在第二数据块的存储空间仍被使用时,不可存放新的数据块,此时,可以为第一数据块指定新的存储空间。
在一种可能的实现方式中,在第二数据块的存储空间小于第一数据块的尺寸时,可以为第一数据块指定新的存储空间。在该实现方式中,可以将第二数据块的存储空间与第一数据块的尺寸进行比较,在第二数据块的存储空间小于第一数据块的尺寸时,即第二数据块的存储空间不足无法存放第一数据块时,可以为第一数据块指定新的存储空间。例如,第一数据块的尺寸为4个字节,第二数据块的存储空间为2个字节,第二数据块的存储空间小于第一数据块的尺寸,可以为第一数据块指定新的存储空间。
在一种可能的实现方式中,在第二数据块的存储空间小于第一数据块的尺寸时,可以根据第一数据块的尺寸扩展第二数据块的存储空间,并将扩展后的存储空间指定为第一数据块的存储空间。例如,第二数据块的存储空间为2个字节,第一数据块的尺寸为4个字节,第二数据块的存储空间小于第一数据块的尺寸,此时可以扩展第二数据块的存储空间,增加2个或更多字节,使得扩展后的第二数据块的存储空间大于或等于第一数据块的尺寸,然后将扩展后的第二数据块的存储空间指定为第一数据块的存储空间。通过对第二数据块的存储空间进行扩展,并将扩展后的存储空间指定为第一数据块的存储空间,提高了存储空间的使用效率。
应当理解,在上述实施例中,第一数据块的尺寸、第二数据块的存储空间,可以根据数据处理过程中待使用的多个数据块的不同而不同,本公开对第一数据块的尺寸和第二数据块的存储空间均不作限制。
在一种可能的实现方式中,步骤S14还可以包括以下任意一种:
当存在不重叠的多个第二数据块时,将初次出现位置最前的第二数据块的存储空间指定为所述第一数据块的存储空间;
当存在不重叠的多个第二数据块时,将尺寸最大的第二数据块的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,当存在不重叠的多个第二数据块时,可以根据使用顺序,将初次出现位置最前的第二数据块的存储空间指定为第一数据块的存储空间。通过这种方式,可以增加位置靠前的数据块的存储空间的使用次数,从而提高存储空间的使用效率。
在一种可能的实现方式中,当存在不重叠的多个第二数据块时,可以将多个第二数据块存储空间的尺寸进行比较,然后将尺寸最大的第二数据块的存储空间指定为第一数据块的存储空间。通过这种方式,可以提高该存储空间再次被使用的机会,从而提高存储空间的使用效率。
在一种可能的实现方式中,所述方法还包括:在第一数据块之前使用的数据块均与第一数据块的使用周期重叠时,可以为第一数据块分配新的存储空间。即,在第一数据块之前使用的数据块的存储空间均仍被使用时,可以为第一数据块分配新的存储空间。
在一种可能的实现方式中,在为第一数据块指定存储空间后,可以在步骤S15的数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。在为第一数据块指定存储空间后,可以确定各个数据块的存储空间的地址,在数据处理过程中,可以根据各个数据块的存储空间的地址,分别存储各个数据块。
在一种可能的实现方式中,步骤S15可包括:在数据处理过程中生成所述第一数据块时,将所述第一数据块存储到对应的存储空间。可以根据为第一数据块指定的存储空间的地址,将数据处理过程中生成的第一数据块存储到对应的存储空间。通过在数据处理过程中将第一数据块存储到指定的存储空间,可以提高存储空间的使用效率,从而缓解存储空间的压力。
图2示出根据本公开实施例的数据处理方法的示意图。如图2所示,在一种可能的实现方式中,数据处理方法可以通过通用处理器50+人工智能处理器30的异构架构来执行。其中,通用处理器50可用来建立数据执行序列,并通过计算来为各个数据块指定存储空间,人工智能处理器30可用来在数据处理过程中为各个数据块分配存储空间。
举例来说,多个数据块可以是神经网络计算过程中使用的中间结果。在一种可能的实现方式中,通用处理器50可以对待执行的神经网络计算过程中的中间结果(以下简称data)进行编译,建立data的数据执行序列,例如,建立的data的数据执行序列可以是【D1,D2,D3,D4,D3,D5,D2,D6】,其中,D1至D6为data中数据块的标识。
在一种可能的实现方式中,建立data的数据执行序列后,通用处理器50可以根据数据块的标识以及数据块在数据执行序列中的位置,可以分别确定各个数据块的标识与使用周期之间的对应关系,可以用<初次出现位置,末次出现位置>来表示数据块标识的使用周期。例如,根据上述数据执行序列,可以确定数据块标识D1至D6与其使用周期之间的对应关系,具体为:D1<1,1>,D2<2,7>,D3<3,5>,D4<4,4>,D5<6,6>,D6<8,8>。
在一种可能的实现方式中,建立data中各个数据块的标识与使用周期之间的对应关系后,通用处理器50可以根据该对应关系,判断在第一数据块之前使用的数据块中是否存在与第一数据块使用周期不重叠的第二数据块。在存在不重叠的第二数据块时,根据第二数据块的存储空间,为第一数据块指定对应的存储空间。例如,通用处理器50可以根据各个数据块的标识与使用周期之间的对应关系,分别为数据块标识D1至D6指定存储空间,具体如下:
D1是数据执行序列中的第一个数据块,为D1指定新的存储空间;
D2的使用周期与D1的使用周期不重叠,但D2与D1为同一周期参与运算的数据块,D1的存储空间为占用状态,为D2指定新的存储空间;
D3的使用周期与D1的使用周期不重叠,但D3与D1为同一周期参与运算的数据块,D1的存储空间为占用状态,D3的使用周期与D2的使用周期重叠,为D3指定新的存储空间;
D4的使用周期与D1的使用周期不重叠,D1的存储空间大于D4的尺寸且未被占用,将D1的存储空间指定为D4的存储空间;
D5的使用周期与D4的使用周期不重叠,但D5与D4为同一周期参与运算的数据块,D4的存储空间为占用状态,D5的使用周期与D2的使用周期重叠,D5使用周期与D3的使用周期不重叠,D3的存储空间等于D5的尺寸且未被占用,将D3的存储空间指定为D5的存储空间;
数据块标识D6的使用周期与D4,D2,D5的使用周期均不重叠,但D4的存储空间小于D6的尺寸,则将初次出现位置最前的D2的存储空间指定为D6的存储空间。
在一种可能的实现方式中,通用处理器50为各个数据块指定存储空间后,在数据处理过程中,人工智能处理器30可以为各个数据块分配存储空间,即根据数据块的存储空间的地址,分别存储各个数据块。例如,人工智能处理器30在神经网络计算过程中,可以根据为数据块D1至D6指定的存储空间的地址,分别存储各个数据块。
应当理解,在上述实施例中,数据执行序列、多个数据块的标识及其出现位置、存储空间的指定等,可以根据数据处理过程中待使用的多个数据块的不同而不同,本公开对此不作限制。
图3示出根据本公开实施例的数据处理装置的框图。如图3所示,所述装置包括:
数据序列建立模块61,用于根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列;
周期确定模块62,用于根据所述多个数据块的标识以及所述多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在所述数据执行序列中的初次出现位置及末次出现位置;
判断模块63,用于根据所述对应关系,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个;
空间指定模块64,用于在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间;
数据存储模块65,用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
在一种可能的实现方式中,所述判断模块63包括:判断子模块,用于在所述第一数据块的初次出现位置在所述第二数据块的末次出现位置之后时,判断所述第二数据块与所述第一数据块的使用周期不重叠。
在一种可能的实现方式中,所述空间指定模块64包括以下任意一种:
第一空间指定子模块,用于在所述第二数据块的存储空间大于或等于所述第一数据块的尺寸且未被占用时,将所述第二数据块的存储空间指定为所述第一数据块的存储空间;
第二空间指定子模块,用于在所述第二数据块的存储空间被占用时,为所述第一数据块指定新的存储空间;
第三空间指定子模块,用于在所述第二数据块的存储空间小于所述第一数据块的尺寸时,为所述第一数据块指定新的存储空间;
第四空间指定子模块,用于在所述第二数据块的存储空间小于所述第一数据块的尺寸时,根据所述第一数据块的尺寸扩展所述第二数据块的存储空间,并将扩展后的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,所述空间指定模块64包括以下任意一种:
第五空间指定子模块,用于当存在不重叠的多个第二数据块时,将初次出现位置最前的第二数据块的存储空间指定为所述第一数据块的存储空间;
第六空间指定子模块,用于当存在不重叠的多个第二数据块时,将尺寸最大的第二数据块的存储空间指定为所述第一数据块的存储空间。
在一种可能的实现方式中,所述装置还包括:空间分配模块,用于在第一数据块之前使用的数据块均与所述第一数据块的使用周期重叠时,为所述第一数据块分配新的存储空间。
在一种可能的实现方式中,所述数据存储模块65包括:存储子模块,用于在数据处理过程中生成所述第一数据块时,将所述第一数据块存储到对应的存储空间。
在一种可能的实现方式中,所述数据处理过程包括神经网络计算过程,所述多个数据块包括中间结果。
图4示出了根据本公开实施例的人工智能处理装置的框图。所述装置包括通用处理器50及人工智能处理器30,通用处理器50连接到人工智能处理器30。其中,通用处理器50可用于指定各个数据块的存储空间,人工智能处理器30可用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
在一种可能的实现方式中,通用处理器50可以是主处理器,例如中央处理单元CPU、图形处理单元GPU等。本公开对通用处理器的具体类型不作限制。
在一种可能的实现方式中,人工智能处理器30可以是用于执行人工智能运算的人工智能处理器(IPU)。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(DigitalSignal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable GateArray,FPGA)芯片中的一种或组合。本公开对人工智能处理器的具体类型不作限制。
在一种可能的实施方式中,人工智能处理装置可以是由不同的处理器形成的(例如IPU+CPU);也可以是由多个相同的处理器形成的,例如多个处理器(XPU)形成类似于通用处理器50及人工智能处理器30的架构。其中,处理器的类型可以是现有的,也可以是新提出的新型处理器,本公开对此不作限制。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法包括:
根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列;
根据所述多个数据块的标识以及所述多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在所述数据执行序列中的初次出现位置及末次出现位置;
根据所述对应关系,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个;
在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间;
在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块;
其中,在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块分配对应的存储空间,包括以下任意一种:
在所述第二数据块的存储空间大于或等于所述第一数据块的尺寸且未被占用时,将所述第二数据块的存储空间指定为所述第一数据块的存储空间;
在所述第二数据块的存储空间被占用时,为所述第一数据块指定新的存储空间;
在所述第二数据块的存储空间小于所述第一数据块的尺寸时,为所述第一数据块指定新的存储空间;
在所述第二数据块的存储空间小于所述第一数据块的尺寸时,根据所述第一数据块的尺寸扩展所述第二数据块的存储空间,并将扩展后的存储空间指定为所述第一数据块的存储空间。
2.根据权利要求1所述的方法,其特征在于,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的数据块,包括:
在所述第一数据块的初次出现位置在所述第二数据块的末次出现位置之后时,判断所述第二数据块与所述第一数据块的使用周期不重叠。
3.根据权利要求1所述的方法,其特征在于,在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间,包括以下任意一种:
当存在不重叠的多个第二数据块时,将初次出现位置最前的第二数据块的存储空间指定为所述第一数据块的存储空间;
当存在不重叠的多个第二数据块时,将尺寸最大的第二数据块的存储空间指定为所述第一数据块的存储空间。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在第一数据块之前使用的数据块均与所述第一数据块的使用周期重叠时,为所述第一数据块分配新的存储空间。
5.根据权利要求1所述的方法,其特征在于,在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块,包括:
在数据处理过程中生成所述第一数据块时,将所述第一数据块存储到对应的存储空间。
6.根据权利要求1所述的方法,其特征在于,所述数据处理过程包括神经网络计算过程,所述多个数据块包括中间结果。
7.根据权利要求1-6中任意一项所述的方法,其特征在于,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,其中,通用处理器用于指定各个数据块的存储空间,人工智能处理器用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
8.一种数据处理装置,其特征在于,所述装置包括:
数据序列建立模块,用于根据预设的数据处理过程中待使用的多个数据块的使用顺序,建立所述多个数据块的数据执行序列;
周期确定模块,用于根据所述多个数据块的标识以及所述多个数据块在数据执行序列中的位置,分别确定各个数据块的标识与使用周期之间的对应关系,每个数据块的使用周期包括该数据块在所述数据执行序列中的初次出现位置及末次出现位置;
判断模块,用于根据所述对应关系,判断在第一数据块之前使用的数据块中是否存在与所述第一数据块的使用周期不重叠的第二数据块,所述第一数据块是所述多个数据块中的任意一个;
空间指定模块,用于在存在不重叠的第二数据块时,根据所述第二数据块的存储空间,为所述第一数据块指定对应的存储空间;
数据存储模块,用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块;
其中,所述空间指定模块包括以下任意一种:
第一空间指定子模块,用于在所述第二数据块的存储空间大于或等于所述第一数据块的尺寸且未被占用时,将所述第二数据块的存储空间指定为所述第一数据块的存储空间;
第二空间指定子模块,用于在所述第二数据块的存储空间被占用时,为所述第一数据块指定新的存储空间;
第三空间指定子模块,用于在所述第二数据块的存储空间小于所述第一数据块的尺寸时,为所述第一数据块指定新的存储空间;
第四空间指定子模块,用于在所述第二数据块的存储空间小于所述第一数据块的尺寸时,根据所述第一数据块的尺寸扩展所述第二数据块的存储空间,并将扩展后的存储空间指定为所述第一数据块的存储空间。
9.根据权利要求8所述的装置,其特征在于,所述判断模块包括:
判断子模块,用于在所述第一数据块的初次出现位置在所述第二数据块的末次出现位置之后时,判断所述第二数据块与所述第一数据块的使用周期不重叠。
10.根据权利要求8所述的装置,其特征在于,所述空间指定模块包括以下任意一种:
第五空间指定子模块,用于当存在不重叠的多个第二数据块时,将初次出现位置最前的第二数据块的存储空间指定为所述第一数据块的存储空间;
第六空间指定子模块,用于当存在不重叠的多个第二数据块时,将尺寸最大的第二数据块的存储空间指定为所述第一数据块的存储空间。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
空间分配模块,用于在第一数据块之前使用的数据块均与所述第一数据块的使用周期重叠时,为所述第一数据块分配新的存储空间。
12.根据权利要求8所述的装置,其特征在于,所述数据存储模块包括:
存储子模块,用于在数据处理过程中生成所述第一数据块时,将所述第一数据块存储到对应的存储空间。
13.根据权利要求8-12中任意一项所述的装置,其特征在于,所述数据处理过程包括神经网络计算过程,所述多个数据块包括中间结果。
14.一种人工智能处理装置,其特征在于,所述装置包括通用处理器和人工智能处理器,所述装置被配置为执行1-7中任意一项所述的数据处理方法,其中,通用处理器用于指定各个数据块的存储空间,人工智能处理器用于在数据处理过程中,根据各个数据块的存储空间的地址,分别存储各个数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910085443.8A CN111488116B (zh) | 2019-01-29 | 2019-01-29 | 运算方法、装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910085443.8A CN111488116B (zh) | 2019-01-29 | 2019-01-29 | 运算方法、装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488116A CN111488116A (zh) | 2020-08-04 |
CN111488116B true CN111488116B (zh) | 2022-11-22 |
Family
ID=71811553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910085443.8A Active CN111488116B (zh) | 2019-01-29 | 2019-01-29 | 运算方法、装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488116B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084037A (zh) * | 2020-09-23 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 神经网络的内存分配方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090848A (zh) * | 2014-07-16 | 2014-10-08 | 云南大学 | 一种周期性大数据处理的内存管理方法及装置 |
CN104714903A (zh) * | 2013-12-12 | 2015-06-17 | 联发科技(新加坡)私人有限公司 | 存储系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612718B2 (en) * | 2009-08-19 | 2013-12-17 | Seagate Technology Llc | Mapping alignment |
US8966171B2 (en) * | 2012-04-16 | 2015-02-24 | Renmin University Of China | Access optimization method for main memory database based on page-coloring |
-
2019
- 2019-01-29 CN CN201910085443.8A patent/CN111488116B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714903A (zh) * | 2013-12-12 | 2015-06-17 | 联发科技(新加坡)私人有限公司 | 存储系统 |
CN104090848A (zh) * | 2014-07-16 | 2014-10-08 | 云南大学 | 一种周期性大数据处理的内存管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
HTML5混合式移动社交应用中缓存管理机制的研究;仲媛等;《计算机科学》;20170215(第02期);全文 * |
空间信息共享平台中数据索引服务的研究;王勇等;《计算机应用研究》;20100115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111488116A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832839B (zh) | 执行卷积神经网络中的运算的方法和装置 | |
US20220035544A1 (en) | Memory allocation method and device, and electronic apparatus | |
CN111488205B (zh) | 面向异构硬件架构的调度方法和调度系统 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN109447253B (zh) | 显存分配的方法、装置、计算设备及计算机存储介质 | |
CN114008586A (zh) | 使用处理元件阵列的转置运算 | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
JP6993739B2 (ja) | 予めメモリを割り当てる方法及び装置、電子回路、電子機器並びに記憶媒体 | |
CN111142938A (zh) | 一种异构芯片的任务处理方法、任务处理装置及电子设备 | |
CN104793996A (zh) | 一种并行计算设备的任务调度方法及任务调度装置 | |
CN111488116B (zh) | 运算方法、装置及相关产品 | |
CN111782404A (zh) | 一种数据处理方法及相关设备 | |
CN110750517B (zh) | 一种本地存储引擎系统的数据处理方法、装置以及设备 | |
US9298769B1 (en) | Method and apparatus to facilitate discrete-device accelertaion of queries on structured data | |
CN111258950B (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
JP2024508202A (ja) | コンテンツ初期化方法、装置、電子機器、記憶媒体及びコンピュータプログラム | |
CN110333870B (zh) | Simulink模型变量分配的处理方法、装置及设备 | |
US11663465B2 (en) | Method of managing task performance in an artificial neural network, and system executing an artificial neural network | |
CN114201727A (zh) | 数据的处理方法、处理器、人工智能芯片及电子设备 | |
CN109684602B (zh) | 一种批处理方法和装置及计算机可读存储介质 | |
CN111258653B (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
CN106385385B (zh) | 资源分配方法及装置 | |
CN115374024A (zh) | 一种内存数据排序方法及相关设备 | |
CN106557368B (zh) | Spark程序优化方法和装置 | |
CN105808318B (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 |