CN116127259A - 张量处理方法、装置、设备及计算机可读存储介质 - Google Patents
张量处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116127259A CN116127259A CN202211196514.XA CN202211196514A CN116127259A CN 116127259 A CN116127259 A CN 116127259A CN 202211196514 A CN202211196514 A CN 202211196514A CN 116127259 A CN116127259 A CN 116127259A
- Authority
- CN
- China
- Prior art keywords
- tensor
- processor
- tensors
- processing
- identifier
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 333
- 238000000034 method Methods 0.000 claims abstract description 143
- 230000008569 process Effects 0.000 claims description 63
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 239000002699 waste material Substances 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/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
-
- 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
- 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/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
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
- G06F9/3881—Arrangements for communication of instructions and data
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Mathematics (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)
- Advance Control (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了张量处理方法、装置、设备及计算机可读存储介质,属于人工智能技术领域。方法包括:首先,第一处理器获得多个第一张量,将多个第一张量拷贝至第二张量,从而使得第二张量包括多个第一张量。其中,第二张量包括的多个第一张量在第二张量中占用的空间连续。接着,第一处理器接收第二处理器发送的第一处理指令,该第一处理指令包括用于指示第二张量的第一标识,以及用于指示第一处理操作的第一处理标识。之后,第一处理器按照第一处理操作进行第二张量的处理。本申请减少了处理指令的发送次数,提高了处理器的利用率以及张量处理的并行性,从而有利于提高处理效率。
Description
本申请是分案申请,原申请的申请号是202110185525.7,原申请日是2021年2月10日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及人工智能技术领域,特别涉及张量处理方法、装置、设备及计算机可读存储介质。
背景技术
在人工智能(artificial intelligence,AI)技术领域中,往往涉及到对张量(tensor)的处理,对张量的处理例如为对张量的元素填充、复制和运算等等。其中,张量是具有统一数据类型(dtype)的数组,用于对较高维度的矩阵和向量进行表示。张量的处理过程依赖于主处理器(host)和从处理器(device)之间的交互。在交互过程中,从处理器根据主处理器发送的处理指令完成对张量的处理。
相关技术中,主处理器针对各个待处理的张量逐个发送处理指令。相应地,从处理器根据处理指令逐个进行张量的处理。然而,该处理方式不仅并行性较差,而且使得从处理器的利用率受限于主处理器,容易导致从处理器的利用率较低。由此可见,相关技术所提供的处理方式不够灵活、处理效率较低。
发明内容
本申请提供了一种张量处理方法、装置、设备及计算机可读存储介质,以解决相关技术提供的问题,技术方案如下:
第一方面,提供了一种张量处理方法,该方法包括:
首先,第一处理器获得多个第一张量,将多个第一张量拷贝至第二张量,从而使得第二张量包括多个第一张量。其中,第二张量包括的多个第一张量在第二张量中占用的空间连续。接着,第一处理器接收第二处理器发送的第一处理指令,该第一处理指令包括用于指示第二张量的第一标识,以及用于指示第一处理操作的第一处理标识。之后,第一处理器按照第一处理操作进行第二张量的处理。
由于第一处理器将多个第一张量拷贝到了第二张量中,因而第二处理器仅需要针对第二张量发送一次处理指令(即第一处理指令),便能够实现对多个第一张量的处理。从而,减少了第二处理器需要发送处理指令的次数,也减少了第一处理器与第二处理器之间的交互次数。因此,避免了第二处理器发送处理指令的过程成为整个处理过程的瓶颈,使得第一处理器能够发挥出带宽、计算等方面的优势,从而提高了第一处理器的利用率。并且,第一处理器能够一次性实现多个第一张量的处理,该处理方式的并行性较高,从而有利于提高处理效率。
在一种可能的实现方式中,第一处理器获得多个第一张量,将多个第一张量拷贝至第二张量,包括:第一处理器接收第二处理器发送的多个拷贝指令,多个拷贝指令与多个第一张量一一对应,多个拷贝指令中的任一拷贝指令包括第二标识,第二标识用于指示任一拷贝指令对应的第一张量;第一处理器获得第二标识指示的第一张量,得到多个第一张量,将多个第一张量拷贝至第二张量。在该实现方式中,第一处理器根据第二处理器发送的拷贝指令进行多个第一张量的拷贝,该拷贝方式简单直接,适用范围较大。
在一种可能的实现方式中,多个拷贝指令中的任一拷贝指令还包括第一地址信息,第一地址信息用于指示第一地址,将多个第一张量拷贝至第二张量,包括:对于任一第一张量,第一处理器将任一第一张量拷贝至第二张量中的第一地址处,第一地址是任一第一张量对应的拷贝指令包括的第一地址信息指示的地址。其中,第二处理器通过在拷贝指令中携带第一地址信息来指定第一地址,第一处理器将第一张量拷贝至第二处理器所指定的第一地址处,从而实现第一张量的准确拷贝。
在一种可能的实现方式中,多个拷贝指令是第二处理器按照目标顺序发送的指令,将多个第一张量拷贝至第二张量,包括:第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量中。其中,第一处理器按照第二处理器发送拷贝指令的顺序,进行多个第一张量的拷贝,从而实现第一张量的灵活拷贝。
在一种可能的实现方式中,第一处理器获得多个第一张量之前,方法还包括:第一处理器接收第二处理器发送的创建指令,创建指令包括空间信息,空间信息用于指示空间占用量,空间占用量基于多个第一张量占用的空间之和确定;第一处理器根据空间信息指示的空间占用量创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。第一处理器根据第二处理器发送的创建指令进行第二张量的创建,由于空间占用量是基于多个第一张量占用的空间之和确定的,而第二张量占用的空间与空间占用量相同,因而保证了第二张量能够容纳由第一处理器拷贝的多个第一张量。
在一种可能的实现方式中,创建指令还包括第二地址信息,第二地址信息用于指示第二地址,第一处理器根据空间信息指示的空间占用量创建第二张量,包括:第一处理器在第二地址信息指示的第二地址处,根据空间信息指示的空间占用量创建第二张量。第一处理器在第二处理器指定的第二地址处进行第二张量的创建,保证了第二张量的地址准确性。
在一种可能的实现方式中,第一处理器获得多个第一张量,将多个第一张量拷贝至第二张量之后,方法还包括:第一处理器接收第二处理器发送的删除指令,删除指令包括第三标识,第三标识用于指示待删除的第一张量;第一处理器删除第三标识指示的第一张量。即将多个第一张量拷贝至第二张量之后,第二张量中包括的各个第一张量在功能上能够代替被拷贝的多个第一张量。通过删除被拷贝的多个第一张量,释放了第一处理器中的存储空间,避免占用不必要的存储资源。
在一种可能的实现方式中,方法还包括:第一处理器接收第二处理器发送的第二处理指令,第二处理指令包括第四标识以及第二处理标识,第四标识用于指示第三张量,第三张量包括第二张量包括的多个第一张量中的部分第一张量,第二处理标识用于指示第二处理操作;第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。除了对第二张量进行整体处理之外,还能够对第二张量中的部分第一张量进行处理,该处理方式较为灵活。
在一种可能的实现方式中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。
第二方面,提供了一种张量处理方法,该方法包括:
第二处理器确定用于指示第二张量的第一标识,第二张量包括的多个第一张量在第二张量中占用的空间连续,第二张量包括的多个第一张量由第一处理器拷贝多个第一张量得到;
第二处理器确定用于指示第二张量对应的第一处理操作的第一处理标识;
第二处理器向第一处理器发送携带有第一标识以及第一处理标识的第一处理指令,第一处理指令用于第一处理器按照第一处理标识指示的第一处理操作对第一标识指示的第二张量进行处理。
在一种可能的实现方式中,第二处理器确定用于指示第二张量的第一标识之前,方法还包括:第二处理器确定用于指示多个第一张量的多个第二标识,多个第一张量与多个第二标识一一对应;第二处理器向第一处理器发送携带有多个第二标识的多个拷贝指令,多个第二标识与多个拷贝指令一一对应,多个拷贝指令用于第一处理器将多个第二标识指示的多个第一张量拷贝至第二张量。
在一种可能的实现方式中,第二处理器向第一处理器发送携带有多个第二标识的多个拷贝指令之前,方法还包括:对于任一第一张量,第二处理器确定用于指示任一第一张量对应的第一地址的第一地址信息;第二处理器将第一地址信息携带于任一第一张量对应的拷贝指令中,携带有第一地址信息的拷贝指令用于第一处理器将任一第一张量拷贝至第一地址信息指示的第一地址处。
在一种可能的实现方式中,第二处理器向第一处理器发送携带有多个第二标识的多个拷贝指令,包括:第二处理器按照目标顺序向第一处理器发送多个拷贝指令,多个拷贝指令用于第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量。
在一种可能的实现方式中,第二处理器确定用于指示第二张量的第一标识之前,方法还包括:第二处理器基于多个第一张量占用的空间之和确定空间占用量;第二处理器确定用于指示空间占用量的空间信息,向第一处理器发送携带有空间信息的创建指令,创建指令用于第一处理器创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。
在一种可能的实现方式中,向第一处理器发送携带有空间信息的创建指令之前,方法还包括:第二处理器确定用于指示第二张量对应的第二地址的第二地址信息,将第二地址信息携带于创建指令中,携带有第二地址信息的创建指令用于第一处理器将第二张量创建于第二地址信息指示的第二地址处。
在一种可能的实现方式中,方法还包括:第二处理器确定用于指示待删除的第一张量的第三标识;第二处理器向第一处理器发送携带有第三标识的删除指令,删除指令用于第一处理器删除第三标识指示的第一张量。
在一种可能的实现方式中,待删除的第一张量是第二处理器接收的目标指令中指示的第一张量,或者是未被引用的时长超过目标阈值的第一张量。
在一种可能的实现方式中,方法还包括:第二处理器确定用于指示第三张量的第四标识,第三张量包括第二张量包括的多个第一张量中的部分第一张量;第二处理器确定用于指示第三张量对应的第二处理操作的第二处理标识;第二处理器向第一处理器发送携带有第四标识以及第二处理标识的第二处理指令,第二处理指令用于第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。
在一种可能的实现方式中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。
第二方面以及第二方面的任一可能的实现方式所具备的技术效果参见上文第一方面以及第一方面的任一可能的实现方式所具备的技术效果,此处不再进行赘述。
第三方面,提供了一种张量处理装置,该装置包括:
获得模块,用于第一处理器获得多个第一张量;
拷贝模块,用于将多个第一张量拷贝至第二张量,第二张量包括的多个第一张量在第二张量中占用的空间连续;
接收模块,用于第一处理器接收第二处理器发送的第一处理指令,第一处理指令包括第一标识以及第一处理标识,第一标识用于指示第二张量,第一处理标识用于指示第一处理操作;
处理模块,用于第一处理器按照第一处理标识指示的第一处理操作对第一标识指示的第二张量进行处理。
在一种可能的实现方式中,拷贝模块用于第一处理器接收第二处理器发送的多个拷贝指令,多个拷贝指令与多个第一张量一一对应,多个拷贝指令中的任一拷贝指令包括第二标识,第二标识用于指示任一拷贝指令对应的第一张量;第一处理器获得第二标识指示的第一张量,得到多个第一张量,将多个第一张量拷贝至第二张量。
在一种可能的实现方式中,多个拷贝指令中的任一拷贝指令还包括第一地址信息,第一地址信息用于指示第一地址,拷贝模块用于对于任一第一张量,第一处理器将任一第一张量拷贝至第二张量中的第一地址处,第一地址是任一第一张量对应的拷贝指令包括的第一地址信息指示的地址。
在一种可能的实现方式中,多个拷贝指令是第二处理器按照目标顺序发送的指令,拷贝模块用于第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量中。
在一种可能的实现方式中,接收模块,还用于第一处理器接收第二处理器发送的创建指令,创建指令包括空间信息,空间信息用于指示空间占用量,空间占用量基于多个第一张量占用的空间之和确定;
装置还包括:创建模块,用于第一处理器根据空间信息指示的空间占用量创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。
在一种可能的实现方式中,创建指令还包括第二地址信息,第二地址信息用于指示第二地址,创建模块,用于第一处理器在第二地址信息指示的第二地址处,根据空间信息指示的空间占用量创建第二张量。
在一种可能的实现方式中,接收模块,还用于第一处理器接收第二处理器发送的删除指令,删除指令包括第三标识,第三标识用于指示待删除的第一张量;
装置还包括:删除模块,用于第一处理器删除第三标识指示的第一张量。
在一种可能的实现方式中,装置模块,还用于第一处理器接收第二处理器发送的第二处理指令,第二处理指令包括第四标识以及第二处理标识,第四标识用于指示第三张量,第三张量包括第二张量包括的多个第一张量中的部分第一张量,第二处理标识用于指示第二处理操作;
处理模块,还用于第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。
在一种可能的实现方式中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。
第四方面,提供了一种张量处理装置,该装置包括:
确定模块,用于第二处理器确定用于指示第二张量的第一标识,第二张量包括的多个第一张量在第二张量中占用的空间连续,第二张量包括的多个第一张量由第一处理器拷贝多个第一张量得到;
确定模块,还用于第二处理器确定用于指示第二张量对应的第一处理操作的第一处理标识;
发送模块,用于第二处理器向第一处理器发送携带有第一标识以及第一处理标识的第一处理指令,第一处理指令用于第一处理器按照第一处理标识指示的第一处理操作对第一标识指示的第二张量进行处理。
在一种可能的实现方式中,确定模块,还用于第二处理器确定用于指示多个第一张量的多个第二标识,多个第一张量与多个第二标识一一对应;
发送模块,还用于第二处理器向第一处理器发送携带有多个第二标识的多个拷贝指令,多个第二标识与多个拷贝指令一一对应,多个拷贝指令用于第一处理器将多个第二标识指示的多个第一张量拷贝至第二张量。
在一种可能的实现方式中,确定模块,还用于对于任一第一张量,第二处理器确定用于指示任一第一张量对应的第一地址的第一地址信息;第二处理器将第一地址信息携带于任一第一张量对应的拷贝指令中,携带有第一地址信息的拷贝指令用于第一处理器将任一第一张量拷贝至第一地址信息指示的第一地址处。
在一种可能的实现方式中,发送模块,用于第二处理器按照目标顺序向第一处理器发送多个拷贝指令,多个拷贝指令用于第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量。
在一种可能的实现方式中,确定模块,还用于第二处理器基于多个第一张量占用的空间之和确定空间占用量;第二处理器确定用于指示空间占用量的空间信息;
发送模块,还用于向第一处理器发送携带有空间信息的创建指令,创建指令用于第一处理器创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。
在一种可能的实现方式中,确定模块,还用于第二处理器确定用于指示第二张量对应的第二地址的第二地址信息,将第二地址信息携带于创建指令中,携带有第二地址信息的创建指令用于第一处理器将第二张量创建于第二地址信息指示的第二地址处。
在一种可能的实现方式中,确定模块,还用于第二处理器确定用于指示待删除的第一张量的第三标识;
发送模块,还用于第二处理器向第一处理器发送携带有第三标识的删除指令,删除指令用于第一处理器删除第三标识指示的第一张量。
在一种可能的实现方式中,待删除的第一张量是第二处理器接收的目标指令中指示的第一张量,或者是未被引用的时长超过目标阈值的第一张量。
在一种可能的实现方式中,确定模块,还用于第二处理器确定用于指示第三张量的第四标识,第三张量包括第二张量包括的多个第一张量中的部分第一张量;第二处理器确定用于指示第三张量对应的第二处理操作的第二处理标识;
发送模块,还用于第二处理器向第一处理器发送携带有第四标识以及第二处理标识的第二处理指令,第二处理指令用于第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。
在一种可能的实现方式中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。
第五方面,提供了另一种张量处理装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实施方式中的方法。
第六方面,提供了另一种张量处理装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第二方面或第二方面的任一种可能的实施方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第七方面,提供了一种张量处理设备,该设备包括第一处理器和第二处理器,该第一处理器用于执行上述第一方面或第一方面的任一种可能实施方式中的方法,该第二处理器用于执行上述第二方面或第二方面的任一种可能实施方式中的方法。
第八方面,提供了一种计算机程序(产品),计算机程序(产品)包括:计算机程序代码,当计算机程序代码被计算机运行时,使得计算机执行上述各方面中的方法。
第九方面,提供了一种计算机可读存储介质,计算机可读存储介质存储程序或指令,当程序或指令在计算机上运行时,上述各方面中的方法被执行。
第十方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述各方面中的方法。
第十一方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述各方面中的方法。
附图说明
图1为本申请实施例提供的一种相关技术的示意图;
图2为本申请实施例提供的一种实施环境的示意图;
图3为本申请实施例提供的一种张量处理方法的流程示意图;
图4为本申请实施例提供的一种拷贝第一张量的示意图;
图5为本申请实施例提供的一种第二张量的示意图;
图6为本申请实施例提供的一种张量处理的流程示意图
图7为本申请实施例提供的一种张量处理的流程示意图;
图8为本申请实施例提供的一种张量处理装置的结构示意图;
图9为本申请实施例提供的一种张量处理装置的结构示意图;
图10为本申请实施例提供的一种张量处理设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
在AI技术领域中,往往涉及到对张量的处理,对张量的处理方式包括但不限于元素填充、复制、运算等等。其中,元素填充是指向张量中填充数值作为张量的元素,所填充的数值例如为零(也就是零填充)。运算包括但不限于加、减、乘、除等等。在张量的处理过程中,从处理器需要根据主处理器发送的处理指令完成对张量的处理。
相关技术中,主处理器针对各个待处理的张量逐个发送处理指令。相应地,从处理器根据处理指令逐个进行张量的处理。例如,参见图1,对于待处理器的N个张量,主处理器逐个向从处理器发送处理指令,共发送N个处理指令。之后,从处理器根据处理指令对张量1、张量2、张量3、……、张量N逐个进行处理。
能够看出,在相关技术提供的方法中,主处理器与从处理器之间需要进行多次交互,主处理器发送处理指令的过程容易成为整个处理过程的瓶颈。从而,使得从处理器难以发挥出带宽、计算等方面的优势,降低了从处理器的利用率。另外,从处理器对张量的处理是逐个进行的,并行性较差。因此,相关技术提供的方法不够灵活、处理效率较低。
参见图2,图2示出了本申请实施例提供的一种实施环境。在图2中,包括第一处理器21和第二处理器22。其中,第二处理器22用于作为主处理器,向第一处理器21发送指令。第一处理器21用于作为从处理器,根据接收到的指令实现张量处理。当然,除了指令之外,第一处理器21和第二处理器22之间也能够根据实际需要交互其他数据,本实施例对此不加以限定。
示例性地,第一处理器21包括但不限于图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、现场可编程门阵列(field-programmable gate array,FPGA)等AI处理器。第二处理器22包括但不限于中央处理器(central processing unit,CPU)。第一处理器21和第二处理器22适用的AI框架包括但不限于:Pytorch、TensorFlow、MindSpore和飞桨(PaddlePaddle)。第一处理器21和第二处理器22集成于同一设备中,或者,第一处理器21和第二处理器22分别位于不同设备中,本实施例对此不加以限定。
基于图2所示的实施环境,本申请实施例提供了一种张量处理方法。如图3所示,以应用于第一处理器与第二处理器之间的交互为例,该方法包括如下的步骤。
301,第一处理器获得多个第一张量,将多个第一张量拷贝至第二张量,第二张量包括的多个第一张量占用的空间连续。
其中,第一处理器获得的多个第一张量是存储于第一处理器中的、用于被拷贝的第一张量。第二张量是由第一处理器创建的、能够容纳第一处理器获得的多个第一张量的张量。也就是说,第二张量占用的空间不小于第一处理器获得的多个第一张量占用的空间之和。基于实际的处理需求,第一处理器从第一处理器存储的所有张量中选择全部或部分作为获得的多个第一张量。之后,第一处理器将获得的多个第一张量拷贝至第二张量,从而使得第二张量中也包括多个第一张量。第二张量可以看作是多个第一张量组合得到的,因而第二张量也可以称为组合(combine)张量。需要说明的是,第一处理器获得的多个第一张量与第二张量包括的多个第一张量的内容完全一致,占用的空间也相同,但地址存在不同。并且,由于第一处理器需要存储的数据往往较多,因而第一处理器获得的多个第一张量占用的空间往往是分散的。而在进行拷贝之后,第二张量包括的多个第一张量占用的空间是连续的。其中,占用的空间连续是指:对于任意两个相邻的第一张量,位置较前的第一张量的地址末位与位置较后的第一张量的地址首位相同。
参见图4,图4示出了对两个第一张量进行拷贝的情况。其中,第一处理器获得的第一张量A的地址为0x0030-0x0036,占用的空间为6个字节。第一处理器获得的第一张量B的地址为0x0040-0x0048,占用的空间为8个字节。将第一张量A和第一张量B拷贝至第二张量C之后,第二张量C中第一张量A的地址为0x0050-0x0056,与第一处理器获得的第一张量A的内容一致、占用的空间相同,但地址不同。第二张量C中第一张量B的地址为0x0056-0x005e,与第一处理器获得的第一张量B的内容一致、占用的空间也相同,但地址不同。并且,在第二张量C中,第一张量A的地址末位为0x0056,第一张量B的地址首位也为0x0056,因而第一张量A与第一张量B占用的空间连续。
302,第二处理器确定用于指示第二张量的第一标识。
示例性地,用于指示第二张量的第一标识包括第二张量的地址首位以及第二张量占用的空间。例如,图4示出的第二张量C的地址首位为0x0050,占用的空间为14个字节,则用于指示第二张量的第一标识包括0x0050以及14字节。或者,用于指示第二张量的第一标识包括第二张量的地址末位以及第二张量占用的空间。例如,图4示出的第二张量C的地址末位为0x005e,占用的空间为14个字节,则用于指示第二张量的第一标识包括0x005e以及14字节。又或者,用于指示第二张量的第一标识包括第二张量的地址首位以及地址末位。仍以图4示出的第二张量C为例,则用于第二张量的第一标识包括0x0050以及0x005e。
需要说明的是,本实施例不对用于指示第二张量的第一标识加以限定。无论第二处理器通过何种第一标识来指示第二张量,第一处理器都能够根据第二处理器所确定的第一标识确定唯一的第二张量。
303,第二处理器确定用于指示第二张量对应的第一处理操作的第一处理标识。
其中,第二张量对应的第一处理操作是根据实际处理需求确定的,本实施例对此不进行限定。示例性地,第一处理操作包括但不限于:元素填充、复制等操作(operations,OP),以及基于核函数(kernel)的运算。第一处理标识用于对第一处理操作进行指示,使得第一处理器能够根据该第一处理标识确定唯一的第一处理操作。例如,用于指示零填充的第一处理标识为zero,用于指示加的第一处理标识为add,用于指示减的第一处理标识为sub,用于指示乘的第一处理标识为mul,用于指示除的第一处理标识为div。
能够理解的是,在第一处理操作包括基于核函数的运算的情况下,除了确定第一处理标识之外,还需要确定运算所需的相关数据。以第一处理操作包括除为例,则除了确定第一处理标识为div之外,还需要确定除数,以便于后续第一处理器将第二张量作为被除数,结合该除数完成作除运算。
304,第二处理器向第一处理器发送携带有第一标识以及第一处理标识的第一处理指令。
在确定第一标识以及第一处理标识之后,第二处理器生成携带有第一标识以及第一处理标识的第一处理指令。示例性地,结合303中的说明可知,在第一处理操作包括基于核函数的运算的情况下,该第一处理指令中还携带有运算所需的相关数据。在生成第一处理指令之后,第二处理器向第一处理器发送该第一处理指令。如图5所示,该第一处理指令针对于拷贝得到的、包括有多个第一张量的第二张量,第二处理器仅需发送一次该第一处理指令,便能够在第一处理器中实现对第二张量的处理。由于第二张量中包括有多个第一张量,因而对第二张量进行的处理,也就相当于对第二张量包括的多个第一张量进行的处理。
示例性地,在第一处理器与第二处理器位于不同设备的情况下,第二处理器对该第一处理指令进行加密发送,以保证交互过程的安全性。或者,在第一处理器与第二处理器位于同一设备的情况下,第二处理器直接发送未经过加密的第一处理指令。
305,第一处理器接收第二处理器发送的第一处理指令,按照第一处理标识指示的第一处理操作对第一标识指示的第二张量进行处理。
在第二处理器发送第一处理指令后,第一处理器相应的接收到该第一处理指令。通过解析该第一处理指令,第一处理器能够获得第一标识以及第一处理标识。之后,第一处理器根据第一标识确定第二张量,根据第一处理标识确定第一处理操作,从而按照第一处理操作对第二张量进行处理。如图6所示,图6示出了第一处理器在处理过程中所需执行的步骤,包括:首先拷贝多个(N个,N为大于一的正整数)第一张量得到第二张量,在接收到第一处理指令之后,根据第一处理指令进行第二张量的处理。
在相关技术中,为实现对多个第一张量的处理,需要针对各个第一张量分别发送处理指令,从而需要发送多个处理指令。而在本申请实施例中,由于第一处理器将多个第一张量拷贝到了第二张量中,因而第二处理器仅需要针对第二张量发送一次处理指令(即第一处理指令),便能够实现对多个第一张量的处理。相比于相关技术所提供的方法,本申请实施例所提供的方法中第二处理器需要发送处理指令的次数较少,第一处理器与第二处理器之间的交互次数也较少。因此,避免了第二处理器发送处理指令的过程成为整个处理过程的瓶颈,使得第一处理器能够发挥出带宽、计算等方面的优势,从而提高了第一处理器的利用率。并且,第一处理器能够一次性实现多个第一张量的处理,相比于相关技术中对各个第一张量逐个进行处理的方式,本申请实施例所采用的处理方式并行性较高,有利于提高处理效率。
进一步地,除了将第二张量作为一个整体进行处理以外,本实施例还能够对第二张量的其中一部分进行处理,从而使得本申请实施例所提供的张量处理方法更为灵活,参见如下步骤。
306,第二处理器确定用于指示第三张量的第四标识,第三张量包括第二张量包括的多个第一张量中的部分第一张量。
其中,用于指示第三张量的第四标识参见上文302中对第一标识的说明,此处不再进行赘述。第三张量是第二张量包括的多个第一张量中的部分第一张量,第三张量包括的第一张量的数量为一个或多个。在第三张量包括一个第一张量的情况下,该第三张量即为第二张量中的一个第一张量,例如图7中示出的第三张量3仅包括一个第一张量5。或者,第三张量还可能包括多个第一张量。例如,图7中示出的第三张量1包括第一张量1和第一张量2,第三张量2包括第一张量3和第一张量4。
当然,图7示出的各个第三张量仅作为举例,不用于对第三张量包括的第一张量的数量进行限定。基于实际处理需求,第三张量也可以包括三个、四个或者更多个第一张量。并且,不同第三张量中也可能包括有相同的第一张量。由于每次处理过程是针对一个第三张量的,因而即使不同第三张量中包括了相同的第一张量,也不会产生冲突。以图7示出的情况为例,在一次处理过程中,第三张量包括第一张量1和第一张量2。在另一次处理过程中,第三张量包括第一张量2和第一张量3,两个第三张量均包括了相同的第一张量2。
在示例性实施例中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。例如,参见图7,由于第一张量1与第一张量2相邻,因而第一张量1与第一张量2能够构成一个第三张量。而对于不相邻的第一张量,例如第一张量1与第一张量3,则不能构成一个第三张量。换言之,在图7示出的情况中,不会存在一个仅包括第一张量1与第一张量3的第三张量。如果需要使得一个第三张量中既包括该第一张量1又包括该第一张量3,则该第三张量中还需要包括第一张量2,从而在第一张量1、第一张量2和第一张量3相邻的情况下构成一个第三张量。
307,第二处理器确定用于指示第三张量对应的第二处理操作的第二处理标识,第二处理器向第一处理器发送携带有第四标识以及第二处理标识的第二处理指令。
其中,用于指示第二处理操作的第二处理标识参见上文303中对第一处理标识的说明,第二处理器发送第二处理指令的过程参见上文304中发送第一处理指令的过程,此处均不再进行赘述。
308,第一处理器接收第二处理器发送的第二处理指令,第二处理指令包括第四标识以及第二处理标识,第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。
第一处理器根据第二处理操作对第三张量进行处理的过程参见上文305中的说明,此处不再进行赘述。
需要说明的是,上述步骤的顺序不用于对整体处理以及部分处理这两种处理方式的执行顺序进行限定。其中,整体处理是指上文301-305中将第二张量作为一个整体进行处理的方式,部分处理是指上文306-308中对第二张量的一部分(即第三张量)进行处理的方式。也就是说,在一些实施方式中,先进行整体处理再进行部分处理。在另一些实施方式中,则先进行部分处理再进行整体处理。例如,参见图7,首先对第三张量1、第三张量2和第三张量3分别进行了处理,之后,再对第二张量进行了处理。
在上文中,主要说明了第一处理器与第二处理器之间通过交互处理指令来完成张量处理的过程。而在301中,还涉及了第一处理器创建第二张量的过程,以及第一处理器获得及拷贝多个第一张量的过程。因此,下文对301中涉及的各个过程进行具体说明。
示例性地,第一处理器是基于第二处理器发送的创建指令创建该第二张量的,基于创建指令的创建过程包括如下的步骤。
A1,第二处理器基于多个第一张量占用的空间之和确定空间占用量。
其中,第二处理器首先确定多个第一张量占用的空间之和,从而将多个第一张量占用的空间之和确定为空间占用量。或者,第二处理器将大于该多个第一张量占用的空间之和的某一数值确定为空间占用量,本实施例对此不进行限定。
A2,第二处理器确定用于指示空间占用量的空间信息,向第一处理器发送携带有空间信息的创建指令。
示例性地,第二处理器将该空间占用量直接作为空间信息。或者,第二处理器中存储有空间占用量与空间信息的对应关系,第二处理器根据对应关系确定与该空间占用量对应的空间信息。在得到空间信息之后,基于空间信息生成创建指令,从而向第一处理器发送携带有空间信息的创建指令。其中,第二处理器根据实际需求确定是否需要对该创建指令进行加密发送。
A3,第一处理器接收第二处理器发送的创建指令,第一处理器根据空间信息指示的空间占用量创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。
根据A1和A2的说明可知,创建指令包括有用于指示空间占用量的空间信息,第一处理器所创建的第二张量占用的空间与该空间信息指示的空间占用量相同。由于空间占用量是根据多个第一张量占用的空间之和确定的,因而按照此种方式进行第二张量的创建,能够保证所创建的第二张量能够容纳多个第一张量。
其中,第一处理器是在一定的地址处创建该第二张量的。示例性地,第一处理器自行选择合适的地址创建该第二张量。在完成创建之后,第一处理器还向第二处理器发送该第二张量的地址,以便于第二处理器在302中基于第二张量的地址确定用于指示第二张量的第一标识。或者,在示例性实施例中,创建指令还包括第二地址信息,第二地址信息用于指示第二地址,第一处理器根据空间信息指示的空间占用量创建第二张量,包括:第一处理器在第二地址信息指示的第二地址处,根据空间信息指示的空间占用量创建第二张量。在此种情况下,由于第一处理器在第二处理器指定的地址处创建了第二张量,因而无需再向第二处理器发送第二张量的地址,以避免通信资源的浪费。示例性地,用于指示第二地址的第二地址信息包括但不限于:地址首位以及地址末位中的至少一种。在第二地址信息包括地址首位的情况下,第一处理器在该地址首位之后创建该第二张量。在第二地址信息包括地址末位的情况下,第一处理器在该地址末位之前创建该第二张量。在第二地址信息包括地址首位和地址末位的情况下,第一处理器在地址首位和地址末位之间创建该第二张量。
能够理解的是,由于创建指令是由第二处理器发送的,因而在创建指令中包括第二地址信息的情况下,是由第二处理器将第二地址信息携带于该创建指令中的。因此,第二处理器向第一处理器发送携带有空间信息的创建指令之前,方法还包括:第二处理器确定用于指示第二张量对应的第二地址的第二地址信息,将第二地址信息携带于创建指令中。
在示例性实施例中,第一处理器对多个第一张量的获得及拷贝过程也是基于第二处理器发送的拷贝指令完成的,基于拷贝指令的获得及拷贝过程包括如下步骤。
B1、第二处理器确定用于指示多个第一张量的多个第二标识。
多个第一张量与多个第二标识是一一对应的,也就是说,一个第二标识用于对一个第一张量进行唯一指示。用于确定第一张量的第二标识参见上文302中对第一标识的说明,此处不再进行赘述。
B2、第二处理器向第一处理器发送携带有多个第二标识的多个拷贝指令。
其中,多个第二标识与多个拷贝指令之间具有一一对应关系,即一个拷贝指令中包括且仅包括一个第二标识。由于一个第二标识用于对一个第一张量进行唯一指示,因而对于一个拷贝指令而言,该拷贝指令用于第一处理器对该拷贝指令包括的一个第二标识所指示的一个第一张量进行拷贝。能够看出,多个拷贝指令与多个第一张量之间也具有一一对应关系。
B3、第一处理器接收第二处理器发送的多个拷贝指令,获得第二标识指示的第一张量,得到多个第一张量,将多个第一张量拷贝至第二张量。
根据接收到的多个拷贝指令,第一处理器获得对应的多个第一张量。之后,第一处理器将获得的多个第一张量拷贝至第二张量,使得第二张量中包括多个第一张量。在第一处理器基于拷贝指令将多个第一张量拷贝至第二张量的情况下,拷贝过程包括如下的两种情况。
第一种情况:对于任一第一张量,第二处理器确定用于指示任一第一张量对应的第一地址的第一地址信息,将第一地址信息携带于任一第一张量对应的拷贝指令中。相应地,第一处理器接收到的各个拷贝指令中还包括第一地址信息。对于任一第一张量,第一处理器将任一第一张量拷贝至第二张量中的第一地址,第一地址是任一第一张量对应的拷贝指令包括的第一地址信息指示的地址。
用于指示第一地址的第一地址信息包括地址首位以及地址末位的至少一种。在第一地址信息包括地址首位的情况下,第一处理器将第一张量拷贝至该地址首位之后。在第一地址信息包括地址末位的情况下,第一处理器将第一张量拷贝至该地址末位之前。在第一地址信息包括地址首位和地址末位的情况下,第一处理器则将第一张量拷贝至地址首位和地址末位之间。
第二种情况:第二处理器按照目标顺序向第一处理器发送多个拷贝指令,第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量中。
在第一处理器接收到首个拷贝指令之后,将首个拷贝指令对应的第一张量作为第二张量中的首个第一张量,首个第一张量的地址首位即为第二张量的地址首位。在第一处理器接收到第二个拷贝指令之后,将第二个拷贝指令对应的第一张量作为第二张量中的第二个第一张量,第二个第一张量的地址首位即为首个第一张量的地址末位,以此类推,直至完成所有第一张量的拷贝。
能够理解的是,在完成拷贝之后,第二张量中多个第一张量的排列顺序即为第二处理器发送多个拷贝指令的目标顺序。例如,第二处理器依次发送了第一张量C、第一张量B和第一张量A的拷贝指令,则第二张量中首个第一张量为第一张量C,第二个第一张量为第一张量B,第三个第一张量为第一张量A,并且,第一张量C、第一张量B和第一张量C占用的空间连续。
此外,在第一处理器将多个第一张量拷贝至第二张量之后,第二张量中包括了多个第一张量。因此,第一处理器对获得的多个第一张量,也就是不位于第二张量中的各个第一张量进行删除,以避免占用第一处理器中的存储空间。示例性地,第一处理器根据第二处理器发送的删除指令删除获得的多个第一张量,删除过程包括如下的步骤。
C1,第二处理器确定用于指示待删除的第一张量的第三标识,向第一处理器发送携带有第三标识的删除指令。
其中,待删除的第一张量包括第一处理器获得的所有第一张量,或者包括第一处理器获得的所有第一张量中的部分第一张量。在示例性实施例中,待删除的第一张量是第二处理器接收的目标指令中指示的第一张量,或者是未被引用的时长超过目标阈值的第一张量。在前一种情况中,该目标指令是用户发送的指令,或者是管理设备发送的指令,该管理设备用于管理第二处理器和第一处理器所在的设备。在后一种情况下,第二处理器监测各个第一张量未被引用的时长,如果某个第一张量未被引用的时长超过目标阈值,则将该第一张量作为待删除的第一张量。本实施例不对目标阈值加以限定。
C2,第一处理器接收第二处理器发送的删除指令,删除指令包括用于指示待删除的第一张量的第三标识,第一处理器删除第三标识指示的第一张量。
第一处理器通过解析该删除指令能够获得第三标识,从而能够根据第三标识的指示对待删除的第一张量进行删除,进而避免这些第一张量占用第一处理器中的存储空间。
接下来,对本申请实施例的应用场景进行说明。能够理解的是,以下说明仅为举例,而不用于对本申请实施例的应用场景造成限定。
应用场景一:混合精度缩放场景。混合精度缩放场景涉及多个张量的作除运算。第一处理器首先融合多个张量,得到融合后的张量。之后,接收第二处理器发送的处理指令,该处理指令中携带有用于指示作除运算的处理标识,以及与作除运算相关的数据(例如除数)。第一处理器按照该处理标识指示的作除运算对融合后的张量进行处理。
应用场景二:梯度清零场景。在该场景下,需要对多个张量置零,也就是将各个张量中的全部元素均赋值为零。其中,第一处理器对多个张量进行融合,得到融合后的张量,并接收第二处理器发送的处理指令。接着,第一处理器根据该处理指令中用于指示将全部元素赋值为零的处理标识对融合后的张量进行处理。
应用场景三:融合优化器场景。在深度学习过程中,往往需要通过优化器来确定模型的最优解。其中,优化器也可以理解为优化算法,例如梯度下降法等等。对优化器进行融合的过程中,需要对多个张量进行加、减、乘、除等运算。因此,第一处理器对多个张量进行融合,得到融合后的张量。在接收到第二处理器发送的处理指令之后,第一处理器按照处理指令中处理标识指示的运算方式,并结合处理指令中携带的与运算相关的数据,对融合后的张量进行运算,从而完成张量处理过程。
以上介绍了本申请的张量处理方法,与上述方法对应,本申请还提供张量处理装置。该装置用于通过图8所示的各个模块执行上述图3中的第一处理器执行的张量处理方法。如图8所示,本申请提供张量处理装置,包括如下几个模块。
获得模块801,用于第一处理器获得多个第一张量。
拷贝模块802,用于将多个第一张量拷贝至第二张量,第二张量包括的多个第一张量在第二张量中占用的空间连续。其中,获得模块801以及拷贝模块802所执行的步骤参见上文301中的说明,此处不再进行赘述。
接收模块803,用于第一处理器接收第二处理器发送的第一处理指令,第一处理指令包括第一标识以及第一处理标识,第一标识用于指示第二张量,第一处理标识用于指示第一处理操作。
处理模块804,用于第一处理器按照第一处理标识指示的第一处理操作对第一标识指示的第二张量进行处理。其中,接收模块803以及处理模块804所执行的步骤参见上文305中的说明,此处不再进行赘述。
在一种可能的实现方式中,拷贝模块802用于第一处理器接收第二处理器发送的多个拷贝指令,多个拷贝指令与多个第一张量一一对应,多个拷贝指令中的任一拷贝指令包括第二标识,第二标识用于指示任一拷贝指令对应的第一张量;第一处理器获得第二标识指示的第一张量,得到多个第一张量,将多个第一张量拷贝至第二张量。
在一种可能的实现方式中,多个拷贝指令中的任一拷贝指令还包括第一地址信息,第一地址信息用于指示第一地址,拷贝模块802用于对于任一第一张量,第一处理器将任一第一张量拷贝至第二张量中的第一地址处,第一地址是任一第一张量对应的拷贝指令包括的第一地址信息指示的地址。
在一种可能的实现方式中,多个拷贝指令是第二处理器按照目标顺序发送的指令,拷贝模块802用于第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量中。
在一种可能的实现方式中,接收模块803,还用于第一处理器接收第二处理器发送的创建指令,创建指令包括空间信息,空间信息用于指示空间占用量,空间占用量基于多个第一张量占用的空间之和确定;
装置还包括:创建模块,用于第一处理器根据空间信息指示的空间占用量创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。
在一种可能的实现方式中,创建指令还包括第二地址信息,第二地址信息用于指示第二地址,创建模块,用于第一处理器在第二地址信息指示的第二地址处,根据空间信息指示的空间占用量创建第二张量。
在一种可能的实现方式中,接收模块803,还用于第一处理器接收第二处理器发送的删除指令,删除指令包括第三标识,第三标识用于指示待删除的第一张量;
装置还包括:删除模块,用于第一处理器删除第三标识指示的第一张量。
在一种可能的实现方式中,装置模块,还用于第一处理器接收第二处理器发送的第二处理指令,第二处理指令包括第四标识以及第二处理标识,第四标识用于指示第三张量,第三张量包括第二张量包括的多个第一张量中的部分第一张量,第二处理标识用于指示第二处理操作;
处理模块804,还用于第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。
在一种可能的实现方式中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。
如图9所示,本申请还提供了一种张量处理装置,该装置用于通过图9所示的各个模块执行上述图3中第二处理器执行的张量处理方法。该装置包括如下的几个模块。
确定模块901,用于第二处理器确定用于指示第二张量的第一标识,第二张量包括的多个第一张量在第二张量中占用的空间连续,第二张量包括的多个第一张量由第一处理器拷贝多个第一张量得到;
确定模块901,还用于第二处理器确定用于指示第二张量对应的第一处理操作的第一处理标识。确定模块901所执行的步骤参见上文302及303中的说明,此处不再进行赘述。
发送模块902,用于第二处理器向第一处理器发送携带有第一标识以及第一处理标识的第一处理指令,第一处理指令用于第一处理器按照第一处理标识指示的第一处理操作对第一标识指示的第二张量进行处理。发送模块902所执行的步骤参见上文304中的说明,此处不再进行赘述。
在一种可能的实现方式中,确定模块901,还用于第二处理器确定用于指示多个第一张量的多个第二标识,多个第一张量与多个第二标识一一对应;
发送模块902,还用于第二处理器向第一处理器发送携带有多个第二标识的多个拷贝指令,多个第二标识与多个拷贝指令一一对应,多个拷贝指令用于第一处理器将多个第二标识指示的多个第一张量拷贝至第二张量。
在一种可能的实现方式中,确定模块901,还用于对于任一第一张量,第二处理器确定用于指示任一第一张量对应的第一地址的第一地址信息;第二处理器将第一地址信息携带于任一第一张量对应的拷贝指令中,携带有第一地址信息的拷贝指令用于第一处理器将任一第一张量拷贝至第一地址信息指示的第一地址处。
在一种可能的实现方式中,发送模块902,用于第二处理器按照目标顺序向第一处理器发送多个拷贝指令,多个拷贝指令用于第一处理器按照目标顺序依次将多个第一张量拷贝至第二张量。
在一种可能的实现方式中,确定模块901,还用于第二处理器基于多个第一张量占用的空间之和确定空间占用量;第二处理器确定用于指示空间占用量的空间信息;
发送模块902,还用于向第一处理器发送携带有空间信息的创建指令,创建指令用于第一处理器创建第二张量,第二张量占用的空间与空间信息指示的空间占用量相同。
在一种可能的实现方式中,确定模块901,还用于第二处理器确定用于指示第二张量对应的第二地址的第二地址信息,将第二地址信息携带于创建指令中,携带有第二地址信息的创建指令用于第一处理器将第二张量创建于第二地址信息指示的第二地址处。
在一种可能的实现方式中,确定模块901,还用于第二处理器确定用于指示待删除的第一张量的第三标识;
发送模块902,还用于第二处理器向第一处理器发送携带有第三标识的删除指令,删除指令用于第一处理器删除第三标识指示的第一张量。
在一种可能的实现方式中,待删除的第一张量是第二处理器接收的目标指令中指示的第一张量,或者是未被引用的时长超过目标阈值的第一张量。
在一种可能的实现方式中,确定模块901,还用于第二处理器确定用于指示第三张量的第四标识,第三张量包括第二张量包括的多个第一张量中的部分第一张量;第二处理器确定用于指示第三张量对应的第二处理操作的第二处理标识;
发送模块902,还用于第二处理器向第一处理器发送携带有第四标识以及第二处理标识的第二处理指令,第二处理指令用于第一处理器按照第二处理标识指示的第二处理操作对第四标识指示的第三张量进行处理。
在一种可能的实现方式中,响应于第三张量包括的第一张量的数量为多个,则第三张量包括的多个第一张量为第二张量中相邻的第一张量。
应理解的是,上述图8及图9提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种张量处理设备,该设备包括第一处理器和第二处理器,该第一处理器用于执行上述图3所示的方法实施例中第一处理器执行的方法,该第二处理器用于执行上述图3所示的方法实施例中第二处理器执行的方法。
参见图10,图10示出了本申请一示例性的张量处理设备1000的结构示意图。图10所示的张量处理设备1000用于执行上述图3所示的张量处理方法所涉及的操作。
如图10所示,张量处理设备1000包括处理器1001、处理器1005、存储器1003以及至少一个通信接口1004。
处理器1001和处理器1005例如是通用CPU、数字信号处理器(digital signalprocessor,DSP)、网络处理器(network processer,NP)、GPU、神经网络处理器(neural-network processing units,NPU)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路或专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、FPGA、通用阵列逻辑(genericarray logic,GAL)或其任意组合。其可以实现或执行结合本申请公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,张量处理设备1000还包括总线。总线用于在张量处理设备1000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1003例如是独立存在,并通过总线与处理器1001和处理器1005相连接。存储器1003也可以和处理器1001、处理器1005集成在一起。
通信接口1004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(radio access network,RAN)或无线局域网(wirelesslocal area network,WLAN)等。通信接口1004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口1004可以为以太(Ethernet)接口,如:快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口,异步传输模式(Asynchronous TransferMode,ATM)接口,WLAN接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请的一些实施方式中,通信接口1004可以用于张量处理设备1000与其他设备进行通信。
在具体实现中,作为一些实施方式,处理器1001和处理器1005可以包括一个或多个CPU,如图10中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在一些实施方式中,存储器1003用于存储执行本申请方案的程序代码1010,处理器1001和处理器1005可以执行存储器1003中存储的程序代码1010。也即是,张量处理设备1000可以通过处理器1001、处理器1005以及存储器1003中的程序代码1010,来实现方法实施例提供的张量处理方法。程序代码1010中可以包括一个或多个软件模块。可选地,处理器1001和处理器1005自身也可以存储执行本申请方案的程序代码或指令。
在具体实施过程中,本申请的张量处理设备1000中的处理器1001可对应于上述方法实施例中的第一处理器,处理器1001读取存储器1003中的指令,以执行方法实施例中第一处理器所执行的全部或部分操作。处理器1001还可对应于上述图8所示的装置,图8所示的装置中的每个功能模块采用张量处理设备1000的软件实现。换句话说,图8所示的装置包括的功能模块为处理器1001读取存储器1003中存储的程序代码1010后生成的。
在具体实施过程中,本申请的张量处理设备1000中的处理器1005可对应于上述方法实施例中的第二处理器,处理器1005读取存储器1003中的指令,以执行方法实施例中第二处理器所执行的全部或部分操作。处理器1005还可对应于上述图9所示的装置,图9所示的装置中的每个功能模块采用张量处理设备1000的软件实现。换句话说,图9所示的装置包括的功能模块为处理器1005读取存储器1003中存储的程序代码1010后生成的。
其中,图3所示的张量处理方法的各步骤通过张量处理设备1000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例提供了一种张量处理装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述方法实施例中第一处理器所执行的方法。
本申请实施例提供了一种张量处理装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述方法实施例中第二处理器所执行的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
本申请实施例提供了一种计算机程序(产品),计算机程序(产品)包括:计算机程序代码,当计算机程序代码被计算机运行时,使得计算机执行上述任一种示例性的张量处理方法。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储程序或指令,当程序或指令在计算机上运行时,上述任一种示例性的张量处理方法被执行。
本申请实施例提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述任一种示例性的张量处理方法。
本申请实施例提供了另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述各方面中的方法。
在上述实施方式中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
在本申请的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括计算机可读介质等等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法中的对应过程,在此不再赘述。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。
另外,在本申请各个实施方式中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一设备可以被称为第二设备,并且类似地,第二设备可以被称为第一设备。第一设备和第二设备都可以是通信,并且在某些情况下,可以是单独且不同的设备。
还应理解,在本申请的各个实施方式中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上。本文中术语“系统”和“网络”经常可互换使用。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和其它信息确定B。
还应理解,说明书通篇中提到的“一个实施方式”、“一实施方式”、“一种可能的实现方式”意味着与实施方式或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施方式中。因此,在整个说明书各处出现的“在一个实施方式中”或“在一实施方式中”、“一种可能的实现方式”未必一定指相同的实施方式。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施方式中。
以上所述,以上实施方式仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施方式对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施方式技术方案的范围。
Claims (40)
1.一种张量处理方法,其特征在于,所述方法包括:
第一处理器获得多个第一张量;
所述第一处理器将所述多个第一张量拷贝至第二张量,所述多个第一张量在所述第二张量中占用的空间连续;
所述第一处理器根据所述第二处理器的指示,对所述第二张量进行第一处理操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述第一处理器接收所述第二处理器发送的第一处理指令,所述第一处理指令包括第一标识以及第一处理标识,所述第一标识用于指示所述第二张量,所述第一处理标识用于指示所述第一处理操作。
3.根据权利要求1或2所述的方法,其特征在于,所述第一处理器获得多个第一张量,将所述多个第一张量拷贝至第二张量,包括:
所述第一处理器接收所述第二处理器发送的多个拷贝指令,所述多个拷贝指令与所述多个第一张量一一对应,所述多个拷贝指令中的任一拷贝指令包括第二标识,所述第二标识用于指示所述任一拷贝指令对应的第一张量;
所述第一处理器获得所述第二标识指示的第一张量,得到所述多个第一张量,将所述多个第一张量拷贝至所述第二张量。
4.根据权利要求3所述的方法,其特征在于,所述多个拷贝指令中的任一拷贝指令还包括第一地址信息,所述第一地址信息用于指示第一地址,所述将所述多个第一张量拷贝至所述第二张量,包括:
对于任一第一张量,所述第一处理器将所述任一第一张量拷贝至所述第二张量中的第一地址处,所述第一地址是所述任一第一张量对应的拷贝指令包括的第一地址信息指示的地址。
5.根据权利要求3所述的方法,其特征在于,所述多个拷贝指令是所述第二处理器按照目标顺序发送的指令,所述将所述多个第一张量拷贝至所述第二张量,包括:
所述第一处理器按照所述目标顺序依次将所述多个第一张量拷贝至所述第二张量中。
6.根据权利要求1-5任一所述的方法,其特征在于,所述第一处理器获得多个第一张量之前,所述方法还包括:
所述第一处理器接收所述第二处理器发送的创建指令,所述创建指令包括空间信息,所述空间信息用于指示空间占用量,所述空间占用量基于所述多个第一张量占用的空间之和确定;
所述第一处理器根据所述空间信息指示的空间占用量创建所述第二张量,所述第二张量占用的空间与所述空间信息指示的空间占用量相同。
7.根据权利要求6所述的方法,其特征在于,所述创建指令还包括第二地址信息,所述第二地址信息用于指示第二地址,所述第一处理器根据所述空间信息指示的空间占用量创建所述第二张量,包括:
所述第一处理器在所述第二地址信息指示的第二地址处,根据所述空间信息指示的空间占用量创建所述第二张量。
8.根据权利要求1-7任一所述的方法,其特征在于,所述第一处理器获得多个第一张量,将所述多个第一张量拷贝至第二张量之后,所述方法还包括:
所述第一处理器接收所述第二处理器发送的删除指令,所述删除指令包括第三标识,所述第三标识用于指示待删除的第一张量;
所述第一处理器删除所述第三标识指示的第一张量。
9.根据权利要求1-8任一所述的方法,其特征在于,所述方法还包括:
所述第一处理器接收所述第二处理器发送的第二处理指令,所述第二处理指令包括第四标识以及第二处理标识,所述第四标识用于指示第三张量,所述第三张量包括所述第二张量包括的所述多个第一张量中的部分第一张量,所述第二处理标识用于指示第二处理操作;
所述第一处理器按照所述第二处理标识指示的第二处理操作对所述第四标识指示的第三张量进行处理。
10.根据权利要求9所述的方法,其特征在于,响应于所述第三张量包括的第一张量的数量为多个,则所述第三张量包括的多个第一张量为所述第二张量中相邻的第一张量。
11.一种张量处理方法,其特征在于,所述方法包括:
第二处理器确定用于指示第二张量的第一标识,所述第二张量包括的多个第一张量在所述第二张量中占用的空间连续,所述第二张量包括的多个第一张量由第一处理器拷贝多个第一张量得到;
所述第二处理器确定用于指示所述第二张量对应的第一处理操作的第一处理标识;
所述第二处理器向所述第一处理器发送携带有所述第一标识以及所述第一处理标识的第一处理指令,所述第一处理指令用于所述第一处理器按照所述第一处理标识指示的第一处理操作对所述第一标识指示的第二张量进行处理。
12.根据权利要求11所述的方法,其特征在于,所述第二处理器确定用于指示第二张量的第一标识之前,所述方法还包括:
所述第二处理器确定用于指示所述多个第一张量的多个第二标识,所述多个第一张量与所述多个第二标识一一对应;
所述第二处理器向所述第一处理器发送携带有所述多个第二标识的多个拷贝指令,所述多个第二标识与所述多个拷贝指令一一对应,所述多个拷贝指令用于所述第一处理器将所述多个第二标识指示的多个第一张量拷贝至所述第二张量。
13.根据权利要求12所述的方法,其特征在于,所述第二处理器向所述第一处理器发送携带有所述多个第二标识的多个拷贝指令之前,所述方法还包括:
对于任一第一张量,所述第二处理器确定用于指示所述任一第一张量对应的第一地址的第一地址信息;
所述第二处理器将所述第一地址信息携带于所述任一第一张量对应的拷贝指令中,携带有所述第一地址信息的拷贝指令用于所述第一处理器将所述任一第一张量拷贝至所述第一地址信息指示的第一地址处。
14.根据权利要求12所述的方法,其特征在于,所述第二处理器向所述第一处理器发送携带有所述多个第二标识的多个拷贝指令,包括:
所述第二处理器按照目标顺序向所述第一处理器发送所述多个拷贝指令,所述多个拷贝指令用于第一处理器按照所述目标顺序依次将所述多个第一张量拷贝至所述第二张量。
15.根据权利要求11-14任一所述的方法,其特征在于,所述第二处理器确定用于指示第二张量的第一标识之前,所述方法还包括:
所述第二处理器基于所述多个第一张量占用的空间之和确定空间占用量;
所述第二处理器确定用于指示所述空间占用量的空间信息,向所述第一处理器发送携带有所述空间信息的创建指令,所述创建指令用于所述第一处理器创建所述第二张量,所述第二张量占用的空间与所述空间信息指示的空间占用量相同。
16.根据权利要求15所述的方法,其特征在于,所述向所述第一处理器发送携带有所述空间信息的创建指令之前,所述方法还包括:
所述第二处理器确定用于指示所述第二张量对应的第二地址的第二地址信息,将所述第二地址信息携带于所述创建指令中,携带有所述第二地址信息的创建指令用于所述第一处理器将所述第二张量创建于所述第二地址信息指示的第二地址处。
17.根据权利要求11-16任一所述的方法,其特征在于,所述方法还包括:
所述第二处理器确定用于指示待删除的第一张量的第三标识;
所述第二处理器向所述第一处理器发送携带有所述第三标识的删除指令,所述删除指令用于所述第一处理器删除所述第三标识指示的第一张量。
18.根据权利要求17所述的方法,其特征在于,所述待删除的第一张量是所述第二处理器接收的目标指令中指示的第一张量,或者是未被引用的时长超过目标阈值的第一张量。
19.根据权利要求11-18任一所述的方法,其特征在于,所述方法还包括:
所述第二处理器确定用于指示第三张量的第四标识,所述第三张量包括所述第二张量包括的多个第一张量中的部分第一张量;
所述第二处理器确定用于指示所述第三张量对应的第二处理操作的第二处理标识;
所述第二处理器向所述第一处理器发送携带有所述第四标识以及所述第二处理标识的第二处理指令,所述第二处理指令用于所述第一处理器按照第二处理标识指示的第二处理操作对所述第四标识指示的第三张量进行处理。
20.一种张量处理装置,其特征在于,所述装置包括:
获得模块,用于获得多个第一张量;
拷贝模块,用于将所述多个第一张量拷贝至第二张量,所述第二张量包括的所述多个第一张量在所述第二张量中占用的空间连续;
处理模块,用于根据所述第二处理器的指示,对所述第二张量进行第一处理操作。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:接收模块,用于接收第二处理器发送的第一处理指令,所述第一处理指令包括第一标识以及第一处理标识,所述第一标识用于指示所述第二张量,所述第一处理标识用于指示第一处理操作。
22.根据权利要求21所述的装置,其特征在于,所述拷贝模块用于接收所述第二处理器发送的多个拷贝指令,所述多个拷贝指令与所述多个第一张量一一对应,所述多个拷贝指令中的任一拷贝指令包括第二标识,所述第二标识用于指示所述任一拷贝指令对应的第一张量;获得所述第二标识指示的第一张量,得到所述多个第一张量,将所述多个第一张量拷贝至所述第二张量。
23.根据权利要求22所述的装置,其特征在于,所述多个拷贝指令中的任一拷贝指令还包括第一地址信息,所述第一地址信息用于指示第一地址,所述拷贝模块用于对于任一第一张量,所述第一处理器将所述任一第一张量拷贝至所述第二张量中的第一地址处,所述第一地址是所述任一第一张量对应的拷贝指令包括的第一地址信息指示的地址。
24.根据权利要求20-23任一所述的装置,其特征在于,所述接收模块,还用于接收所述第二处理器发送的创建指令,所述创建指令包括空间信息,所述空间信息用于指示空间占用量,所述空间占用量基于所述多个第一张量占用的空间之和确定;
所述装置还包括:创建模块,用于根据所述空间信息指示的空间占用量创建所述第二张量,所述第二张量占用的空间与所述空间信息指示的空间占用量相同。
25.根据权利要求24所述的装置,其特征在于,所述创建指令还包括第二地址信息,所述第二地址信息用于指示第二地址,所述创建模块,用于在所述第二地址信息指示的第二地址处,根据所述空间信息指示的空间占用量创建所述第二张量。
26.根据权利要求20-25任一所述的装置,其特征在于,所述接收模块,还用于接收所述第二处理器发送的删除指令,所述删除指令包括第三标识,所述第三标识用于指示待删除的第一张量;
所述装置还包括:删除模块,用于删除所述第三标识指示的第一张量。
27.根据权利要求20-26任一所述的装置,其特征在于,所述装置模块,还用于接收所述第二处理器发送的第二处理指令,所述第二处理指令包括第四标识以及第二处理标识,所述第四标识用于指示第三张量,所述第三张量包括所述第二张量包括的所述多个第一张量中的部分第一张量,所述第二处理标识用于指示第二处理操作;
所述处理模块,还用于按照所述第二处理标识指示的第二处理操作对所述第四标识指示的第三张量进行处理。
28.根据权利要求27所述的装置,其特征在于,响应于所述第三张量包括的第一张量的数量为多个,则所述第三张量包括的多个第一张量为所述第二张量中相邻的第一张量。
29.一种张量处理装置,其特征在于,所述装置包括:
确定模块,用于确定用于指示第二张量的第一标识,所述第二张量包括的多个第一张量在所述第二张量中占用的空间连续,所述第二张量包括的多个第一张量由第一处理器拷贝多个第一张量得到;
所述确定模块,还用于确定用于指示所述第二张量对应的第一处理操作的第一处理标识;
发送模块,用于向所述第一处理器发送携带有所述第一标识以及所述第一处理标识的第一处理指令,所述第一处理指令用于所述第一处理器按照所述第一处理标识指示的第一处理操作对所述第一标识指示的第二张量进行处理。
30.根据权利要求29所述的装置,其特征在于,所述确定模块,还用于确定用于指示所述多个第一张量的多个第二标识,所述多个第一张量与所述多个第二标识一一对应;
所述发送模块,还用于向所述第一处理器发送携带有所述多个第二标识的多个拷贝指令,所述多个第二标识与所述多个拷贝指令一一对应,所述多个拷贝指令用于所述第一处理器将所述多个第二标识指示的多个第一张量拷贝至所述第二张量。
31.根据权利要求30所述的装置,其特征在于,所述确定模块,还用于对于任一第一张量,确定用于指示所述任一第一张量对应的第一地址的第一地址信息;将所述第一地址信息携带于所述任一第一张量对应的拷贝指令中,携带有所述第一地址信息的拷贝指令用于所述第一处理器将所述任一第一张量拷贝至所述第一地址信息指示的第一地址处。
32.根据权利要求30所述的装置,其特征在于,所述发送模块,用于按照目标顺序向所述第一处理器发送所述多个拷贝指令,所述多个拷贝指令用于第一处理器按照所述目标顺序依次将所述多个第一张量拷贝至所述第二张量。
33.根据权利要求29-32任一所述的装置,其特征在于,所述确定模块,还用于基于所述多个第一张量占用的空间之和确定空间占用量;确定用于指示所述空间占用量的空间信息;
所述发送模块,还用于向所述第一处理器发送携带有所述空间信息的创建指令,所述创建指令用于所述第一处理器创建所述第二张量,所述第二张量占用的空间与所述空间信息指示的空间占用量相同。
34.根据权利要求33所述的装置,其特征在于,所述确定模块,还用于确定用于指示所述第二张量对应的第二地址的第二地址信息,将所述第二地址信息携带于所述创建指令中,携带有所述第二地址信息的创建指令用于所述第一处理器将所述第二张量创建于所述第二地址信息指示的第二地址处。
35.根据权利要求29-34任一所述的装置,其特征在于,所述确定模块,还用于确定用于指示待删除的第一张量的第三标识;
所述发送模块,还用于向所述第一处理器发送携带有所述第三标识的删除指令,所述删除指令用于所述第一处理器删除所述第三标识指示的第一张量。
36.根据权利要求35所述的装置,其特征在于,所述待删除的第一张量是所述第二处理器接收的目标指令中指示的第一张量,或者是未被引用的时长超过目标阈值的第一张量。
37.根据权利要求29-36任一所述的装置,其特征在于,所述确定模块,还用于确定用于指示第三张量的第四标识,所述第三张量包括所述第二张量包括的多个第一张量中的部分第一张量;确定用于指示所述第三张量对应的第二处理操作的第二处理标识;
所述发送模块,还用于向所述第一处理器发送携带有所述第四标识以及所述第二处理标识的第二处理指令,所述第二处理指令用于所述第一处理器按照第二处理标识指示的第二处理操作对所述第四标识指示的第三张量进行处理。
38.根据权利要求37所述的装置,其特征在于,响应于所述第三张量包括的第一张量的数量为多个,则所述第三张量包括的多个第一张量为所述第二张量中相邻的第一张量。
39.一种张量处理设备,其特征在于,所述设备包括第一处理器以及第二处理器,所述第一处理器用于执行权利要求1-9中任一所述的张量处理方法,所述第二处理器用于执行权利要求10-19中任一所述的张量处理方法。
40.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1-19中任一所述的张量处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211196514.XA CN116127259B (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021100438590 | 2021-01-13 | ||
CN202110043859 | 2021-01-13 | ||
CN202110185525.7A CN114764489A (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
CN202211196514.XA CN116127259B (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110185525.7A Division CN114764489A (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116127259A true CN116127259A (zh) | 2023-05-16 |
CN116127259B CN116127259B (zh) | 2024-07-30 |
Family
ID=82364824
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211196514.XA Active CN116127259B (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
CN202110185525.7A Pending CN114764489A (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110185525.7A Pending CN114764489A (zh) | 2021-01-13 | 2021-02-10 | 张量处理方法、装置、设备及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230350676A1 (zh) |
EP (1) | EP4258108A4 (zh) |
CN (2) | CN116127259B (zh) |
WO (1) | WO2022151950A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042094A1 (en) * | 2018-06-30 | 2019-02-07 | Intel Corporation | Apparatus and method for coherent, accelerated conversion between data representations |
CN110780921A (zh) * | 2019-08-30 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
CN111291240A (zh) * | 2018-12-06 | 2020-06-16 | 华为技术有限公司 | 处理数据的方法和数据处理装置 |
CN111324294A (zh) * | 2018-12-17 | 2020-06-23 | 地平线(上海)人工智能技术有限公司 | 存取张量数据的方法和装置 |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013036874A1 (en) * | 2011-09-09 | 2013-03-14 | University Of Utah Research Foundation | Genomic tensor analysis for medical assessment and prediction |
US20160041827A1 (en) * | 2011-12-23 | 2016-02-11 | Jesus Corbal | Instructions for merging mask patterns |
CN105260554A (zh) * | 2015-10-27 | 2016-01-20 | 武汉大学 | 一种基于gpu集群的多维大数据因子化方法 |
CN111695682B (zh) * | 2019-03-15 | 2022-11-01 | 上海寒武纪信息科技有限公司 | 数据处理方法及装置 |
CN112183712A (zh) * | 2019-07-03 | 2021-01-05 | 安徽寒武纪信息科技有限公司 | 深度学习算法的编译方法、装置及相关产品 |
-
2021
- 2021-02-10 CN CN202211196514.XA patent/CN116127259B/zh active Active
- 2021-02-10 CN CN202110185525.7A patent/CN114764489A/zh active Pending
- 2021-12-24 EP EP21919137.6A patent/EP4258108A4/en active Pending
- 2021-12-24 WO PCT/CN2021/141106 patent/WO2022151950A1/zh unknown
-
2023
- 2023-07-12 US US18/350,907 patent/US20230350676A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042094A1 (en) * | 2018-06-30 | 2019-02-07 | Intel Corporation | Apparatus and method for coherent, accelerated conversion between data representations |
CN111291240A (zh) * | 2018-12-06 | 2020-06-16 | 华为技术有限公司 | 处理数据的方法和数据处理装置 |
CN111324294A (zh) * | 2018-12-17 | 2020-06-23 | 地平线(上海)人工智能技术有限公司 | 存取张量数据的方法和装置 |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN110780921A (zh) * | 2019-08-30 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
Non-Patent Citations (1)
Title |
---|
张骁;胡清华;廖士中;: "基于多源共享因子的多张量填充", 中国科学:信息科学, no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN114764489A (zh) | 2022-07-19 |
US20230350676A1 (en) | 2023-11-02 |
EP4258108A4 (en) | 2024-07-31 |
CN116127259B (zh) | 2024-07-30 |
EP4258108A1 (en) | 2023-10-11 |
WO2022151950A1 (zh) | 2022-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
US11334382B2 (en) | Technologies for batching requests in an edge infrastructure | |
US20200265009A1 (en) | Blockchain-based data migration method and apparatus | |
US12117956B2 (en) | Writes to multiple memory destinations | |
CN106844041B (zh) | 内存管理的方法及内存管理系统 | |
WO2017008675A1 (zh) | 一种用于虚拟化环境下传输数据的方法与设备 | |
CN108984465B (zh) | 一种消息传输方法及设备 | |
US10235047B2 (en) | Memory management method, apparatus, and system | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
US20170256023A1 (en) | Solid state storage local image processing system and method | |
CN109144406B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN110119304A (zh) | 一种中断处理方法、装置及服务器 | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
CN112256460A (zh) | 进程间通信方法、装置、电子设备及计算机可读存储介质 | |
US20240220334A1 (en) | Data processing method in distributed system, and related system | |
CN116127259B (zh) | 张量处理方法、装置、设备及计算机可读存储介质 | |
CN111435323B (zh) | 信息的传输方法、装置、终端、服务器及存储介质 | |
US11567683B2 (en) | Technologies for providing edge deduplication | |
CN107391541A (zh) | 一种实时数据合并方法和装置 | |
CN111797497A (zh) | 一种用于电磁暂态并行仿真的通讯方法及系统 | |
CN117349075A (zh) | 一种数据处理方法及相关设备 | |
US11451435B2 (en) | Technologies for providing multi-tenant support using one or more edge channels | |
CN112948298A (zh) | 一种报文处理方法及装置 | |
CN113805845A (zh) | 随机数序列生成方法和随机数引擎 | |
CN117632820B (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 |