CN111782133A - 数据处理方法及装置以及相关产品 - Google Patents
数据处理方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN111782133A CN111782133A CN201910272411.9A CN201910272411A CN111782133A CN 111782133 A CN111782133 A CN 111782133A CN 201910272411 A CN201910272411 A CN 201910272411A CN 111782133 A CN111782133 A CN 111782133A
- Authority
- CN
- China
- Prior art keywords
- descriptor
- data
- content
- instruction
- processing 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 abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 266
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000013500 data storage Methods 0.000 claims description 71
- 238000013473 artificial intelligence Methods 0.000 claims description 40
- 238000012986 modification Methods 0.000 claims description 29
- 230000004048 modification Effects 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000013528 artificial neural network Methods 0.000 abstract 1
- 238000003062 neural network model Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 28
- 238000013507 mapping Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000630 rising 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本公开涉及一种数据处理方法及装置以及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法及装置以及相关产品。
背景技术
随着人工智能技术的不断发展,需要处理的数据量和数据维度都在不断增大。在相关技术中,处理器通常通过获取指令的参数来确定数据地址,然后根据数据地址完成数据的读取和使用。这就要求技术人员在设计参数时设定数据存取的相关参数(例如数据之间或数据维度之间的相互关系等),从而生成指令传递给处理器来完成数据的存取,该方式降低了处理器的处理效率。
发明内容
有鉴于此,本公开提出了一种数据处理技术方案。
根据本公开的一方面,提供了一种数据处理方法,包括:在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;根据所述描述符的内容,执行所述第一处理指令。
根据本公开的另一方面,提供了一种数据处理装置,包括:内容获取模块,用于在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;指令执行模块,用于根据所述描述符的内容,执行所述第一处理指令。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括如上所述的数据处理装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括如上所述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,通过引入指示张量形状的描述符,能够在解码的处理指令的操作数中包括描述符标识时确定对应的描述符内容,并根据描述符内容执行该处理指令,从而降低数据存取的复杂度,提高数据存取的效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据处理方法的流程图。
图2示出根据本公开实施例的数据处理装置的数据存储空间的示意图。
图3示出根据本公开实施例的数据处理装置的框图。
图4示出根据本公开实施例的板卡的结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的数据处理方法的流程图。如图1所示,该数据处理方法包括:
在步骤S11中,在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;
在步骤S12中,根据所述描述符的内容,执行所述第一处理指令。
根据本公开的实施例,通过引入指示张量形状的描述符,能够在解码的处理指令的操作数中包括描述符标识时确定对应的描述符内容,并根据描述符内容执行该处理指令,从而降低数据存取的复杂度,提高数据存取的效率。
举例来说,该数据处理方法可应用于处理器中,该处理器可包括通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)。本公开对处理器的类型不作限制。
在一种可能的实现方式中,待处理的数据可包括N维的张量数据(N为大于或等于零的整数,例如N=1、2或3),其中,张量可以包含多种形式的数据组成方式,张量可以是不同维度的,比如标量可以看作是0维张量,向量可以看作1维张量,而矩阵可以是2维或2维以上的张量。张量的形状包括张量的维度、张量各个维度的尺寸等信息。举例而言,对于张量:
该张量的形状可以被描述符描述为(2,4),也即通过两个参数表示该张量为二维张量,且该张量的第一维度(列)的尺寸为2、第二维度(行)的尺寸为4。需要说明的是,本申请对于描述符指示张量形状的方式并不做限定。在存储器中存储张量数据时,根据其数据地址(或存储区域)无法确定张量数据的形状,进而也无法确定多个张量数据之间相互关系等相关信息,导致处理器对张量数据的存取效率较低。
在该情况下,可引入描述符(张量描述符)来指示张量(N维的张量数据)的形状。其中,N的取值可根据张量数据的维数(阶数)来确定,也可以根据张量数据的使用需要进行设定。例如,在N的取值为3时,张量数据为三维的张量数据,描述符可用来指示该三维的张量数据在三个维度方向上的形状(例如偏移量、尺寸等)。应当理解,本领域技术人员可以根据实际需要对N的取值进行设置,本公开对此不作限制。
在一种可能的实现方式中,描述符可包括标识和内容等,描述符的标识可用于对描述符进行区分,例如为编号;描述符的内容可包括表示张量数据的形状的至少一个形状参数(例如张量的各个维度方向上的尺寸等),还可以包括表示张量数据的地址的至少一个地址参数(例如数据基准点的基准地址)。本公开对描述符的内容包括的具体参数不作限制。
通过采用描述符来指示张量数据的方式,能够表达张量数据的形状,进而也能够确定多个张量数据之间的相互关系等相关信息,提高对张量数据的存取效率。
在一种可能的实现方式中,在接收到处理指令时,可先对处理指令进行解码(译码)。其中,所述方法还包括:对接收到的第一处理指令进行解码处理,得到解码后的第一处理指令,
其中,解码后的第一处理指令包括操作码以及一个或多个操作数,所述操作码用于指示与所述第一处理指令对应的处理类型。
在该情况下,第一处理指令经解码后,可得到解码后的第一处理指令(微指令)。其中,第一处理指令可包括数据存取指令、运算指令、描述符管理指令以及同步指令等。本公开对第一处理指令的具体类型及解码的具体方式不作限制。
该解码后的第一处理指令可包括操作码以及一个或多个操作数,操作码用于指示与第一处理指令对应的处理类型,操作数用于指示待处理的数据。例如,该指令可表示为:Add;A;B,Add为操作码,A和B为操作数,该指令用于对A和B相加。本公开对解码后的指令的操作数的数量以及指令的表示形式不作限制。
在一种可能的实现方式中,如果解码后的第一处理指令的操作数包括描述符的标识,则可通过该描述符的标识确定与描述符对应的描述符存储空间,并从描述符存储空间获取描述符的内容(包括表征张量数据的形状、地址等信息);然后,可根据描述符的内容执行第一处理指令。
在一种可能的实现方式中,步骤S12可包括:
根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;
根据所述数据地址,执行与所述第一处理指令对应的数据处理。
举例来说,根据描述符的内容,可计算第一处理指令中包括描述符标识的操作数对应的数据在数据存储空间中的数据地址,进而可以根据该数据地址执行对应的处理。例如,对于指令Add;A;B,如果操作数A和B中分别包括描述符的标识TR1和TR2,则处理器可根据描述符的标识TR1和TR2分别确定与TR1和TR2对应的描述符存储空间,并读取描述符存储空间中的内容(例如形状参数和地址参数);根据描述符的内容,可计算数据A和B的数据地址,例如A在内存中的数据地址1为ADDR64-ADDR127,B在内存中的数据地址2为ADDR1023-ADDR1087。然后,处理器可从地址1和地址2中分别读取数据,执行加法(Add)运算,得到运算结果(A+B)。
在一种可能的实现方式中,根据本公开实施例的方法可通过相关技术的硬件结构实现。在该情况下,应用该方法的处理器可包括控制单元及执行单元,控制单元用于进行控制,例如读取存储器或外部传入的指令,对指令进行解码(译码),向相应的部件发出微操作控制信号等。执行单元用于执行具体的指令,执行单元可以例如为算术逻辑单元(arithmetic and logic unit,ALU)、内存存取单元(memory access unit,MAU)、人工智能运算单元(neural functional unit,NFU)等。本公开对执行单元的具体硬件类型不作限制。
在一种可能的实现方式中,可通过控制单元对指令进行解码,得到解码后的第一处理指令;如果解码后的第一处理指令的操作数包括描述符的标识,则控制单元可确定与描述符对应的描述符存储空间,并从描述符存储空间获取描述符的内容(形状、地址等信息);然后,控制单元可将描述符的内容及第一处理指令发送到执行单元,以使执行单元根据描述符的内容执行第一处理指令。执行单元在接收到描述符的内容及第一处理指令时,可以根据描述符的内容,计算第一处理指令中包括描述符标识的操作数对应的数据在数据存储空间中的数据地址,进而可以根据该数据地址执行对应的处理。
例如,对于指令Add;A;B,如果操作数A和B中分别包括描述符的标识TR1和TR2,则控制单元可确定与TR1和TR2对应的描述符存储空间,读取描述符存储空间中的内容(例如形状参数和地址参数)并将其发送给执行单元。执行单元在接收到描述符的内容后,可以计算数据A和B的数据地址,例如A在内存中的地址1为ADDR64-ADDR127,B在内存中的地址2为ADDR1023-ADDR1087。然后,执行单元可从地址1和地址2中分别读取数据,执行加法(Add)运算,得到运算结果(A+B)。
在一种可能的实现方式中,可以通过对相关技术的硬件结构进行改进,以实现根据本公开实施例的方法。例如,可以在控制单元中设置有张量控制模块,以实现与描述符相关联的操作,例如描述符的注册、修改及注销;对描述符内容的读写等。张量控制模块可例如为张量接口单元(Tensor interface Unit,TIU),本公开对张量控制模块的具体硬件类型不作限制。通过这种方式,可以通过专用的硬件实现与描述符相关联的操作,进一步提高了张量数据的存取效率。
在该情况下,如果控制单元解码后的第一处理指令的操作数包括描述符的标识,则可以通过张量控制模块确定与描述符对应的描述符存储空间;确定描述符存储空间后,可从描述符存储空间获取描述符的内容(形状、地址等信息)。然后,控制单元可将描述符的内容及第一处理指令发送到执行单元,以使执行单元根据描述符的内容执行第一处理指令。
在一种可能的实现方式中,张量控制模块还可以实现与描述符相关联的操作以及指令的执行,例如描述符的注册、修改及注销;对描述符内容的读写;数据地址的计算以及数据存取指令的执行等。在该情况下,如果控制单元解码后的第一处理指令的操作数包括描述符的标识,则可以通过张量控制模块确定与描述符对应的描述符存储空间;确定描述符存储空间后,可从描述符存储空间获取描述符的内容;根据描述符的内容,通过张量控制模块确定与第一处理指令的操作数对应的数据在数据存储空间中的数据地址;根据数据地址,通过张量控制模块执行与所述第一处理指令对应的数据处理。
本公开对实现本公开实施例的方法所采用的具体硬件结构不作限制。
通过这种方式,可以从描述符存储空间获取描述符内容,进而获取数据地址,无需在每次存取时通过指令传入地址,从而提高了处理器的数据存取效率。
在一种可能的实现方式中,描述符的标识和内容可存储在描述符存储空间中,该描述符存储空间可以为控制单元的内部存储器(例如寄存器、片上的SRAM或其他介质缓存等)中的存储空间。描述符所指示的张量数据的数据存储空间可为控制单元的内部存储器(例如片上缓存)或与控制单元连接的外部存储器(片下存储器)中的存储空间。数据存储空间中的数据地址可以为实际的物理地址或虚拟地址。本公开对描述符存储空间及数据存储空间的位置以及数据地址的类型不作限制。
在一种可能的实现方式中,描述符的标识、内容以及描述符所指示的张量数据可以位于同一块区域,例如,可使用片上缓存的一块连续区域存储描述符的相关内容,其地址为ADDR0-ADDR1023,其中,地址ADDR0-ADDR31可用于存储描述符的标识,地址ADDR32-ADDR63可用于存储描述符的内容,地址ADDR64-ADDR1023可用于存储描述符指示的张量数据。其中,地址ADDR并不限于1位或一个字节,此处用来表示一个地址,是一个地址单位。本领域技术人员可以实际情况确定存储区域及其地址,本公开对此不作限制。
在一种可能的实现方式中,描述符的标识、内容以及描述符所指示的张量数据可以分开存储在内部存储器的不同区域,例如,例如,可以将寄存器作为描述符存储空间,在寄存器中存储描述符的标识及内容,将片上缓存作为数据存储空间,存储描述符所指示的张量数据。
在一种可能的实现方式中,还可以设置专门供描述符使用的专用寄存器(SR),描述符中的数据可以是立即数也可以从专用寄存器中获取。在使用寄存器存储描述符的标识和内容时,可以使用寄存器的编号来表示描述符的标识,例如,寄存器的编号为0时,其存储的描述符的标识为0。当寄存器中的描述符有效时,可根据描述符所指示的张量数据的大小在缓存空间中分配一块区域(例如在缓存中为每个张量数据创建一个张量缓存单元)用于存储该张量数据。应当理解,也可以采用预设的缓存空间存储该张量数据,本公开对此不作限制。
在一种可能的实现方式中,描述符的标识及内容可存储在内部存储器,描述符所指示的张量数据可存储在外部存储器。例如,可以采用在片上存储描述符的标识及内容、在片下存储描述符所指示的张量数据的方式。
在一种可能的实现方式中,与描述符对应的数据存储空间的数据地址可以是固定地址。例如,可以为张量数据划分单独的数据存储空间,每个张量数据在数据存储空间的起始地址与描述符的标识一一对应。在这种情况下,执行单元根据描述符的内容即可确定与操作数对应数据的数据地址,然后执行第一处理指令。
在一种可能的实现方式中,在与描述符的标识对应的数据存储空间的数据地址为可变地址时,所述描述符还可用于指示N维的张量数据的地址,其中,所述描述符的内容还可包括表示张量数据的地址的至少一个地址参数。例如,张量数据为3维数据,在描述符指向该张量数据的地址时,描述符的内容可包括表示该张量数据的地址的一个地址参数,例如张量数据的起始地址,也可以包括该张量数据的地址的多个地址参数,例如张量数据的起始地址+地址偏移量,或张量数据基于各维度的地址参数。本领域技术人员可以根据实际需要对地址参数进行设置,本公开对此不作限制。
在一种可能的实现方式中,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址。其中,基准地址可根据数据基准点的变化而不同。本公开对数据基准点的选取不作限制。
在一种可能的实现方式中,所述基准地址可包括所述数据存储空间的起始地址。在描述符的数据基准点是数据存储空间的第一个数据块时,描述符的基准地址即为数据存储空间的起始地址。在描述符的数据基准点是数据存储空间中第一个数据块以外的其他数据时,描述符的基准地址即为该数据块在数据存储空间中的物理地址。
在一种可能的实现方式中,所述张量数据的形状参数包括以下至少一种:所述张量数据的数据存储空间在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。其中,数据描述位置是描述符所指示的张量数据中的点或区域的映射位置,例如,张量数据为3维数据时,描述符可使用三维空间坐标(x,y,z)来表示该张量数据的形状,该张量数据的数据描述位置可以是使用三维空间坐标(x,y,z)表示的、该张量数据映射在三维空间中的点或区域的位置。
应当理解,本领域技术人员可以根据实际情况选择表示张量数据的形状参数,本公开对此不作限制。
图2示出根据本公开一实施例的数据处理方法的数据存储空间的示意图。如图2所示,数据存储空间21采用行优先的方式存储了一个二维数据,可通过(x,y)来表示(其中,X轴水平向右,Y轴垂直向下),X轴方向上的尺寸(每行的尺寸)为ori_x(图中未示出),Y轴方向上的尺寸(总行数)为ori_y(图中未示出),数据存储空间21的起始地址PA_start(基准地址)为第一个数据块22的物理地址。数据块23是数据存储空间21中的部分数据,其在X轴方向上的偏移量25表示为offset_x,在Y轴方向上的偏移量24表示为offset_y,在X轴方向上的尺寸表示为size_x,在Y轴方向上的尺寸表示为size_y。
在一种可能的实现方式中,使用描述符来定义数据块23时,描述符的数据基准点可使用数据存储空间21的第一个数据块,描述符的基准地址为数据存储空间21的起始地址PA_start,然后可以结合数据存储空间21在X轴的尺寸ori_x、在Y轴上的尺寸ori_y,以及数据块23在Y轴方向的偏移量offset_y、X轴方向上的偏移量offset_x、X轴方向上的尺寸size_x以及Y轴方向上的尺寸size_y来确定数据块23的描述符的内容。
在一种可能的实现方式中,可以使用下述公式(1)来表示描述符的内容:
应当理解,虽然上述示例中,描述符描述的是二维空间,但本领域技术人员可以根据实际情况对描述符的内容表示的维度进行设置,本公开对此不作限制。
在一种可能的实现方式中,可根据所述描述符的数据基准点在所述数据存储空间中的基准地址、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置,确定所述张量数据的描述符的内容。
举例来说,可以使用描述符的数据基准点在数据存储空间中的基准地址PA_base,以及对角位置的两个顶点相对于数据基准点的位置,确定出图2中数据块23的描述符的内容。首先,确定描述符的数据基准点以及其在数据存储空间中的基准地址PA_base,例如,可以在数据存储空间21中选取一个数据(例如,位置为(2,2)的数据)作为数据基准点,将该数据在数据存储空间中的物理地址作为基准地址PA_base;然后,确定数据块23的对角位置的至少两个顶点相对于数据基准点的位置,例如,使用左上至右下方向的对角位置顶点相对于数据基准点的位置,其中,左上角顶点的相对位置为(x_min,y_min),右下角顶点的相对位置为(x_max,y_max),然后可以根据基准地址PA_base、左上角顶点的相对位置(x_min,y_min)以及右下角顶点的相对位置(x_max,y_max)确定出数据块23的描述符的内容。
在一种可能的实现方式中,可以使用下述公式(2)来表示描述符的内容:
应当理解,虽然上述示例中使用左上角和右下角两个顶点来确定描述符的内容,但本领域技术人员可以根据实际需要对至少两个顶点的具体顶点进行设置,本公开对此不作限制。
在一种可能的实现方式中,可根据所述描述符的数据基准点在所述数据存储空间中的基准地址,以及所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系,确定所述张量数据的描述符的内容。其中,数据描述位置与数据地址之间的映射关系可以根据实际需要进行设定,例如,描述符所指示的张量数据为三维空间数据时,可是使用函数f(x,y,z)来定义数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,可以使用下述公式(3)来表示描述符的内容:
应当理解,本领域技术人员可以根据实际情况对数据描述位置与数据地址之间的映射关系进行设定,本公开对此不作限制。
在采用公式(1)表示描述符的内容的情况下,对于张量数据中的任意一个数据点,设其数据描述位置为(xq,yq),那么,该数据点在数据存储空间中的数据地址PA2(x,y)可以使用下述公式(4)来确定:
PA2(x,y)=PA_start+(offset_y+yq-1)*ori_x+(offset_x+xq) (4)
通过这种方式,执行单元可以根据描述符的内容计算出描述符所指示的张量数据在数据存储空间中的数据地址,进而根据该地址执行与处理指令对应的处理。
在一种可能的实现方式中,可以通过描述符的管理指令来实现描述符的注册、修改及注销等管理,并为这些管理指令设定相应的操作码。例如可通过描述符注册指令(TRCreat)来注册(创建)描述符;通过描述符修改指令来修改描述符的各个参数(形状、地址等);通过描述符注销指令(TRRelease)来注销(删除)描述符等。本公开对描述符的管理指令的种类及操作码的具体设定不作限制。
在一种可能的实现方式中,所述方法还包括:
在所述第一处理指令为描述符注册指令时,获取所述第一处理指令中描述符的注册参数,所述注册参数包括所述描述符的标识、张量形状以及描述符所指示的张量数据的内容中的至少一种;
根据所述描述符的注册参数,确定所述描述符的内容在描述符存储空间中的第一存储区域,以及所述描述符所指示的张量数据的内容在数据存储空间中的第二存储区域;
根据所述描述符的注册参数以及所述第二存储区域,确定所述描述符的内容,以建立所述描述符与所述第二存储区域之间的对应关系;
将所述描述符的内容存储到所述第一存储区域。
举例来说,描述符注册指令可用于注册描述符,该指令中可包括描述符的注册参数。该注册参数可包括描述符的标识(ID)、张量形状以及描述符所指示的张量数据的内容中的至少一种。例如,该注册参数可包括标识为TR0、张量形状(维度数量、各维度的尺寸、偏移量、起始数据地址等)。本公开对注册参数的具体内容不作限制。
在一种可能的实现方式中,当根据解码后的第一处理指令的操作码确定该指令为描述符注册指令时,根据第一处理指令中的注册参数,可创建相应的描述符。其中,可通过控制单元或通过张量控制模块创建相应的描述符,本公开对此不作限制。
在一种可能的实现方式中,可以先确定描述符的内容在描述符存储空间中的第一存储区域,以及所述描述符所指示的张量数据的内容在数据存储空间中的第二存储区域。
举例来说,如果已经预先设定了存储区域中的至少一个,则可以直接确定第一存储区域和/或第二存储区域。例如预设了描述符内容和张量数据内容存储于同一存储空间,并且描述符的标识TR0对应的描述符的内容的存储地址为ADDR32-ADDR63,张量数据的内容的存储地址为ADDR64-ADDR1023,则可以直接确定这两个地址为第一存储区域和第二存储区域。
在一种可能的实现方式中,如果没有预设的存储区域,则可以为描述符内容在描述符存储空间中分配第一存储区域,并为张量数据内容在数据存储空间中分配第二存储区域。其中,可通过控制单元或通过张量控制模块分配存储区域,本公开对此不作限制。
在一种可能的实现方式中,根据注册参数中的张量形状以及所述第二存储区域的数据地址,可以建立张量形状与地址之间的对应关系,进而确定描述符内容,从而能够在数据处理时根据描述符内容确定对应的数据地址。在确定描述符内容后,可将其存入第一存储区域中,完成描述符的注册过程。
例如,对于如图2所示的张量数据23,注册参数可以包括数据存储空间21的起始地址PA_start(基准地址)、在X轴方向上的偏移量25(表示为offset_x),在Y轴方向上的偏移量24(表示为offset_y),在X轴方向上的尺寸(表示为size_x),在Y轴方向上的尺寸(表示为size_y)。通过这些参数,可以将描述符的内容表示为公式(1),并将其存储到第一存储区域中,从而完成描述符的注册过程。
通过这种方式,可以根据描述符注册指令自动创建描述符,实现描述符所指示的张量与数据地址之间的对应,从而在数据处理时通过描述符内容获取数据地址,提高处理器的数据存取效率。
在一种可能的实现方式中,所述方法还包括:
在所述第一处理指令为描述符注销指令时,获取所述第一处理指令中描述符的标识;
根据所述描述符的标识,分别释放所述描述符在描述符存储空间中的存储区域以及所述描述符所指示的张量数据的内容在数据存储空间中的存储区域。
举例来说,描述符注销指令可用于注销(删除)描述符,以便释放描述符所占用的空间。该指令中可至少包括描述符的标识。
在一种可能的实现方式中,当根据解码后的第一处理指令的操作码确定该指令为描述符注销指令时,根据第一处理指令中的描述符标识,可注销相应的描述符。可通过控制单元或通过张量控制模块注销相应的描述符,本公开对此不作限制。
在一种可能的实现方式中,根据描述符的标识,可释放该描述符在描述符存储空间中的存储区域,和/或描述符所指示的张量数据的内容在数据存储空间中的存储区域,从而解除该描述符对各存储区域的占用。
通过这种方式,可以在描述符使用结束后释放描述符所占用的空间,重复利用有限的存储资源,提高了资源的利用效率。
在一种可能的实现方式中,所述方法还包括:
在所述第一处理指令为描述符修改指令时,获取所述第一处理指令中描述符的修改参数,所述修改参数包括所述描述符的标识、待修改的张量形状以及描述符所指示的张量数据的内容中的至少一种;
根据所述描述符的修改参数,确定所述描述符的待更新内容;
根据待更新内容,更新所述描述符存储空间中的所述描述符的内容和/或数据存储空间中张量数据的内容。
举例来说,描述符修改指令可用于修改描述符的各种参数,例如标识、张量形状等。该指令中可包括修改参数,该修改参数包括所述描述符的标识、待修改的张量形状以及描述符所指示的张量数据的内容中的至少一种。本公开对修改参数的具体内容不作限制。
在一种可能的实现方式中,当根据解码后的第一处理指令的操作码确定该指令为描述符修改指令时,根据第一处理指令中的修改参数,可确定描述符的待更新内容,例如将张量的维度由3维改为2维,更改张量在一个或多个维度方向上的尺寸等。
在一种可能的实现方式中,在确定待更新内容后,可更新描述符存储空间中的描述符内容和/或数据存储空间中张量数据的内容,以便修改张量数据并使得更新后的描述符内容能够指示修改后的张量数据的形状。本公开对待更新内容的范围及具体更新方式不作限制。
通过这种方式,可以在描述符所指示的张量数据发生改变时,直接修改描述符,以保持描述符与张量数据之间的对应,提高资源的利用效率。
在一种可能的实现方式中,所述方法还包括:
根据所述描述符的标识,确定是否存在未完成处理的第二处理指令,所述第二处理指令包括指令队列中在所述第一处理指令之前的,且操作数中具有所述描述符的标识的处理指令;
在存在未完成处理的第二处理指令时,阻塞或缓存所述第一处理指令。
举例来说,在设定描述符后,可以根据描述符进行指令之间的依赖关系的判断。如果解码后的第一处理指令的操作数包括描述符的标识,则可确定该第一处理指令的前序指令中是否存在与该第一处理指令具有依赖关系的指令。
在该情况下,对于指令队列中的在第一处理指令之前的指令(前序指令),如果前序指令的操作数中具有所述描述符的标识,则可认为该前序指令是与该第一处理指令具有依赖关系的第二处理指令。在第一处理指令的操作数中具有多个描述符的标识的情况下,可分别判断对应于每个描述符的依赖关系,也就是说,将操作数中具有多个描述符中的至少一个描述符的标识的前序指令作为具有依赖关系的第二处理指令。可在控制单元中设置依赖关系判断模块以便判断处理指令之间的依赖关系,本公开对此不作限制。
在一种可能的实现方式中,如果存在未完成处理的第二处理指令,则第一处理指令需在第二处理指令完成之后再执行。例如,如果第一处理指令为针对描述符TR0的运算指令,第二处理指令为对描述符TR0的写指令,则第二处理指令与第一处理指令之间具有依赖关系。在该第二处理指令执行期间,不能执行第一处理指令。再例如,如果第二处理指令包括针对第一处理指令的同步指令(sync),则第二处理指令与第一处理指令之间具有依赖关系,需要在该第二处理指令执行完成后,再执行第一处理指令。
在一种可能的实现方式中,如果存在未完成处理的第二处理指令,则可以阻塞第一处理指令,也即暂停第一处理指令及之后的其他指令的执行,直到第二处理指令执行完成后,再执行第一处理指令及之后的其他指令。
在一种可能的实现方式中,如果存在未完成处理的第二处理指令,则可以缓存第一处理指令,也即将第一处理指令存储到预设的缓存空间,而不影响其他指令的执行。在第二处理指令执行完成后,再执行缓存空间中的第一处理指令。本公开对存在未完成处理的第二处理指令时对第一处理指令的处理方式不作限制。
通过这种方式,可以确定由指令之间的类型产生的依赖关系以及由同步指令产生的依赖关系,并在具有依赖关系的前序指令未完成处理时阻塞或缓存第一处理指令,从而保证指令的执行顺序,确保数据处理的正确性。
在一种可能的实现方式中,所述方法还包括:
根据所述描述符的标识,确定所述描述符当前的状态,所述描述符的状态包括可操作状态或不可操作状态;
在所述描述符当前处于不可操作状态时,阻塞或缓存所述第一处理指令。
举例来说,可以设置描述符的状态的对应表(例如,在张量控制模块中存放描述符的状态的对应表),从而显示描述符当前的状态,描述符的状态包括可操作状态或不可操作状态。
在一种可能的实现方式中,在第一处理指令的前序指令当前正在对描述符进行操作(例如写入或读取)的情况下,可将描述符的当前状态设置为不可操作状态。在该状态下,无法执行第一处理指令,可阻塞或缓存第一处理指令。反之,在当前没有对描述符进行操作的前序指令的情况下,可将描述符的当前状态设置为可操作状态。在该状态下,能够执行第一处理指令。
在一种可能的实现方式中,在描述符内容存储在寄存器TR(张量寄存器,TensorRegister)中时,描述符的状态对应表中还可以存放TR的使用情况,从而确定TR被占用还是被释放,实现有限的寄存器资源的管理。
通过这种方式,可根据描述符的状态判断指令之间的依赖关系,从而保证指令的执行顺序,确保数据处理的正确性。
在一种可能的实现方式中,所述第一处理指令包括数据存取指令,所述操作数包括源数据和目的数据,
其中,步骤S11包括:在所述源数据和所述目的数据中的至少一个包括描述符的标识时,从所述描述符存储空间获取所述描述符的内容;
其中,步骤S12包括:根据所述描述符的内容,分别确定所述源数据的第一数据地址和/或所述目的数据的第二数据地址;从所述第一数据地址读取数据并写入到所述第二数据地址。
举例来说,数据存取指令的操作数包括源数据和目的数据,用于从源数据的数据地址读取数据并写入到目的数据的数据地址。在第一处理指令为数据存取指令时,可通过描述符来实现张量数据的存取。在数据存取指令的源数据和目的数据中的至少一个包括描述符的标识时,可确定描述符的描述符存储空间。
在一种可能的实现方式中,如果源数据包括第一描述符的标识,且目的数据包括第二描述符的标识,则可分别确定第一描述符的第一描述符存储空间和第二描述符的第二描述符存储空间;然后从第一描述符存储空间和第二描述符存储空间分别读取第一描述符的内容和第二描述符的内容;根据第一描述符和第二描述符的内容,可分别计算源数据的第一数据地址和目的数据的第二数据地址;从第一数据地址读取数据并写入到第二数据地址,从而完成整个存取过程。
例如,源数据可以是片下的待读取数据,其第一描述符的标识为1,目的数据是片上的一块存储空间,其第二描述符的标识为2。可根据源数据中第一描述符的标识1以及目的数据中第二描述符的标识2,从描述符存储空间分别获取第一描述符的内容D1和第二描述符的内容D2。其中,第一描述符的内容D1和第二描述符的内容可分别表示如下:
根据第一描述符的内容D1和第一描述符的内容D2,可分别获取源数据的起始物理地址PA3和目的数据的起始物理地址PA4,分别表示如下:
PA3=PA_start1+(offset_y1-1)*ori_x1+offset_x1
PA4=PA_start2+(offset_y2-1)*ori_x2+offset_x2
根据源数据的起始物理地址PA3和目的数据的起始物理地址PA4,以及第一描述符的内容D1和第二描述符的内容D2,可分别确定第一数据地址和第二数据地址,并从第一数据地址读取数据并写入第二数据地址(可通过IO通路),从而完成将D1所指示的张量数据载入到D2所指示的存储空间。
在一种可能的实现方式中,如果仅有源数据包括第一描述符的标识,则可确定第一描述符的第一描述符存储空间;然后从第一描述符存储空间读取第一描述符的内容;根据第一描述符的内容,可计算源数据的第一数据地址;根据指令的操作数中目的数据的第二数据地址,可从第一数据地址读取数据并写入到第二数据地址,从而完成整个存取过程。
在一种可能的实现方式中,如果仅有目的数据包括第二描述符的标识,则可确定第二描述符的第二描述符存储空间;然后从第二描述符存储空间读取第二描述符的内容;根据第二描述符的内容后,可计算目的数据的第二数据地址;根据指令的操作数中源数据的第一数据地址,可从第一数据地址读取数据并写入到第二数据地址,从而完成整个存取过程。
通过这种方式,可使用描述符完成数据的存取,无需在每次存取时通过指令传入数据地址,从而提高数据存取效率。
在一种可能的实现方式中,所述第一处理指令包括运算指令,步骤S12包括:
根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;
根据所述数据地址,执行与所述第一处理指令对应的运算。
举例来说,在第一处理指令为运算指令时,可通过描述符来实现张量数据的运算。在运算指令的操作数中包括描述符的标识时,可确定描述符的描述符存储空间,然后从描述符存储空间读取描述符的内容;根据描述符的内容后,可计算操作数对应的数据的地址,进而从数据地址读取数据进行运算,从而完成整个运算过程。通过这种方式,可在运算时使用描述符完成数据的读取,无需通过指令传入数据地址,从而提高数据运算效率。
根据本公开实施例的数据处理方法,引入了能够指示张量形状的描述符,使得数据处理指令运行过程中能够通过描述符来确定数据的地址,从硬件方面简化了指令生成方式,从而降低数据存取的复杂度,并且提高处理器存取数据的效率。
图3示出根据本公开实施例的数据处理装置的框图。如图3所示,本公开还提供了一种数据处理装置,包括:
内容获取模块31,用于在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;指令执行模块32,用于根据所述描述符的内容,执行所述第一处理指令。
在一种可能的实现方式中,所述指令执行模块包括:地址确定子模块,用于根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;数据处理子模块,用于根据所述数据地址,执行与所述第一处理指令对应的数据处理。
在一种可能的实现方式中,所述装置还包括:第一参数获取模块,用于在所述第一处理指令为描述符注册指令时,获取所述第一处理指令中描述符的注册参数,所述注册参数包括所述描述符的标识、张量形状以及描述符所指示的张量数据的内容中的至少一种;区域确定模块,用于根据所述描述符的注册参数,确定所述描述符的内容在描述符存储空间中的第一存储区域,以及所述描述符所指示的张量数据的内容在数据存储空间中的第二存储区域;内容确定模块,用于根据所述描述符的注册参数以及所述第二存储区域,确定所述描述符的内容,以建立所述描述符与所述第二存储区域之间的对应关系;内容存储模块,用于将所述描述符的内容存储到所述第一存储区域。
在一种可能的实现方式中,所述装置还包括:标识获取模块,用于在所述第一处理指令为描述符注销指令时,获取所述第一处理指令中描述符的标识;空间释放模块,用于根据所述描述符的标识,分别释放所述描述符在描述符存储空间中的存储区域以及所述描述符所指示的张量数据的内容在数据存储空间中的存储区域。
在一种可能的实现方式中,所述装置还包括:第二参数获取模块,用于在所述第一处理指令为描述符修改指令时,获取所述第一处理指令中描述符的修改参数,所述修改参数包括所述描述符的标识、待修改的张量形状以及描述符所指示的张量数据的内容中的至少一种;更新内容确定模块,用于根据所述描述符的修改参数,确定所述描述符的待更新内容;内容更新模块,用于根据待更新内容,更新描述符存储空间中的所述描述符的内容和/或数据存储空间中张量数据的内容。
在一种可能的实现方式中,所述装置还包括:指令确定模块,用于根据所述描述符的标识,确定是否存在未完成处理的第二处理指令,所述第二处理指令包括指令队列中在所述第一处理指令之前的,且操作数中具有所述描述符的标识的处理指令;第一指令缓存模块,用于在存在未完成处理的第二处理指令时,阻塞或缓存所述第一处理指令。
在一种可能的实现方式中,所述装置还包括:状态确定模块,用于根据所述描述符的标识,确定所述描述符当前的状态,所述描述符的状态包括可操作状态或不可操作状态;第二指令缓存模块,用于在所述描述符当前处于不可操作状态时,阻塞或缓存所述第一处理指令。
在一种可能的实现方式中,所述第一处理指令包括数据存取指令,所述操作数包括源数据和目的数据,其中,所述内容获取模块包括:内容获取子模块,用于在所述源数据和所述目的数据中的至少一个包括描述符的标识时,从描述符存储空间获取所述描述符的内容;其中,所述指令执行模块包括:第一地址确定子模块,用于根据所述描述符的内容,分别确定所述源数据的第一数据地址和/或所述目的数据的第二数据地址;存取子模块,用于从所述第一数据地址读取数据并写入到所述第二数据地址。
在一种可能的实现方式中,所述第一处理指令包括运算指令,其中,所述指令执行模块包括:第二地址确定子模块,用于根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;运算子模块,用于根据所述数据地址,执行与所述第一处理指令对应的运算。
在一种可能的实现方式中,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
在一种可能的实现方式中,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
在一种可能的实现方式中,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址;其中,所述张量数据的形状参数包括以下至少一种:所述数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,所述装置还包括:解码模块,用于对接收到的第一处理指令进行解码处理,得到解码后的第一处理指令,其中,解码后的第一处理指令包括操作码以及一个或多个操作数,所述操作码用于指示与所述第一处理指令对应的处理类型。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述数据处理装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图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、根据权利要求A1-A5中任意一项所述的方法,所述方法还包括:
根据所述描述符的标识,确定是否存在未完成处理的第二处理指令,所述第二处理指令包括指令队列中在所述第一处理指令之前的,且操作数中具有所述描述符的标识的处理指令;
在存在未完成处理的第二处理指令时,阻塞或缓存所述第一处理指令。
A7、根据权利要求A1-A6中任意一项所述的方法,所述方法还包括:
根据所述描述符的标识,确定所述描述符当前的状态,所述描述符的状态包括可操作状态或不可操作状态;
在所述描述符当前处于不可操作状态时,阻塞或缓存所述第一处理指令。
A8、根据权利要求A1-A7中任意一项所述的方法,所述第一处理指令包括数据存取指令,所述操作数包括源数据和目的数据,
其中,根据所述描述符的标识,获取所述描述符的内容,包括:
在所述源数据和所述目的数据中的至少一个包括描述符的标识时,从描述符存储空间获取所述描述符的内容;
其中,根据所述描述符的内容,执行所述第一处理指令,包括:
根据所述描述符的内容,分别确定所述源数据的第一数据地址和/或所述目的数据的第二数据地址;
从所述第一数据地址读取数据并写入到所述第二数据地址。
A9、根据权利要求A1-A7中任意一项所述的方法,所述第一处理指令包括运算指令,其中,根据所述描述符的内容,执行所述第一处理指令,包括:
根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;
根据所述数据地址,执行与所述第一处理指令对应的运算。
A10、根据权利要求A1-A9中任意一项所述的方法,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
A11、根据权利要求A10所述的方法,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
A12、根据权利要求A11所述的方法,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址;
其中,所述张量数据的形状参数包括以下至少一种:
所述数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
A13、根据权利要求A1-A12中任意一项所述的方法,所述方法还包括:
对接收到的第一处理指令进行解码处理,得到解码后的第一处理指令,
其中,解码后的第一处理指令包括操作码以及一个或多个操作数,所述操作码用于指示与所述第一处理指令对应的处理类型。
A14、一种数据处理装置,所述装置包括:
内容获取模块,用于在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;
指令执行模块,用于根据所述描述符的内容,执行所述第一处理指令。
A15、根据权利要求A14所述的装置,所述指令执行模块包括:
地址确定子模块,用于根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;
数据处理子模块,用于根据所述数据地址,执行与所述第一处理指令对应的数据处理。
A16、根据权利要求A14或A15所述的装置,所述装置还包括:
第一参数获取模块,用于在所述第一处理指令为描述符注册指令时,获取所述第一处理指令中描述符的注册参数,所述注册参数包括所述描述符的标识、张量形状以及描述符所指示的张量数据的内容中的至少一种;
区域确定模块,用于根据所述描述符的注册参数,确定所述描述符的内容在描述符存储空间中的第一存储区域,以及所述描述符所指示的张量数据的内容在数据存储空间中的第二存储区域;
内容确定模块,用于根据所述描述符的注册参数以及所述第二存储区域,确定所述描述符的内容,以建立所述描述符与所述第二存储区域之间的对应关系;
内容存储模块,用于将所述描述符的内容存储到所述第一存储区域。
A17、根据权利要求A14-A16中任意一项所述的装置,所述装置还包括:
标识获取模块,用于在所述第一处理指令为描述符注销指令时,获取所述第一处理指令中描述符的标识;
空间释放模块,用于根据所述描述符的标识,分别释放所述描述符在描述符存储空间中的存储区域以及所述描述符所指示的张量数据的内容在数据存储空间中的存储区域。
A18、根据权利要求A14-A17中任意一项所述的装置,所述装置还包括:
第二参数获取模块,用于在所述第一处理指令为描述符修改指令时,获取所述第一处理指令中描述符的修改参数,所述修改参数包括所述描述符的标识、待修改的张量形状以及描述符所指示的张量数据的内容中的至少一种;
更新内容确定模块,用于根据所述描述符的修改参数,确定所述描述符的待更新内容;
内容更新模块,用于根据待更新内容,更新描述符存储空间中的所述描述符的内容和/或数据存储空间中张量数据的内容。
A19、根据权利要求A14-A18中任意一项所述的装置,所述装置还包括:
指令确定模块,用于根据所述描述符的标识,确定是否存在未完成处理的第二处理指令,所述第二处理指令包括指令队列中在所述第一处理指令之前的,且操作数中具有所述描述符的标识的处理指令;
第一指令缓存模块,用于在存在未完成处理的第二处理指令时,阻塞或缓存所述第一处理指令。
A20、根据权利要求A14-A19中任意一项所述的装置,所述装置还包括:
状态确定模块,用于根据所述描述符的标识,确定所述描述符当前的状态,所述描述符的状态包括可操作状态或不可操作状态;
第二指令缓存模块,用于在所述描述符当前处于不可操作状态时,阻塞或缓存所述第一处理指令。
A21、根据权利要求A14-A20中任意一项所述的装置,所述第一处理指令包括数据存取指令,所述操作数包括源数据和目的数据,
其中,所述内容获取模块包括:
内容获取子模块,用于在所述源数据和所述目的数据中的至少一个包括描述符的标识时,从描述符存储空间获取所述描述符的内容;
其中,所述指令执行模块包括:
第一地址确定子模块,用于根据所述描述符的内容,分别确定所述源数据的第一数据地址和/或所述目的数据的第二数据地址;
存取子模块,用于从所述第一数据地址读取数据并写入到所述第二数据地址。
A22、根据权利要求A14-A20中任意一项所述的装置,所述第一处理指令包括运算指令,其中,所述指令执行模块包括:
第二地址确定子模块,用于根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;
运算子模块,用于根据所述数据地址,执行与所述第一处理指令对应的运算。
A23、根据权利要求A14-A22中任意一项所述的装置,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
A24、根据权利要求A23所述的装置,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
A25、根据权利要求A24所述的装置,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址;
其中,所述张量数据的形状参数包括以下至少一种:
所述数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
A26、根据权利要求A14-A25中任意一项所述的装置,所述装置还包括:
解码模块,用于对接收到的第一处理指令进行解码处理,得到解码后的第一处理指令,
其中,解码后的第一处理指令包括操作码以及一个或多个操作数,所述操作码用于指示与所述第一处理指令对应的处理类型。
A27、一种人工智能芯片,所述芯片包括如权利要求A14-A26中任意一项所述的数据处理装置。
A28、一种电子设备,所述电子设备包括如权利要求A27所述的人工智能芯片。
A29、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求A27所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
A30、根据权利要求A29所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;
根据所述描述符的内容,执行所述第一处理指令。
2.根据权利要求1所述的方法,其特征在于,根据所述描述符的内容,执行所述第一处理指令,包括:
根据所述描述符的内容,确定与所述第一处理指令的操作数对应的数据在数据存储空间中的数据地址;
根据所述数据地址,执行与所述第一处理指令对应的数据处理。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一处理指令为描述符注册指令时,获取所述第一处理指令中描述符的注册参数,所述注册参数包括所述描述符的标识、张量形状以及描述符所指示的张量数据的内容中的至少一种;
根据所述描述符的注册参数,确定所述描述符的内容在描述符存储空间中的第一存储区域,以及所述描述符所指示的张量数据的内容在数据存储空间中的第二存储区域;
根据所述描述符的注册参数以及所述第二存储区域,确定所述描述符的内容,以建立所述描述符与所述第二存储区域之间的对应关系;
将所述描述符的内容存储到所述第一存储区域。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一处理指令为描述符注销指令时,获取所述第一处理指令中描述符的标识;
根据所述描述符的标识,分别释放所述描述符在描述符存储空间中的存储区域以及所述描述符所指示的张量数据的内容在数据存储空间中的存储区域。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一处理指令为描述符修改指令时,获取所述第一处理指令中描述符的修改参数,所述修改参数包括所述描述符的标识、待修改的张量形状以及描述符所指示的张量数据的内容中的至少一种;
根据所述描述符的修改参数,确定所述描述符的待更新内容;
根据待更新内容,更新描述符存储空间中的所述描述符的内容和/或数据存储空间中张量数据的内容。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述描述符的标识,确定是否存在未完成处理的第二处理指令,所述第二处理指令包括指令队列中在所述第一处理指令之前的,且操作数中具有所述描述符的标识的处理指令;
在存在未完成处理的第二处理指令时,阻塞或缓存所述第一处理指令。
7.一种数据处理装置,其特征在于,所述装置包括:
内容获取模块,用于在解码后的第一处理指令的操作数包括描述符的标识时,根据所述描述符的标识,获取所述描述符的内容,所述描述符用于指示张量的形状;
指令执行模块,用于根据所述描述符的内容,执行所述第一处理指令。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求7所述的数据处理装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
Priority Applications (24)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272411.9A CN111782133A (zh) | 2019-04-04 | 2019-04-04 | 数据处理方法及装置以及相关产品 |
KR1020207036500A KR102579192B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
EP20217332.4A EP3828698B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207036505A KR102550451B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036496A KR102522416B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
EP20217333.2A EP3825848A1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207036492A KR102519470B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
PCT/CN2020/082775 WO2020200244A1 (zh) | 2019-04-04 | 2020-04-01 | 数据处理方法及装置以及相关产品 |
EP20217331.6A EP3825847B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20217328.2A EP3825842B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
JP2021510522A JP7073580B2 (ja) | 2019-04-04 | 2020-04-01 | データ処理方法、装置、及び関連製品 |
EP20217330.8A EP3825846A1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20217329.0A EP3825843B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20783678.4A EP3800547A4 (en) | 2019-04-04 | 2020-04-01 | DATA PROCESSING METHOD AND DEVICE AND RELEVANT PRODUCT |
KR1020207036494A KR102569336B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036508A KR102379406B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207032006A KR20210002518A (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
JP2020198177A JP7121102B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198158A JP7121101B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198041A JP2021170312A (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198079A JP7121100B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198102A JP7150802B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198021A JP7239547B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
US17/137,245 US20210150325A1 (en) | 2019-04-04 | 2020-12-29 | Data processing method and apparatus, and related product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272411.9A CN111782133A (zh) | 2019-04-04 | 2019-04-04 | 数据处理方法及装置以及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782133A true CN111782133A (zh) | 2020-10-16 |
Family
ID=72755394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910272411.9A Pending CN111782133A (zh) | 2019-04-04 | 2019-04-04 | 数据处理方法及装置以及相关产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210150325A1 (zh) |
CN (1) | CN111782133A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831722A (zh) * | 2019-04-19 | 2020-10-27 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
WO2022100286A1 (zh) * | 2020-11-13 | 2022-05-19 | 中科寒武纪科技股份有限公司 | 数据处理装置、数据处理方法及相关产品 |
US11687339B2 (en) | 2019-04-19 | 2023-06-27 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product |
US11836491B2 (en) | 2019-04-04 | 2023-12-05 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product for increased efficiency of tensor processing |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784294A (en) * | 1995-06-09 | 1998-07-21 | International Business Machines Corporation | System and method for comparative molecular moment analysis (CoMMA) |
CN1588300A (zh) * | 2004-08-09 | 2005-03-02 | 威盛电子股份有限公司 | 进行硬盘阵列同位运算的装置与相关方法 |
CN1658613A (zh) * | 2004-02-20 | 2005-08-24 | 国际商业机器公司 | 促进dsp间数据通信的方法和系统 |
CN103761060A (zh) * | 2014-01-27 | 2014-04-30 | 华为技术有限公司 | 一种数据处理方法及服务器 |
CN106970956A (zh) * | 2017-03-16 | 2017-07-21 | 天津大学 | 一种基于张量的三维模型检索方法 |
CN107077327A (zh) * | 2014-06-30 | 2017-08-18 | 微体系统工程有限公司 | 用于可扩展宽操作数指令的系统和方法 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
CN108009106A (zh) * | 2016-10-27 | 2018-05-08 | 谷歌公司 | 神经网络计算模组 |
WO2018125250A1 (en) * | 2016-12-31 | 2018-07-05 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
US20180314946A1 (en) * | 2017-04-28 | 2018-11-01 | Tenstorrent Inc. | Processing core with metadata actuated conditional graph execution |
US20190042940A1 (en) * | 2017-08-04 | 2019-02-07 | Fujitsu Limited | Information processing apparatus and component estimation method |
CN109543832A (zh) * | 2018-11-27 | 2019-03-29 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
-
2019
- 2019-04-04 CN CN201910272411.9A patent/CN111782133A/zh active Pending
-
2020
- 2020-12-29 US US17/137,245 patent/US20210150325A1/en active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784294A (en) * | 1995-06-09 | 1998-07-21 | International Business Machines Corporation | System and method for comparative molecular moment analysis (CoMMA) |
CN1658613A (zh) * | 2004-02-20 | 2005-08-24 | 国际商业机器公司 | 促进dsp间数据通信的方法和系统 |
CN1588300A (zh) * | 2004-08-09 | 2005-03-02 | 威盛电子股份有限公司 | 进行硬盘阵列同位运算的装置与相关方法 |
CN103761060A (zh) * | 2014-01-27 | 2014-04-30 | 华为技术有限公司 | 一种数据处理方法及服务器 |
CN107077327A (zh) * | 2014-06-30 | 2017-08-18 | 微体系统工程有限公司 | 用于可扩展宽操作数指令的系统和方法 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
CN108009106A (zh) * | 2016-10-27 | 2018-05-08 | 谷歌公司 | 神经网络计算模组 |
WO2018125250A1 (en) * | 2016-12-31 | 2018-07-05 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
CN106970956A (zh) * | 2017-03-16 | 2017-07-21 | 天津大学 | 一种基于张量的三维模型检索方法 |
US20180314946A1 (en) * | 2017-04-28 | 2018-11-01 | Tenstorrent Inc. | Processing core with metadata actuated conditional graph execution |
US20190042940A1 (en) * | 2017-08-04 | 2019-02-07 | Fujitsu Limited | Information processing apparatus and component estimation method |
CN109543832A (zh) * | 2018-11-27 | 2019-03-29 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
Non-Patent Citations (1)
Title |
---|
NIGHT李: "CUDNN学习笔记(2)", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/497075》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836491B2 (en) | 2019-04-04 | 2023-12-05 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product for increased efficiency of tensor processing |
US12112166B2 (en) | 2019-04-04 | 2024-10-08 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product for increased efficiency of tensor processing |
CN111831722A (zh) * | 2019-04-19 | 2020-10-27 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
US11687339B2 (en) | 2019-04-19 | 2023-06-27 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product |
WO2022100286A1 (zh) * | 2020-11-13 | 2022-05-19 | 中科寒武纪科技股份有限公司 | 数据处理装置、数据处理方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
US20210150325A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782133A (zh) | 数据处理方法及装置以及相关产品 | |
JP7239547B2 (ja) | データ処理方法、装置、及び関連製品 | |
US12112166B2 (en) | Data processing method and apparatus, and related product for increased efficiency of tensor processing | |
CN111857828B (zh) | 处理器操作方法及装置以及相关产品 | |
US20240111536A1 (en) | Data processing apparatus and related products | |
US20230185595A1 (en) | Method for realizing live migration, chip, board, and storage medium | |
CN111831337B (zh) | 数据同步方法及装置以及相关产品 | |
CN111782274B (zh) | 数据处理装置及相关产品 | |
CN113807507B (zh) | 数据处理方法及装置以及相关产品 | |
CN111783992A (zh) | 数据处理装置及相关产品 | |
CN111831329B (zh) | 数据处理方法及装置以及相关产品 | |
CN111782267B (zh) | 数据处理方法及装置以及相关产品 | |
CN113806246A (zh) | 数据处理装置及方法以及相关产品 | |
CN111831722A (zh) | 数据同步方法及装置以及相关产品 | |
CN111857829A (zh) | 处理器操作方法及装置以及相关产品 | |
CN114489790A (zh) | 数据处理装置、数据处理方法及相关产品 | |
CN114489804A (zh) | 处理方法、处理装置及相关产品 | |
CN114489789A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201016 |
|
RJ01 | Rejection of invention patent application after publication |