CN113626081A - 数据处理方法及装置以及相关产品 - Google Patents
数据处理方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN113626081A CN113626081A CN202010383257.5A CN202010383257A CN113626081A CN 113626081 A CN113626081 A CN 113626081A CN 202010383257 A CN202010383257 A CN 202010383257A CN 113626081 A CN113626081 A CN 113626081A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- destination
- processing instruction
- instruction
- 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 14
- 238000012545 processing Methods 0.000 claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000013473 artificial intelligence Methods 0.000 claims description 44
- 238000013500 data storage Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000013528 artificial neural network Methods 0.000 abstract description 3
- 238000003062 neural network model Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
Abstract
本公开涉及一种数据处理方法及装置以及相关产品。所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,特别是涉及一种数据处理方法及装置以及相关产品。
背景技术
随着人工智能技术的发展,其在图像识别等领域取得了较好的效果。在图像识别过程中,可能需要对大量离散的数据点进行处理(例如进行差值运算等),然而,相关技术中对离散数据点的处理过程较为复杂,数据开销较大。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理方法及装置以及相关产品。
根据本公开的一方面,提供了一种数据处理方法,包括:在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
根据本公开的另一方面,提供了一种数据处理装置,包括:地址确定模块,用于在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;数据存储模块,用于将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括上述的数据处理装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括上述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,能够通过数据搬运指令将离散数据搬运到连续的数据地址,得到向量数据,以便进行向量运算等处理,从而简化处理过程,减小数据开销。
通过权要中的技术特征进行推导,能够达到对应背景技术中的技术问题的有益效果。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据处理方法的处理器的示意图。
图2示出根据本公开实施例的数据处理方法的流程图。
图3示出根据本公开实施例的数据处理装置的框图。
图4示出根据本公开实施例的板卡的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
根据本公开实施例的数据处理方法可应用于处理器中,该处理器可以是通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,本公开中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。
图1示出根据本公开实施例的数据处理方法的处理器的示意图。如图1所示,处理器100包括多个处理单元101以及存储单元102,多个处理单元101用于执行指令序列,存储单元102用于存储数据,可包括随机存储器(RAM,Random Access Memory)和寄存器堆。处理器100中的多个处理单元101既可共用部分存储空间,例如共用部分RAM存储空间和寄存器堆,又可同时拥有各自的存储空间。
图2示出根据本公开实施例的数据处理方法的流程图。如图2所示,该方法包括:
在步骤S11中:在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;
在步骤S12中:将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,
其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
根据本公开的实施例,能够通过数据搬运指令将离散数据搬运到连续的数据地址,得到向量数据,以便进行向量运算等处理,从而简化处理过程,减小数据开销。
在一种可能的实现方式中,所述方法还包括:对接收到的处理指令进行解码,得到解码后的处理指令。其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行数据搬运处理。
举例来说,当处理器接收到处理指令时,可对接收到的处理指令进行解码,得到解码后的处理指令。该解码后的处理指令包括操作码及操作域,操作码用于指示该处理指令的处理类型,操作域用于指示待处理的数据及数据参数。如果解码后的处理指令的操作码指示进行数据搬运处理,则该指令为数据搬运指令(Gather Load)。
在一种可能的实现方式中,如果解码后的处理指令为数据搬运指令,则可在步骤S11中确定与处理指令对应的数据的源数据地址以及目的数据地址。与处理指令对应的数据即处理指令的操作域所指示的离散的多个数据。源数据地址表示多个数据在数据存储空间中当前的数据存储地址,为离散的多个数据地址;目的数据地址表示多个数据将要被搬运到的数据存储空间的数据地址,为连续的数据地址。源数据地址所在的数据存储空间与目的数据地址所在的数据存储空间可以相同或不同,本公开对此不作限制。
在一种可能的实现方式中,在确定源数据地址以及目的数据地址后,处理器可在步骤S12中从源数据地址读取离散的多个数据,并将读取到的多个数据存储到目的数据地址中,得到预设长度的向量数据,从而完成数据搬运过程。
在一种可能的实现方式中,完成数据搬运后,可通过数据运算指令对向量数据进行进一步的处理,例如两个或两个以上的向量数据之间的四则运算,例如对两个向量数据进行差值运算等。
通过这种方式,可以在图像识别等应用场景中需要对大量离散的成对数据点进行运算的情况下,通过数据搬运指令将离散数据搬运到连续地址空间中聚合为向量数据再进行向量运算,从而将离散的数据点的运算转换为向量运算,简化处理过程,减小数据开销。
在一种可能的实现方式中,步骤S11可包括:根据所述处理指令的操作域中的多个数据的源数据基地址及数据偏移地址,分别确定所述多个数据的源数据地址。
举例来说,数据搬运指令可具有操作域,用于指示待搬运数据的数据参数。操作域中可包括源数据基地址(Source Data Base Address)、目的数据基地址(DestinationData Base Address)、单个数据点的尺寸(Single Point Data Size)、单个数据点的数量(Single Point Data Number)、单个数据点的数据偏移基地址(Offset Vector BaseAddress)以及偏移尺寸(Offset Size)等。
其中,源数据基地址可表示多个离散数据点当前在数据存储空间中的基地址;目的数据基地址可表示多个数据将要被搬运到的数据存储空间中的基地址;单个数据点的尺寸可表示每个离散数据点的数据尺寸(例如4位或8位);单个数据点的数量可表示离散数据点的数量N(N为大于1的整数);单个数据点的数据偏移基地址可分别表示各个离散数据点相对于源数据基地址偏移的基地址;偏移尺寸可表示各个离散数据点对应的偏移地址的宽度,例如等于单个数据点的尺寸。本公开对数据搬运指令的操作域中具体的参数数量及类型不作限制。
在一种可能的实现方式中,可根据操作域中的单个数据点的数据偏移基地址以及偏移尺寸,分别确定各个数据点的数据偏移地址(Offset Address),例如,对于第n个数据点(1≤n≤N),该数据点的数据偏移基地址为24,偏移尺寸为4,则该数据点的数据偏移地址Offset Address[n]为[24,27]。这样,根据源数据基地址及数据偏移地址,就可确定出该第n个数据点的源数据地址。
Single Point Src Addr[n] = Source Data Base Address + Offset Address[n] (1)
在公式(1)中,Single Point Src Addr[n]表示第n个数据点的源数据地址。在源数据基地址例如为Addr1[15],第n个数据点的数据偏移地址为[24,27]时,可确定出第n个数据点的源数据地址为Addr1[39,42]。
通过这种方式,可以分别确定各个数据的源数据地址,以便从源数据地址读取各个数据。
在一种可能的实现方式中,步骤S11可包括:根据所述处理指令的操作域中的多个数据的目的数据基地址及数据尺寸,确定所述多个数据的目的数据地址。
如前所述,数据搬运指令的操作域中可包括目的数据基地址(Destination DataBase Address)、单个数据点的尺寸(Single Point Data Size)等。由于目的数据地址为连续的数据地址,因此可直接根据数据点的数据尺寸以及各个数据的序号依次确定各个数据的目的数据地址。第n个数据点的目的数据地址可表示为:
Single Point Dest Addr[n]=Destination Data Base Address+n*SinglePoint Data Size(2)
在公式(2)中,Single Point Dest Addr[n]表示第n个数据点的目的数据地址。在目的数据基地址例如为Addr2[0,3],单个数据点的尺寸为4位,n为3时,可确定出第3个数据点的目的数据地址为Addr2[12,15]。
通过这种方式,可以分别确定各个数据的目的数据地址,以便将从源数据地址读取到的各个数据分别搬运到各个数据的目的数据地址。
在一种可能的实现方式中,步骤S12可包括:从所述多个数据中各个数据的源数据地址中分别读取各个数据;将各个数据依次存储到所述目的数据地址中,得到所述向量数据。
举例来说,在确定操作域中各个数据的源数据地址和目的数据地址后,可从各个数据的源数据地址中分别读取各个数据,并将各个数据依次存储到目的数据地址中。例如n为3时,从第3个数据点的源数据地址Addr1[39,42]中读取数据,并将其存储到目的数据地址Addr2[9,12],从而完成该数据点的数据搬运。这样,依次对各个数据点进行搬运,得到目的数据地址中存储的N个连续的数据点,实现了离散数据点聚合为向量数据的过程。
通过这种方式,可以实现数据搬运,为后续的处理提供数据基础。
根据本公开实施例的数据处理方法,能够通过数据搬运指令将离散数据搬运到连续地址空间中,聚合为向量数据,从而能够在图像识别等应用场景中需要对大量离散的成对数据点进行运算的情况下,将离散的数据点的运算转换为向量运算,简化处理过程,减小数据开销。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图3示出根据本公开实施例的数据处理装置的框图。如图3所示,所述装置包括:
地址确定模块31,用于在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;
数据存储模块32,用于将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,
其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
在一种可能的实现方式中,所述地址确定模块包括:
源地址确定子模块,用于根据所述处理指令的操作域中的多个数据的源数据基地址及数据偏移地址,分别确定所述多个数据的源数据地址。
在一种可能的实现方式中,所述地址确定模块包括:
目的地址确定子模块,用于根据所述处理指令的操作域中的多个数据的目的数据基地址及数据尺寸,确定所述多个数据的目的数据地址。
在一种可能的实现方式中,所述数据存储模块包括:
读取子模块,用于从所述多个数据中各个数据的源数据地址中分别读取各个数据;
存储子模块,用于将各个数据依次存储到所述目的数据地址中,得到所述向量数据。
在一种可能的实现方式中,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行数据搬运处理。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述数据处理装置。
在一种可能的实现方式中,还公开了一种电子设备,所述电子设备包括上述的人工智能芯片。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图4示出根据本公开实施例的板卡的结构框图,参阅图4,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1.一种数据处理方法,包括:
在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;
将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,
其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
A2.根据A1所述方法,在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的源数据基地址及数据偏移地址,分别确定所述多个数据的源数据地址。
A3.根据A1或A2所述方法,在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的目的数据基地址及数据尺寸,确定所述多个数据的目的数据地址。
A4.根据A1-A3中任意一项所述方法,将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,包括:
从所述多个数据中各个数据的源数据地址中分别读取各个数据;
将各个数据依次存储到所述目的数据地址中,得到所述向量数据。
A5.根据A1-A4中任意一项所述方法,所述方法还包括:
对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行数据搬运处理。
A6.一种数据处理装置,包括:
地址确定模块,用于在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;
数据存储模块,用于将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,
其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
A7.根据A6所述装置,所述地址确定模块包括:
源地址确定子模块,用于根据所述处理指令的操作域中的多个数据的源数据基地址及数据偏移地址,分别确定所述多个数据的源数据地址。
A8.根据A6或A7所述装置,所述地址确定模块包括:
目的地址确定子模块,用于根据所述处理指令的操作域中的多个数据的目的数据基地址及数据尺寸,确定所述多个数据的目的数据地址。
A9.根据A6-A8中任意一项所述装置,所述数据存储模块包括:
读取子模块,用于从所述多个数据中各个数据的源数据地址中分别读取各个数据;
存储子模块,用于将各个数据依次存储到所述目的数据地址中,得到所述向量数据。
A10.根据A6-A9中任意一项所述装置,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行数据搬运处理。
A11.一种人工智能芯片,所述芯片包括如A6-A10中任意一项所述的数据处理装置。
A12.一种电子设备,所述电子设备包括如A11所述的人工智能芯片。
A13.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如A11所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;
将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,
其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
2.根据权利要求1所述方法,其特征在于,在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的源数据基地址及数据偏移地址,分别确定所述多个数据的源数据地址。
3.根据权利要求1或2所述方法,其特征在于,在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的目的数据基地址及数据尺寸,确定所述多个数据的目的数据地址。
4.根据权利要求1-3中任意一项所述方法,其特征在于,将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,包括:
从所述多个数据中各个数据的源数据地址中分别读取各个数据;
将各个数据依次存储到所述目的数据地址中,得到所述向量数据。
5.根据权利要求1-4中任意一项所述方法,其特征在于,所述方法还包括:
对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行数据搬运处理。
6.一种数据处理装置,其特征在于,包括:
地址确定模块,用于在解码后的处理指令为数据搬运指令时,确定与所述处理指令对应的数据的源数据地址以及目的数据地址;
数据存储模块,用于将从所述源数据地址读取到的数据存储到所述目的数据地址,得到向量数据,
其中,所述源数据地址包括离散的多个数据地址,所述目的数据地址包括连续的数据地址。
7.根据权利要求6所述装置,其特征在于,所述地址确定模块包括:
源地址确定子模块,用于根据所述处理指令的操作域中的多个数据的源数据基地址及数据偏移地址,分别确定所述多个数据的源数据地址。
8.根据权利要求6或7所述装置,其特征在于,所述地址确定模块包括:
目的地址确定子模块,用于根据所述处理指令的操作域中的多个数据的目的数据基地址及数据尺寸,确定所述多个数据的目的数据地址。
9.根据权利要求6-8中任意一项所述装置,其特征在于,所述数据存储模块包括:
读取子模块,用于从所述多个数据中各个数据的源数据地址中分别读取各个数据;
存储子模块,用于将各个数据依次存储到所述目的数据地址中,得到所述向量数据。
10.根据权利要求6-9中任意一项所述装置,其特征在于,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行数据搬运处理。
11.一种人工智能芯片,其特征在于,所述芯片包括如权利要求6-10中任意一项所述的数据处理装置。
12.一种电子设备,其特征在于,所述电子设备包括如权利要求11所述的人工智能芯片。
13.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求11所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010383257.5A CN113626081A (zh) | 2020-05-08 | 2020-05-08 | 数据处理方法及装置以及相关产品 |
US17/619,765 US20240053988A1 (en) | 2020-05-08 | 2021-04-28 | Data processing method and device, and related product |
EP21800488.5A EP4148560A4 (en) | 2020-05-08 | 2021-04-28 | DATA PROCESSING METHOD AND DEVICE, AND ASSOCIATED PRODUCT |
PCT/CN2021/090621 WO2021223638A1 (zh) | 2020-05-08 | 2021-04-28 | 数据处理方法及装置以及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010383257.5A CN113626081A (zh) | 2020-05-08 | 2020-05-08 | 数据处理方法及装置以及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626081A true CN113626081A (zh) | 2021-11-09 |
Family
ID=78377287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010383257.5A Pending CN113626081A (zh) | 2020-05-08 | 2020-05-08 | 数据处理方法及装置以及相关产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240053988A1 (zh) |
EP (1) | EP4148560A4 (zh) |
CN (1) | CN113626081A (zh) |
WO (1) | WO2021223638A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706760B (zh) * | 2009-10-20 | 2013-07-31 | 龙芯中科技术有限公司 | 矩阵转置自动控制电路系统及矩阵转置方法 |
US8904153B2 (en) * | 2010-09-07 | 2014-12-02 | International Business Machines Corporation | Vector loads with multiple vector elements from a same cache line in a scattered load operation |
CN103095738B (zh) * | 2011-10-27 | 2016-02-03 | 中广核(北京)仿真技术有限公司 | 一种应用在核电站全范围模拟机中的数据打包和解包方法 |
CN103714007B (zh) * | 2012-09-29 | 2017-02-08 | 联想(北京)有限公司 | 一种写数据的方法及电子设备 |
US9244684B2 (en) * | 2013-03-15 | 2016-01-26 | Intel Corporation | Limited range vector memory access instructions, processors, methods, and systems |
US10853139B2 (en) * | 2018-10-19 | 2020-12-01 | EMC IP Holding Company LLC | Dynamic workload management based on predictive modeling and recommendation engine for storage systems |
CN107861685A (zh) * | 2017-06-20 | 2018-03-30 | 平安科技(深圳)有限公司 | 基于写时复制的虚拟磁盘写入方法及装置、存储介质 |
-
2020
- 2020-05-08 CN CN202010383257.5A patent/CN113626081A/zh active Pending
-
2021
- 2021-04-28 EP EP21800488.5A patent/EP4148560A4/en active Pending
- 2021-04-28 WO PCT/CN2021/090621 patent/WO2021223638A1/zh unknown
- 2021-04-28 US US17/619,765 patent/US20240053988A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021223638A1 (zh) | 2021-11-11 |
US20240053988A1 (en) | 2024-02-15 |
EP4148560A4 (en) | 2024-03-13 |
EP4148560A1 (en) | 2023-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647722B (zh) | 数据处理方法及装置以及相关产品 | |
CN112347186B (zh) | 数据同步方法及装置以及相关产品 | |
CN113626079A (zh) | 数据处理方法及装置以及相关产品 | |
CN111260043B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
CN113626081A (zh) | 数据处理方法及装置以及相关产品 | |
CN113626080B (zh) | 数据处理装置以及相关产品 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110659290B (zh) | 数据处理方法及装置以及相关产品 | |
CN113626082A (zh) | 数据处理方法及装置以及相关产品 | |
CN113626083B (zh) | 数据处理装置以及相关产品 | |
CN112306945B (zh) | 数据同步方法及装置以及相关产品 | |
CN113626076A (zh) | 数据处理方法及装置以及相关产品 | |
CN112306949B (zh) | 数据处理方法及装置以及相关产品 | |
CN111260042B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN112347027A (zh) | 数据同步方法及装置以及相关产品 | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112347026B (zh) | 数据同步方法及装置以及相关产品 | |
CN110618866A (zh) | 数据处理方法及装置以及相关产品 | |
CN111339060B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111275197B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353125B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113296736A (zh) | 基于随机数的数据处理方法、随机数生成方法及装置 | |
CN112347185A (zh) | 数据同步方法及装置以及相关产品 | |
CN115794026A (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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Request for anonymity Inventor before: Request for anonymity |