CN114489790A - 数据处理装置、数据处理方法及相关产品 - Google Patents

数据处理装置、数据处理方法及相关产品 Download PDF

Info

Publication number
CN114489790A
CN114489790A CN202011272710.1A CN202011272710A CN114489790A CN 114489790 A CN114489790 A CN 114489790A CN 202011272710 A CN202011272710 A CN 202011272710A CN 114489790 A CN114489790 A CN 114489790A
Authority
CN
China
Prior art keywords
data
tensor
information
descriptor
shape
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
Application number
CN202011272710.1A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202011272710.1A priority Critical patent/CN114489790A/zh
Priority to PCT/CN2021/119426 priority patent/WO2022100286A1/zh
Publication of CN114489790A publication Critical patent/CN114489790A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)

Abstract

本披露公开了一种数据处理装置、数据处理方法及相关产品。该数据处理装置可以实现为计算装置包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案提供了涉及张量数据的指令系统,其可以缩短数据存取时间,提高机器的处理效率。

Description

数据处理装置、数据处理方法及相关产品
技术领域
本披露涉及处理器领域,特别是涉及一种数据处理装置、数据处理方法、芯片和板卡。
背景技术
指令系统是计算机软件和硬件交互的接口,是计算机系统结构中一个非常重要的部分。随着人工智能技术的不断发展,需要处理的数据量和数据维度都在不断增大。因此,如何合理、科学地设计指令,使指令既能给出足够的信息,又能节省存储空间,缩短取指时间,提高机器的性能,这是指令设计中的一个重要问题。
发明内容
为了解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了涉及张量数据的指令系统。通过本披露的指令系统,可以缩短数据存取时间,由此提高机器的处理效率。
在第一方面中,本披露提供一种数据处理装置,包括控制单元、张量接口单元和执行单元,其中:控制单元配置用于获取解码的处理指令,所述处理指令的至少一个操作数包括至少一个描述符,所述描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息;张量接口单元配置用于对所述描述符进行解析;执行单元配置用于在所述控制单元的控制下,基于解析的描述符来执行所述处理指令。
在第二方面中,本披露提供一种芯片,包括前述第一方面任一实施例的数据处理装置。
在第三方面中,本披露提供一种板卡,包括前述第二方面任一实施例的芯片。
在第四方面中,本披露提供一种数据处理方法,该方法包括:获取解码的处理指令,所述处理指令的至少一个操作数包括至少一个描述符,所述描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息;对所述描述符进行解析;以及基于解析的描述符来执行所述处理指令。
通过如上所提供的数据处理装置、数据处理方法、芯片和板卡,本披露实施例在指令的操作数中包括描述符来实现对张量数据信息的快速获取,可以提高机器的处理效率。进一步地,通过将张量数据的形状信息与张量数据的空间信息分离,可以让存储资源与运算分离,从而提高处理灵活度。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1示出根据本披露实施例的数据存储空间的示意图;
图2示出根据本披露实施例的数据分块在数据存储空间中的示意图;
图3示出根据本披露实施例的数据处理装置的示意性框图;
图4示出根据本披露实施例的数据处理方法的示意性流程图;
图5示出根据本披露实施例的一种组合处理装置的结构图;以及
图6示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中可能使用的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
计算机通过执行指令来处理各种数据。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令通常包含下列信息:
(1)操作码(Operation Code,OP),用来表示该指令所要完成的操作(例如,加、减、乘、除、数据传送等),它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。
(2)操作数,用来描述该指令的操作对象。操作数可以涉及被操作对象的数据类型、访存地址、寻址方式等。操作数可以直接给出被操作对象,或者指出被操作对象的存储器地址或寄存器地址(即寄存器名)。
传统的处理器的指令被设计为能够执行基本的单数据标量操作。这里,单数据标量操作指的是指令的每一个操作数都是一个标量数据。然而,随着人工智能技术的发展,在诸如图像处理和模式识别等的任务中,面向的操作数往往是多维向量(即,张量数据)的数据类型,仅仅使用标量操作无法使硬件高效地完成运算任务。因此,如何高效地执行多维的张量数据处理也是当前计算领域亟需解决的问题。
在本披露的实施例中,提供了一种指令系统,其中在指令的操作数中包括描述符,通过该描述符可以快速获取与张量数据相关的信息。具体地,描述符可以指示以下至少一项信息:张量数据的形状信息、张量数据的空间信息。张量数据的形状信息可以用于确定与该操作数对应的张量数据在数据存储空间中的数据地址。张量数据的空间信息可以用于确定指令之间的依赖关系,进而可以确定例如指令的执行顺序。通过将张量数据的形状信息与空间信息分离,也即分别提供张量数据的形状信息和空间信息,可以使得存储资源与运算分离,提高处理灵活度。
在本披露的一些实施例中,描述符可以仅指示张量数据的形状信息。在这些实施例中,描述符的参数只包括形状语义,也即在调用或解析描述符时,其参数只用于表示张量数据的形状信息。在这种情况下,当需要判断指令之间的依赖关系时,其依赖关系可以通过其他方式(例如,软件)来保证。例如,可以通过指令串行、同步(sync)、屏障(barrier)等机制来确保依赖关系。后面将详细描述张量数据的形状信息的各种可能实现方式。
在本披露的另一些实施例中,描述符可以仅指示张量数据的空间信息。在这些实施例中,描述符的参数只包括空间语义,也即在调用或解析描述符时,其参数只用于判断指令之间的依赖关系。指令执行所需的其他信息,例如张量数据的形状信息、地址等,可以由当前指令的其他参数或其他相关指令携带。
在一种可能的实现中,张量数据的空间信息可以通过空间标识(ID)来指示。空间ID也可以称为空间别名,其指代用于存储对应的张量数据的一个空间区域,该空间区域可以是一段连续的空间,也可以是多段空间,本披露对于空间区域的具体组成形式没有限制。
不同的空间ID表示所指向的空间区域不存在依赖关系。例如,可以通过使得不同的空间ID所指向的空间区域相互不重叠来确保不存在依赖关系。这样,当指令例如涉及写操作时,其通过不同的空间ID所访问的空间是不重叠的。换言之,除其他条件之外,当两条指令通过不同的空间ID访问对应空间区域内的数据时,这两条指令之间不存在依赖关系;反之,当两条指令通过相同的空间ID访问对应空间区域内的数据时,这两条指令之间存在依赖关系。由此,可以根据张量数据的空间ID直接判断指令之间的依赖关系,进而可以基于依赖关系做出指令是否可以乱序执行、是否需要同步等对应的处理。
可选地或附加地,空间ID可以与一些预设条件相结合来判断指令的依赖关系。预设条件例如可以包括但不限于,先注册所需空间ID、空间ID未使用完毕不可注销等。本披露对预设条件不作限制。
相比于本披露实施例中通过空间ID判断指令依赖关系的方案,在提供数据的存储地址并基于存储地址来判断指令依赖关系的方案中,不能直观地判断指令的依赖关系,而是需要根据存储地址进行计算,因此降低了处理效率。例如,在这些方案中,当采用较粗粒度时,需要根据所提供的存储地址判断是否访问同一部件,从而判断指令的依赖关系;当采用较细粒度时,需要根据所提供的存储地址判断指令要访问的地址空间是否交叠,从而判断指令的依赖关系。与之相比,在本披露的一些实施例中,通过空间ID来判断指令之间的依赖关系,只需要判断两条指令所关联的空间ID是否相同。无论这两个空间ID是否实际真的有依赖关系,只要两个空间ID相同,或者预设条件确定有依赖关系,则可以认为这两个指令之间存在依赖关系。这种方式的优势在于,对于硬件而言,能够简化其判断过程,提高处理效率;对于软件而言,能够由软件来定义和支配空间ID,提供了较大的自主性。
在本披露的又一些实施例中,描述符可以既指示张量数据的形状信息,又指示张量数据的空间信息,但是二者相互独立使用。换言之,描述符可以包括两部分信息,一部分只用于表示张量数据的形状信息,以用于确定与对应的张量数据在数据存储空间中的数据地址;另一部分只用于表示张量数据的空间信息,以用于判断指令之间的依赖关系。这两部分信息可以以各种方式存在。
在一种可能的实现中,可以使用不同类型的描述符来分别表示形状信息和空间信息。在这种实现中,可以分别创建形状描述符和空间描述符。使用时,指令中的每个操作数可以分别指定两个标识(ID),一个形状ID,用于指示张量数据的形状信息,一个空间ID,用于指示张量数据的空间信息。两个ID之间的相关性可以通过软件来绑定,也即,空间ID与形状ID可以自由组合。在使用时,可以由软件来选择二者的相关性。由于空间ID仅用于空间ID之间的比较以判断指令的依赖关系,因此,空间ID本身可以无需存储,只需要表明这种关系即可。
在另一种可能的实现中,形状信息和空间信息可以包括在同一描述符的不同部分中。例如,该描述符可以包括第一部分和第二部分,其中第一部分用于指示空间信息,例如第一部分可以是空间ID;第二部分用于指示形状信息。例如,对于描述符Tensor,其包括第一部分sub_tensor1和第二部分sub_tenor2。sub_tensor1指示空间ID,sub_tensor2指示形状信息。
取决于形状信息的具体组成,描述符的第二部分可以有多种形式。在一种实现中,第二部分可以直接是张量数据的各个维度的尺寸、偏移量等信息。在另一种实现中,第二部分可以采取嵌套方式指示张量数据的维度信息。例如,第二部分可以根据维度将张量数据的形状信息划分为各个维度的描述符。举个例子,对于具有x、y、z三个维度的张量数据,第二部分sub_tensor2可以进一步包括subsub_tensor_x、subsub_tensor_y、subsub_tensor_z,其用于分别描述对应维度的形状信息。本披露对于描述符各部分的具体形式没有限制。
由上面的描述可知,本披露的实施例提供了一种指令系统,其中在指令的操作数中包括描述符,通过该描述符可以快速获取张量数据的形状信息和/或张量数据的空间信息。通过将张量数据的形状信息与空间信息解耦,可以使得存储资源与运算分离,提高处理灵活度。下面将结合附图详细描述张量数据的形状信息的各种可能实现方式。
张量可以包含多种形式的数据组成方式。张量可以是不同维度的,比如标量可以看作是0维张量,向量可以看作1维张量,而矩阵可以是2维或2维以上的张量。张量的形状包括张量的维度、张量各个维度的尺寸等信息。举例而言,对于三维张量:
x3=[[[1,2,3],[4,5,6]];[[7,8,9],[10,11,12]]]
该张量的形状或维度可以表示为X3=(2,2,3),也即通过三个参数表示该张量为三维张量,且该张量的第一维度的尺寸为2、第二维度的尺寸为2、而第三维度的尺寸为3。在存储器中存储张量数据时,根据其数据地址(或存储区域)无法确定张量数据的形状,进而也无法确定多个张量数据之间相互关系等相关信息,导致处理器对张量数据的存取效率较低。
在一种可能的实现方式中,可以用描述符指示N维的张量数据的形状,N为正整数,例如N=1、2或3,或者为零。上面示例中的三维张量用描述符可以表示为(2,2,3)。需要说明的是,本披露对于描述符指示张量形状的方式没有限制。
在一种可能的实现方式中,N的取值可以根据张量数据的维数(也称为阶数)来确定,也可以根据张量数据的使用需要进行设定。例如,在N的取值为3时,张量数据为三维的张量数据,描述符可用来指示该三维的张量数据在三个维度方向上的形状(例如偏移量、尺寸等)。应当理解,本领域技术人员可以根据实际需要对N的取值进行设置,本披露对此不作限制。
虽然张量数据可以是多维的,但是因为存储器的布局始终是一维的,因此张量与存储器上的存储之间存在对应关系。张量数据通常被分配在连续的存储空间中,也即可以将张量数据进行一维展开(例如,行优先方式),存储在存储器上。
张量与底层存储之间的这种关系可以通过维度的偏移量(offset)、维度的尺寸(size)、维度的步长(stride)等来表示。维度的偏移量是指在该维度上相对参考位置的偏移。维度的尺寸是指该维度的大小,也即该维度上元素的个数。维度的步长指的是在该维度下,相邻元素之间的间隔,例如上面三维张量的步长为(6,3,1),也即第一维的步长是6,第二维的步长是3,第三维的步长是1。
图1示出根据本披露实施例的数据存储空间的示意图。如图1所示,数据存储空间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)来表示描述符的内容:
Figure BDA0002778197000000081
应当理解,虽然上述示例中,描述符的内容表示的是二维空间,但本领域技术人员可以根据实际情况对描述符的内容表示的具体维度进行设置,本披露对此不作限制。
在一种可能的实现方式中,可以约定描述符的数据基准点在数据存储空间中的基准地址,在基准地址的基础上,根据处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置,确定张量数据的描述符的内容。
举例来说,可以约定描述符的数据基准点在数据存储空间中的基准地址PA_base。例如,可以在数据存储空间21中选取一个数据(例如,位置为(2,2)的数据)作为数据基准点,将该数据在数据存储空间中的物理地址作为基准地址PA_base。可以根据对角位置的两个顶点相对于数据基准点的位置,确定出图1中数据块23的描述符的内容。首先,确定数据块23的对角位置的至少两个顶点相对于数据基准点的位置,例如,使用左上至右下方向的对角位置顶点相对于数据基准点的位置,其中,左上角顶点的相对位置为(x_min,y_min),右下角顶点的相对位置为(x_max,y_max),然后可以根据基准地址PA_base、左上角顶点的相对位置(x_min,y_min)以及右下角顶点的相对位置(x_max,y_max)确定出数据块23的描述符的内容。
在一种可能的实现方式中,可以使用下述公式(2)来表示描述符的内容(基准地址为PA_base):
Figure BDA0002778197000000091
应当理解,虽然上述示例中使用左上角和右下角两个对角位置的顶点来确定描述符的内容,但本领域技术人员可以根据实际需要对对角位置的至少两个顶点的具体顶点进行设置,本披露对此不作限制。
在一种可能的实现方式中,可根据描述符的数据基准点在数据存储空间中的基准地址,以及描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系,确定张量数据的描述符的内容。其中,数据描述位置与数据地址之间的映射关系可以根据实际需要进行设定,例如,描述符所指示的张量数据为三维空间数据时,可以使用函数f(x,y,z)来定义数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,可以使用下述公式(3)来表示描述符的内容:
Figure BDA0002778197000000092
在一种可能的实现方式中,描述符还用于指示N维的张量数据的地址,其中,描述符的内容还包括表示张量数据的地址的至少一个地址参数,例如描述符的内容可以是下式(4):
D:
Figure BDA0002778197000000093
其中PA为地址参数。地址参数可以是逻辑地址,也可以是物理地址。在对描述符进行解析时可以以PA为向量形状的顶点、中间点或预设点中的任意一个,结合X方向和Y方向的形状参数得到对应的数据地址。
在一种可能的实现方式中,张量数据的地址参数包括描述符的数据基准点在该张量数据的数据存储空间中的基准地址,基准地址包括该数据存储空间的起始地址。
在一种可能的实现方式中,描述符还可以包括表示张量数据的地址的至少一个地址参数,例如描述符的内容可以是下式(5):
D:
Figure BDA0002778197000000101
其中PA_start为基准地址参数,不再赘述。
应当理解,本领域技术人员可以根据实际情况对数据描述位置与数据地址之间的映射关系进行设定,本披露对此不作限制。
在一种可能的实现方式中,可以在一个任务中设定约定的基准地址,此任务下指令中的描述符均使用此基准地址,描述符内容中可以包括基于此基准地址的形状参数。可以通过设定此任务的环境参数的方式确定此基准地址。基准地址的相关描述和使用方式可参见上述实施例。此种实现方式下,描述符的内容可以更快速地被映射为数据地址。
在一种可能的实现方式中,可以在各描述符的内容中包含基准地址,则各描述符的基准地址可不同。相对于利用环境参数设定共同的基准地址的方式,此种方式中的各描述符可以更加灵活地描述数据,并使用更大的数据地址空间。
在一种可能的实现方式中,可根据描述符的内容,确定与处理指令的操作数对应的数据在数据存储空间中的数据地址。其中,数据地址的计算由硬件自动完成,且描述符的内容的表示方式不同时,数据地址的计算方法也会不同。本披露对数据地址的具体计算方法不作限制。
例如,操作数中描述符的内容是使用公式(1)表示的,描述符所指示的张量数据在数据存储空间中的偏移量分别为offset_x和offset_y,尺寸为size_x*size_y,那么,该描述符所指示的张量数据在数据存储空间中的起始数据地址PA1(x,y)可以使用下述公式(6)来确定:
PA1(x,y)=PA_start+(offset_y-1)*ori_x+offset_x (6)
根据上述公式(6)确定的数据起始地址PA1(x,y),结合偏移量offset_x和offset_y,以及存储区域的尺寸size_x和size_y,可确定出描述符所指示的张量数据在数据存储空间中的存储区域。
在一种可能的实现方式中,当操作数还包括针对描述符的数据描述位置时,可根据描述符的内容以及数据描述位置,确定操作数对应的数据在数据存储空间中的数据地址。通过这种方式,可以对描述符所指示的张量数据中的部分数据(例如一个或多个数据)进行处理。
例如,操作数中描述符的内容是使用公式(2)表示的,描述符所指示的张量数据在数据存储空间中偏移量分别为offset_x和offset_y,尺寸为size_x*size_y,操作数中包括的针对描述符的数据描述位置为(xq,yq),那么,该描述符所指示的张量数据在数据存储空间中的数据地址PA2(x,y)可以使用下述公式(7)来确定:
PA2(x,y)=PA_start+(offset_y+yq-1)*ori_x+(offset_x+xq) (7)
在一种可能的实现方式中,描述符可以指示分块的数据。数据分块在很多应用中可以有效地加快运算速度,提高处理效率。例如,在图形处理中,卷积运算经常使用数据分块进行快速运算处理。
图2示出根据本披露实施例的数据分块在数据存储空间中的示意图。如图2所示,数据存储空间200同样采用行优先的方式存储二维数据,可通过(x,y)来表示(其中,X轴水平向右,Y轴垂直向下)。X轴方向上的尺寸(每行的尺寸,或总列数)为ori_x(图中未示出),Y轴方向上的尺寸(总行数)为ori_y(图中未示出)。不同于图1的张量数据,图2中存储的张量数据包括多个数据分块。
在这种情况下,描述符需要更多的参数来表示这些数据分块。以X轴(X维度)为例,可以涉及如下参数:ori_x,x.tile.size(分块中的尺寸202),x.tile.stride(分块中的步长204,即第一个小块的第一个点与第二个小块的第一个点的距离),x.tile.num(分块数量,图2中示出为3个分块),x.stride(整体的步长,即第一行的第一个点到第二行第一个点的距离)等。其他维度可以类似地包括对应的参数。
在一种可能的实现方式中,描述符还可以指示相关张量数据的压缩信息。例如,描述符可以包括一个压缩标志位,诸如compress_en,该标志位用于标记关联的张量数据是否被压缩。可选的或附加的,描述符还可以指示所采用的压缩方式或编码方式。例如,描述符可以记录压缩方式compress_base。可选的或附加的,描述符还可以指示所采用的压缩方式或编码方式的压缩参数。
在一种可能的实现方式中,描述符可以包括描述符的标识和/或描述符的内容。其中,描述符的标识用于对描述符进行区分,例如描述符的标识可以为其编号;描述符的内容可以包括表示张量数据的形状的至少一个形状参数。例如,张量数据为3维数据,在该张量数据的三个维度中,其中两个维度的形状参数固定不变,其描述符的内容可包括表示该张量数据的另一个维度的形状参数。
在一种可能的实现方式中,描述符的标识和/或内容可以存储在描述符存储空间(内部存储器),例如寄存器、片上的SRAM或其他介质缓存等。描述符所指示的张量数据可以存储在数据存储空间(内部存储器或外部存储器),例如片上缓存或片下存储器等。本披露对描述符存储空间及数据存储空间的具体位置不作限制。
在一种可能的实现方式中,描述符的标识、内容以及描述符所指示的张量数据可以存储在内部存储器的同一块区域,例如,可使用片上缓存的一块连续区域来存储描述符的相关内容,其地址为ADDR0-ADDR1023。其中,可将地址ADDR0-ADDR63作为描述符存储空间,存储描述符的标识和内容,地址ADDR64-ADDR1023作为数据存储空间,存储描述符所指示的张量数据。在描述符存储空间中,可用地址ADDR0-ADDR31存储描述符的标识,地址ADDR32-ADDR63存储描述符的内容。应当理解,地址ADDR并不限于1位或一个字节,此处用来表示一个地址,是一个地址单位。本领域技术人员可以实际情况确定描述符存储空间、数据存储空间以及其具体地址,本披露对此不作限制。
在一种可能的实现方式中,描述符的标识、内容以及描述符所指示的张量数据可以存储在内部存储器的不同区域。例如,可以将寄存器作为描述符存储空间,在寄存器中存储描述符的标识及内容,将片上缓存作为数据存储空间,存储描述符所指示的张量数据。
在一种可能的实现方式中,在使用寄存器存储描述符的标识和内容时,可以使用寄存器的编号来表示描述符的标识。例如,寄存器的编号为0时,其存储的描述符的标识设置为0。当寄存器中的描述符有效时,可根据描述符所指示的张量数据的大小在缓存空间中分配一块区域用于存储该张量数据。
在一种可能的实现方式中,描述符的标识及内容可存储在内部存储器,描述符所指示的张量数据可存储在外部存储器。例如,可以采用在片上存储描述符的标识及内容、在片下存储描述符所指示的张量数据的方式。
在一种可能的实现方式中,与各描述符对应的数据存储空间的数据地址可以是固定地址。例如,可以为张量数据划分单独的数据存储空间,每个张量数据在数据存储空间的起始地址与描述符一一对应。在这种情况下,负责对计算指令进行解析的电路或模块(例如本披露计算装置外部的实体)可以根据描述符来确定与操作数对应的数据在数据存储空间中的数据地址。
在一种可能的实现方式中,在与描述符对应的数据存储空间的数据地址为可变地址时,描述符还可用于指示N维的张量数据的地址,其中,描述符的内容还可包括表示张量数据的地址的至少一个地址参数。例如,张量数据为3维数据,在描述符指向该张量数据的地址时,描述符的内容可包括表示该张量数据的地址的一个地址参数,例如张量数据的起始物理地址,也可以包括该张量数据的地址的多个地址参数,例如张量数据的起始地址+地址偏移量,或张量数据基于各维度的地址参数。本领域技术人员可以根据实际需要对地址参数进行设置,本披露对此不作限制。
在一种可能的实现方式中,张量数据的地址参数可以包括描述符的数据基准点在该张量数据的数据存储空间中的基准地址。其中,基准地址可根据数据基准点的变化而不同。本披露对数据基准点的选取不作限制。
在一种可能的实现方式中,基准地址可以包括数据存储空间的起始地址。在描述符的数据基准点是数据存储空间的第一个数据块时,描述符的基准地址即为数据存储空间的起始地址。在描述符的数据基准点是数据存储空间中第一个数据块以外的其他数据时,描述符的基准地址即为该数据块在数据存储空间中的地址。
在一种可能的实现方式中,张量数据的形状参数包括以下至少一种:数据存储空间在N个维度方向的至少一个方向上的尺寸、该存储区域在N个维度方向的至少一个方向上的尺寸、该存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置、描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。其中,数据描述位置是描述符所指示的张量数据中的点或区域的映射位置,例如,张量数据为3维数据时,描述符可使用三维空间坐标(x,y,z)来表示该张量数据的形状,该张量数据的数据描述位置可以是使用三维空间坐标(x,y,z)表示的、该张量数据映射在三维空间中的点或区域的位置。
应当理解,本领域技术人员可以根据实际情况选择表示张量数据的形状参数,本披露对此不作限制。通过在数据存取过程中使用描述符,可建立数据之间的关联,从而降低数据存取的复杂度,提高指令处理效率。
图3示出根据本披露实施例的数据处理装置的示意性框图。如图3所示,数据处理装置300包括控制单元310、执行单元320和张量接口单元330。
控制单元310可以配置用于控制数据处理装置300的操作,例如读取存储器或外部传入的指令,对指令进行解码(译码),向相应的部件发出微操作控制信号等。具体地,控制单元310可以配置成根据接收的指令,控制执行单元320和张量接口单元330执行相应的处理。指令可以包括但不限于数据存取指令、运算指令、描述符管理指令以及同步指令等。本披露对指令的具体类型及解码的具体方式不作限制。
解码后的指令的至少一个操作数包括至少一个描述符,该描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息。
张量接口单元(Tensor interface Unit,TIU)330可以配置成在控制单元310的控制下,实现与描述符相关联的操作。这些操作可以包括但不限于描述符的注册、修改、注销、解析;对描述符内容的读写等。本披露对张量接口单元的具体硬件类型不作限制。通过这种方式,可以通过专用的硬件实现与描述符相关联的操作,进一步提高张量数据的存取效率。
在一些实施例中,张量接口单元330可以配置成对两条指令的操作数中包括的张量数据的空间信息(例如,空间ID)进行比较,以判断这两条指令的依赖关系,进而确定指令的乱序执行、同步等操作。
可选地或附加地,在又一些实施例中,张量接口单元330可以配置成对指令的操作数中包括的张量数据的形状信息进行解析,以确定与该操作数对应的数据在数据存储空间中的数据地址。
尽管在图3中将控制单元310和张量接口单元330示出为两个分离的模块,但是本领域技术人员可以理解,这两个单元也可以实现为一个模块或更多模块,本披露在此方面没有限制。
执行单元320可以配置用于在控制单元310的控制下执行具体的指令。执行单元320例如可以包括但不限于算术逻辑单元(arithmetic and logic unit,ALU)、内存存取单元(memory access unit,MAU)、人工智能运算单元(neural functional unit,NFU)等。本披露对执行单元的具体硬件类型不作限制。
可选地,数据处理装置300还可以包括存储单元340。存储单元340可以配置用于存储各种信息,包括但不限于指令、描述符相关联的信息、张量数据等。存储单元340可以包括各种存储资源,包括但不限于内部存储器和外部存储器。内部存储器例如可以包括寄存器、片上SRAM或其他介质缓存。外部存储器例如可以包括片下存储器。本披露对于存储单元的具体实现不作限制。
数据处理装置300可以采用通用处理器(例如中央处理器CPU、图形处理器GPU)和/或专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)来实现,本披露对于数据处理装置的具体类型不作限制。
图4示出根据本披露实施例的数据处理方法400的示例性流程图。数据处理方法400例如可以由图3的数据处理装置300来实现。
如图4所示,方法400开始于步骤S410,获取解码的处理指令。该步骤例如可以由图3的控制单元310来执行。
在本披露的实施例中,解码的处理指令的至少一个操作数包括至少一个描述符,该描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息。
接着,在步骤S420中,对处理指令中的描述符进行解析。该步骤例如可以由图3的张量接口单元330来执行。
在一些实施例中,描述符仅指示张量数据的形状信息。此时,对描述符进行解析可以包括根据形状信息,确定与操作数对应的数据在数据存储空间中的数据地址。
在一些实现中,张量数据的形状信息可以包括表示N维张量数据的形状的至少一个形状参数,N为正整数。张量数据的形状参数可以包括以下至少一种:张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置、张量数据的数据描述位置与数据地址之间的映射关系。
可选地或附加地,张量数据的形状信息可以指示包括多个数据块的N维张量数据的形状的至少一个形状参数,N为正整数。此时,形状参数可以包括以下至少一种:张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、单个数据块的存储区域在N个维度方向的至少一个方向上的尺寸、数据块在N个维度方向的至少一个方向上的分块步长、N个维度方向的至少一个方向上的数据块数量、数据块在N个维度方向的至少一个方向上的整体步长。
可选地或附加地,张量数据的形状信息还可以包括指示与张量数据关联的压缩信息。压缩信息可以包括以下至少一项:是否压缩、压缩方式和压缩参数。
在另一些实施例中,描述符仅指示张量数据的空间信息。此时,对描述符进行解析可以包括根据所述空间信息,确定处理指令之间的依赖关系。例如,空间信息可以是空间ID,通过直接比较空间ID是否相同,来确定处理指令之间是否存在依赖关系。这种情况下,张量数据的形状信息可以由当前处理指令的参数携带或由其他关联指令携带。
在又一些实施例中,描述符可以指示张量数据的形状信息和张量数据的空间信息二者。此时,对描述符进行解析可以包括:根据形状信息,确定与操作数对应的数据在数据存储空间中的数据地址;以及根据空间信息,确定处理指令之间的依赖关系。在一些实现中,形状信息和空间信息可以包括在不同描述符中并通过附加信息来指示二者之间的关联(例如,通过软件定义二者之间的关联性,并保存其对应关系以作为附加信息)。在另一些实现中,形状信息和空间信息可以包括在不同描述符中。当通过指令调用这些信息时,可以根据使用需要(例如,只使用其中一种信息或同时使用两种信息),根据软件侧的指示,建立形状信息与空间信息之间的关联。在另一些实现中,形状信息和空间信息可以包括在同一描述符的不同部分中。
最后,在步骤S430中,基于解析的描述符来执行上述处理指令。该步骤例如可以由图3的执行单元320来执行。
在一些可能的实现中,当采用乱序执行方式时,可以根据例如空间信息所确定的指令之间的依赖关系,来决定是否立即执行当前的处理指令。当确定执行当前的处理指令时,可以根据张量数据的形状信息确定的数据地址来访问对应的数据,以执行该处理指令。
上面已经参考流程图描述了本披露实施例的数据处理装置所执行的数据处理方法。本领域技术人员可以理解,由于将张量数据的空间信息和形状信息分离,可以使得存储资源与运算分离,提高处理灵活度。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图5是示出根据本披露实施例的一种组合处理装置500的结构图。如图5中所示,该组合处理装置500包括计算处理装置502、接口装置504、其他处理装置506和存储装置508。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置510,该计算装置可以配置成图3所示的数据处理装置300,用于执行本文结合附图4所描述的操作。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图6中示出的芯片602)。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个如图5中所示的组合处理装置。该芯片可以通过对外接口装置(如图6中示出的对外接口装置606)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图6对该板卡进行详细地描述。
图6是示出根据本披露实施例的一种板卡600的结构示意图。如图6中所示,该板卡包括用于存储数据的存储器件604,其包括一个或多个存储单元610。该存储器件可以通过例如总线等方式与控制器件608和上文所述的芯片602进行连接和数据传输。进一步,该板卡还包括对外接口装置606,其配置用于芯片(或芯片封装结构中的芯片)与外部设备612(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图5和图6的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款1.一种数据处理装置,包括控制单元、张量接口单元和执行单元,其中:
所述控制单元配置用于获取解码的处理指令,所述处理指令的至少一个操作数包括至少一个描述符,所述描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息;
所述张量接口单元配置用于对所述描述符进行解析;
所述执行单元配置用于在所述控制单元的控制下,基于解析的描述符来执行所述处理指令。
条款2.根据条款1所述的数据处理装置,其中所述描述符仅指示张量数据的形状信息,并且
所述张量接口单元配置用于根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址。
条款3.根据条款1所述的数据处理装置,其中所述描述符仅指示张量数据的空间信息,并且
所述张量接口单元配置用于根据所述空间信息,确定处理指令之间的依赖关系。
条款4.根据条款3所述的数据处理装置,其中所述张量数据的形状信息由所述处理指令的参数携带或由其他关联指令携带。
条款5.根据条款1所述的数据处理装置,其中所述描述符指示所述张量数据的形状信息和所述张量数据的空间信息二者,并且
所述张量接口单元配置用于根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址;
所述张量接口单元还配置用于根据所述空间信息,确定处理指令之间的依赖关系。
条款6.根据条款5所述的数据处理装置,其中:
所述形状信息和所述空间信息包括在不同描述符中;或者
所述形状信息和所述空间信息包括在不同描述符中并通过附加信息指示二者之间的关联;或者
所述形状信息和所述空间信息包括在同一描述符的不同部分中。
条款7.根据条款1-6任一所述的数据处理装置,其中所述张量数据的形状信息包括表示N维张量数据的形状的至少一个形状参数,N为正整数,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置、所述张量数据的数据描述位置与数据地址之间的映射关系。
条款8.根据条款1-7任一所述的数据处理装置,其中所述张量数据的形状信息指示包括多个数据块的N维张量数据的形状的至少一个形状参数,N为正整数,所述形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、单个数据块的存储区域在N个维度方向的至少一个方向上的尺寸、所述数据块在N个维度方向的至少一个方向上的分块步长、N个维度方向的至少一个方向上的数据块数量、所述数据块在N个维度方向的至少一个方向上的整体步长。
条款9.根据条款1-8任一所述的数据处理装置,其中所述张量数据的形状信息还包括指示与所述张量数据关联的压缩信息,所述压缩信息包括以下至少一项:是否压缩、压缩方式和压缩参数。
条款10.一种芯片,其特征在于,所述芯片包括如条款1-9任一所述的数据处理装置。
条款11.一种板卡,其特征在于,所述板卡包括条款10所述的芯片。
条款12.一种数据处理方法,所述方法包括:
获取解码的处理指令,所述处理指令的至少一个操作数包括至少一个描述符,所述描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息;
对所述描述符进行解析;以及
基于解析的描述符来执行所述处理指令。
条款13.根据条款12所述的数据处理方法,其中所述描述符仅指示张量数据的形状信息,并且对所述描述符进行解析包括:
根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址。
条款14.根据条款12所述的数据处理方法,其中所述描述符仅指示张量数据的空间信息,并且对所述描述符进行解析包括:
根据所述空间信息,确定处理指令之间的依赖关系。
条款15.根据条款14所述的数据处理方法,其中所述张量数据的形状信息由所述处理指令的参数携带或由其他关联指令携带。
条款16.根据条款12所述的数据处理方法,其中所述描述符指示所述张量数据的形状信息和所述张量数据的空间信息二者,并且对所述描述符进行解析包括:
根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址;以及
根据所述空间信息,确定处理指令之间的依赖关系。
条款17.根据条款16所述的数据处理方法,其中:
所述形状信息和所述空间信息包括在不同描述符中;或者
所述形状信息和所述空间信息包括在不同描述符中并通过附加信息指示二者之间的关联;或者
所述形状信息和所述空间信息包括在同一描述符的不同部分中。
条款18.根据条款12-17任一所述的数据处理方法,其中所述张量数据的形状信息包括表示N维张量数据的形状的至少一个形状参数,N为正整数,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置、所述张量数据的数据描述位置与数据地址之间的映射关系。
条款19.根据条款12-18任一所述的数据处理方法,其中所述张量数据的形状信息指示包括多个数据块的N维张量数据的形状的至少一个形状参数,N为正整数,所述形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、单个数据块的存储区域在N个维度方向的至少一个方向上的尺寸、所述数据块在N个维度方向的至少一个方向上的分块步长、N个维度方向的至少一个方向上的数据块数量、所述数据块在N个维度方向的至少一个方向上的整体步长。
条款20.根据条款12-19任一所述的数据处理装置,其中所述张量数据的形状信息还包括指示与所述张量数据关联的压缩信息,所述压缩信息包括以下至少一项:是否压缩、压缩方式和压缩参数。

Claims (20)

1.一种数据处理装置,包括控制单元、张量接口单元和执行单元,其中:
所述控制单元配置用于获取解码的处理指令,所述处理指令的至少一个操作数包括至少一个描述符,所述描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息;
所述张量接口单元配置用于对所述描述符进行解析;
所述执行单元配置用于在所述控制单元的控制下,基于解析的描述符来执行所述处理指令。
2.根据权利要求1所述的数据处理装置,其中所述描述符仅指示张量数据的形状信息,并且
所述张量接口单元配置用于根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址。
3.根据权利要求1所述的数据处理装置,其中所述描述符仅指示张量数据的空间信息,并且
所述张量接口单元配置用于根据所述空间信息,确定处理指令之间的依赖关系。
4.根据权利要求3所述的数据处理装置,其中所述张量数据的形状信息由所述处理指令的参数携带或由其他关联指令携带。
5.根据权利要求1所述的数据处理装置,其中所述描述符指示所述张量数据的形状信息和所述张量数据的空间信息二者,并且
所述张量接口单元配置用于根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址;
所述张量接口单元还配置用于根据所述空间信息,确定处理指令之间的依赖关系。
6.根据权利要求5所述的数据处理装置,其中:
所述形状信息和所述空间信息包括在不同描述符中;或者
所述形状信息和所述空间信息包括在不同描述符中并通过附加信息指示二者之间的关联;或者
所述形状信息和所述空间信息包括在同一描述符的不同部分中。
7.根据权利要求1-6任一所述的数据处理装置,其中所述张量数据的形状信息包括表示N维张量数据的形状的至少一个形状参数,N为正整数,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置、所述张量数据的数据描述位置与数据地址之间的映射关系。
8.根据权利要求1-7任一所述的数据处理装置,其中所述张量数据的形状信息指示包括多个数据块的N维张量数据的形状的至少一个形状参数,N为正整数,所述形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、单个数据块的存储区域在N个维度方向的至少一个方向上的尺寸、所述数据块在N个维度方向的至少一个方向上的分块步长、N个维度方向的至少一个方向上的数据块数量、所述数据块在N个维度方向的至少一个方向上的整体步长。
9.根据权利要求1-8任一所述的数据处理装置,其中所述张量数据的形状信息还包括指示与所述张量数据关联的压缩信息,所述压缩信息包括以下至少一项:是否压缩、压缩方式和压缩参数。
10.一种芯片,其特征在于,所述芯片包括如权利要求1-9任一所述的数据处理装置。
11.一种板卡,其特征在于,所述板卡包括权利要求10所述的芯片。
12.一种数据处理方法,所述方法包括:
获取解码的处理指令,所述处理指令的至少一个操作数包括至少一个描述符,所述描述符指示以下至少一项信息:张量数据的形状信息和张量数据的空间信息;
对所述描述符进行解析;以及
基于解析的描述符来执行所述处理指令。
13.根据权利要求12所述的数据处理方法,其中所述描述符仅指示张量数据的形状信息,并且对所述描述符进行解析包括:
根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址。
14.根据权利要求12所述的数据处理方法,其中所述描述符仅指示张量数据的空间信息,并且对所述描述符进行解析包括:
根据所述空间信息,确定处理指令之间的依赖关系。
15.根据权利要求14所述的数据处理方法,其中所述张量数据的形状信息由所述处理指令的参数携带或由其他关联指令携带。
16.根据权利要求12所述的数据处理方法,其中所述描述符指示所述张量数据的形状信息和所述张量数据的空间信息二者,并且对所述描述符进行解析包括:
根据所述形状信息,确定与所述操作数对应的数据在数据存储空间中的数据地址;以及
根据所述空间信息,确定处理指令之间的依赖关系。
17.根据权利要求16所述的数据处理方法,其中:
所述形状信息和所述空间信息包括在不同描述符中;或者
所述形状信息和所述空间信息包括在不同描述符中并通过附加信息指示二者之间的关联;或者
所述形状信息和所述空间信息包括在同一描述符的不同部分中。
18.根据权利要求12-17任一所述的数据处理方法,其中所述张量数据的形状信息包括表示N维张量数据的形状的至少一个形状参数,N为正整数,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置、所述张量数据的数据描述位置与数据地址之间的映射关系。
19.根据权利要求12-18任一所述的数据处理方法,其中所述张量数据的形状信息指示包括多个数据块的N维张量数据的形状的至少一个形状参数,N为正整数,所述形状参数包括以下至少一种:
所述张量数据所在的数据存储空间在N个维度方向的至少一个方向上的尺寸、单个数据块的存储区域在N个维度方向的至少一个方向上的尺寸、所述数据块在N个维度方向的至少一个方向上的分块步长、N个维度方向的至少一个方向上的数据块数量、所述数据块在N个维度方向的至少一个方向上的整体步长。
20.根据权利要求12-19任一所述的数据处理方法,其中所述张量数据的形状信息还包括指示与所述张量数据关联的压缩信息,所述压缩信息包括以下至少一项:是否压缩、压缩方式和压缩参数。
CN202011272710.1A 2020-11-13 2020-11-13 数据处理装置、数据处理方法及相关产品 Pending CN114489790A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011272710.1A CN114489790A (zh) 2020-11-13 2020-11-13 数据处理装置、数据处理方法及相关产品
PCT/CN2021/119426 WO2022100286A1 (zh) 2020-11-13 2021-09-18 数据处理装置、数据处理方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011272710.1A CN114489790A (zh) 2020-11-13 2020-11-13 数据处理装置、数据处理方法及相关产品

Publications (1)

Publication Number Publication Date
CN114489790A true CN114489790A (zh) 2022-05-13

Family

ID=81490364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011272710.1A Pending CN114489790A (zh) 2020-11-13 2020-11-13 数据处理装置、数据处理方法及相关产品

Country Status (2)

Country Link
CN (1) CN114489790A (zh)
WO (1) WO2022100286A1 (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970956A (zh) * 2017-03-16 2017-07-21 天津大学 一种基于张量的三维模型检索方法
US11106976B2 (en) * 2017-08-19 2021-08-31 Wave Computing, Inc. Neural network output layer for machine learning
JP7139657B2 (ja) * 2018-03-30 2022-09-21 富士通株式会社 学習プログラム、学習方法および学習装置
CN110727911B (zh) * 2018-07-17 2022-09-02 展讯通信(上海)有限公司 一种矩阵的运算方法及装置、存储介质、终端
CN112703414A (zh) * 2018-09-20 2021-04-23 西达-赛奈医疗中心 分解后的多维图像的存储、显示和分析
CN110941789B (zh) * 2018-09-21 2023-12-15 北京地平线机器人技术研发有限公司 张量运算方法和装置
CN112306945B (zh) * 2019-07-30 2023-05-12 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
CN111782133A (zh) * 2019-04-04 2020-10-16 安徽寒武纪信息科技有限公司 数据处理方法及装置以及相关产品
CN112347027A (zh) * 2019-08-09 2021-02-09 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
CN111783992A (zh) * 2019-04-04 2020-10-16 安徽寒武纪信息科技有限公司 数据处理装置及相关产品

Also Published As

Publication number Publication date
WO2022100286A1 (zh) 2022-05-19

Similar Documents

Publication Publication Date Title
CN110119807B (zh) 运算方法、装置、计算机设备和存储介质
US20210150325A1 (en) Data processing method and apparatus, and related product
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
WO2022134873A1 (zh) 数据处理装置、数据处理方法及相关产品
US20240111536A1 (en) Data processing apparatus and related products
CN112084023A (zh) 数据并行处理的方法、电子设备及计算机可读存储介质
CN111782577B (zh) 数据处理装置及方法以及相关产品
CN114489803A (zh) 处理装置、处理方法及相关产品
WO2022100345A1 (zh) 处理方法、处理装置及相关产品
CN113807507B (zh) 数据处理方法及装置以及相关产品
CN114489790A (zh) 数据处理装置、数据处理方法及相关产品
CN114281561A (zh) 处理单元、用于处理单元的同步方法及相应产品
CN111782274B (zh) 数据处理装置及相关产品
CN114692844A (zh) 数据处理装置、数据处理方法及相关产品
CN114692838A (zh) 数据处理装置、数据处理方法及相关产品
CN114489802A (zh) 数据处理装置、数据处理方法及相关产品
CN114489789A (zh) 处理装置、处理方法及相关产品
CN114489788A (zh) 指令处理装置、指令处理方法及相关产品
CN113867800A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN114691353A (zh) 一种张量的读取方法、装置以及相关产品
CN114489804A (zh) 处理方法、处理装置及相关产品
CN114489805A (zh) 处理方法、处理装置及相关产品
CN113867799A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN111783992A (zh) 数据处理装置及相关产品
WO2022001499A1 (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