CN111831722A - 数据同步方法及装置以及相关产品 - Google Patents
数据同步方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN111831722A CN111831722A CN201910319165.8A CN201910319165A CN111831722A CN 111831722 A CN111831722 A CN 111831722A CN 201910319165 A CN201910319165 A CN 201910319165A CN 111831722 A CN111831722 A CN 111831722A
- Authority
- CN
- China
- Prior art keywords
- data
- descriptor
- tensor
- synchronization
- tensor data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据同步方法及装置以及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据同步方法及装置以及相关产品。
背景技术
随着人工智能技术的不断发展,其应用领域越来越广泛,在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。然而,随着人工智能算法的复杂度提高,需要处理的数据量和数据维度都在不断增大,通常需要多核和/或多芯片进行数据处理。在进行核间或芯片间的数据同步时,采用相关技术的同步方式的同步开销较大,处理效率较低。
发明内容
有鉴于此,本公开提出了一种数据同步技术方案。
根据本公开的一方面,提供了一种数据同步方法,所述方法包括:在解码后的处理指令为描述符同步指令时,获取所述处理指令中的描述符的同步信息,所述描述符用于指示待同步的张量数据的形状;根据所述同步信息,执行所述处理指令。
根据本公开的另一方面,提供了一种数据同步装置,所述装置包括:同步信息获取模块,用于在解码后的处理指令为描述符同步指令时,获取所述处理指令中的描述符的同步信息,所述描述符用于指示待同步的张量数据的形状;指令执行模块,用于根据所述同步信息,执行所述处理指令。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括如上所述的数据同步装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括如上所述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,通过设定指示张量数据的形状的描述符,能够在解码后的处理指令为描述符同步指令时,获取处理指令中的描述符的同步信息,并根据描述符的同步信息执行指令以实现张量数据的同步,从而减少同步开销,提高数据同步的效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据同步方法的流程图。
图2示出根据本公开实施例的数据同步方法的数据存储空间的示意图。
图3示出根据本公开实施例的数据同步装置的框图。
图4示出根据本公开实施例的板卡的结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的数据同步方法的流程图。该数据同步方法可应用于处理器中,该处理器可包括通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)。本公开对处理器的类型不作限制。
如图1所示,该数据同步方法包括:
在步骤S11中,在解码后的处理指令为描述符同步指令时,获取所述处理指令中的描述符的同步信息,所述描述符用于指示待同步的张量数据的形状;
在步骤S12中,根据所述同步信息,执行所述处理指令。
举例来说,待同步的数据可包括N维的张量数据(N为大于或等于零的整数,例如N=1、2或3),其中,张量可以包含多种形式的数据组成方式,张量可以是不同维度的,比如标量可以看作是0维张量,向量可以看作1维张量,而矩阵可以是2维或2维以上的张量。张量的形状包括张量的维度、张量各个维度的尺寸等信息。例如对于张量:
该张量的形状可以被描述符描述为(2,4),也即通过两个参数表示该张量为二维张量,且该张量的第一维度(列)的尺寸为2、第二维度(行)的尺寸为4。需要说明的是,本公开对于描述符指示张量形状的方式并不做限定。在存储器中存储张量数据时,根据其数据地址(或存储区域)无法确定张量数据的形状,进而也无法确定多个张量数据之间相互关系等相关信息,导致处理器对张量数据的存取效率较低,在进行数据同步时的复杂度也较大。
在该情况下,可设定描述符(张量描述符)来指示张量数据(N维的张量数据)的形状。其中,N的取值可根据张量数据的维数(阶数)来确定,也可以根据张量数据的使用需要进行设定。例如,在N的取值为3时,张量数据为三维的张量数据,描述符可用来指示该三维的张量数据在三个维度方向上的形状(例如偏移量、尺寸等)。应当理解,本领域技术人员可以根据实际需要对N的取值进行设置,本公开对此不作限制。
在一种可能的实现方式中,描述符可包括标识和内容等,描述符的标识可用于对描述符进行区分,例如为编号;描述符的内容可包括表示张量数据的形状的至少一个形状参数(例如张量的各个维度方向上的尺寸等),还可以包括表示张量数据的地址的至少一个地址参数(例如数据基准点的基准地址)。本公开对描述符的内容包括的具体参数不作限制。
通过采用描述符来指示张量数据的方式,能够表达张量数据的形状,进而也能够确定多个张量数据之间的相互关系等相关信息,提高对张量数据的存取效率,从而降低数据同步时的复杂度。
在数据处理过程中,可能需要对当前的处理器A1(例如人工智能芯片中的处理器核)中的张量数据进行数据同步,例如将另一个处理器A0中的一项运算的运算结果同步到处理器A1中做为另一项运算的输入数据。在该情况下,可以采用描述符同步指令实现数据同步。也即,当存在待同步的张量数据时,同步数据的发送方(例如另一个处理器A0)可以向处理器A1发送描述符同步指令,以指示当前的处理器A1进行数据同步。
在一种可能的实现方式中,在步骤S11之前,所述方法还包括:
对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行同步处理。
举例来说,当前的处理器A1在接收到处理指令时,可以对处理指令进行解码(解析),得到解码后的处理指令。该解码后的处理指令可至少包括操作码和操作数,操作码用于指示与所述处理指令对应的处理类型,操作数用于指示待处理的数据。处理指令可包括数据存取指令、运算指令、描述符管理指令以及同步指令等。本公开对处理指令的具体类型及解码的具体方式不作限制。
在一种可能的实现方式中,如果解码后的处理指令的操作码指示进行描述符同步处理,则可确定该处理指令为描述符同步指令。在解码后的处理指令为描述符同步指令时,处理器可在步骤S11中获取所述处理指令中的描述符的同步信息,以便对描述符所指示的待同步的张量数据进行同步。
在一种可能的实现方式中,描述符的同步信息可例如包括所述描述符的标识及所述描述符的内容中的至少一种。如果处理器中已注册有指示该待同步的张量数据的描述符且无需修改,则描述符同步指令中的同步信息可仅包括描述符的标识(例如在描述符的标识为TR1时,将描述符同步指令表示为Send TR1),处理器可根据处理指令中的该描述符的标识(TR1)实现张量数据的同步;如果处理器中未注册指示该待同步的张量数据的描述符,则描述符同步指令中的同步信息可包括描述符的内容,处理器可根据处理指令中的描述符内容实现张量数据的同步;如果处理器中已注册有指示该待同步的张量数据的描述符但需要修改描述符的内容,则描述符同步指令中的同步信息可同时包括描述符的标识和内容两者,处理器可根据处理指令中的描述符标识和内容实现张量数据的同步。本公开对描述符的同步信息所包括的具体内容不作限制。
在一种可能的实现方式中,在得到描述符同步指令的同步信息后,处理器可在步骤S12中根据同步信息执行该处理指令(描述符同步指令),以实现张量数据的同步。
根据本公开实施例的数据同步方法,通过设定指示张量数据的形状的描述符,能够在解码后的处理指令为描述符同步指令时,获取处理指令中的描述符的同步信息,并根据描述符的同步信息执行指令以实现张量数据的同步,从而减少同步开销,提高数据同步的效率。
在一种可能的实现方式中,步骤S12可包括:
在所述描述符所指示的张量数据的存储区域处于共用存储空间中时,根据所述同步信息,从所述共用存储空间中获取所述张量数据。
举例来说,多个处理器(多个核)可以具有共用存储空间,例如处理器A0和处理器A1均可以访问的片下存储器。该共用存储空间可以是多个核(多个处理器)均能够存取数据的存储空间,也可以是部分核(部分处理器)能够存取数据的存储空间,可以预先设定有核间的共用存储空间,本公开对共用存储空间的设定方式不作限制。
在一种可能的实现方式中,如果待同步的张量数据的存储地址处于共用存储空间中,则由于当前的处理器A1也可从共用存储空间存取数据,处理器A1根据描述符的内容就可以直接读取张量数据以实现同步。
在一种可能的实现方式中,如果描述符同步请求指令中的同步信息仅包括描述符的标识,例如描述符的标识为TR1,描述符同步请求指令表示为Send TR1,则处理器A1可内部查找该描述符的标识对应的描述符内容,进而根据描述符内容从共用存储空间中获取待同步的张量数据,从而实现整个同步过程。
在一种可能的实现方式中,如果该描述符同步指令中的同步信息包括描述符的标识和内容,则处理器A1可查找该描述符的标识对应的描述符,并根据描述符同步指令中的描述符内容,更新原来的描述符内容;进而根据更新后的描述符内容从共用存储空间中获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该描述符同步指令中的同步信息仅包括描述符的内容,则处理器A1可根据描述符的内容,注册指示该待同步的张量数据的描述符,并根据描述符的内容从共用存储空间中获取待同步的张量数据,从而实现张量数据的同步。
通过这种方式,能够根据描述符同步指令中的描述符的同步信息,获取描述符所指示的待同步的张量数据,实现张量数据的同步,从而避免不必要的数据传输,减少张量数据存取次数,提高同步的处理效率。
在一种可能的实现方式中,多个处理器(多个核)可以具有同步数据存储空间,专门用于存储同步数据。该同步数据存储空间可以是上述的共用存储空间,也可以是共用存储空间的一部分,还可以是与共用存储空间不同的存储空间,本公开对此不作限制。
在一种可能的实现方式中,同步数据存储空间可是多个核(多个处理器)均能够存取同步数据的存储空间,也可以是部分核(部分处理器)能够存取同步数据的存储空间,本公开对此不作限制。
在一种可能的实现方式中,如果该描述符同步指令中的同步信息包括待同步的张量数据的描述符的内容在同步数据存储空间中的地址,则处理器A1可根据该地址,从同步数据存储空间获取待同步的张量数据的描述符的内容,根据描述符的内容注册描述符并确定待同步的张量数据的数据地址,进而获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以进一步减少同步时处理器间的数据传输,提高同步的处理效率。
在一种可能的实现方式中,描述符的标识和内容可存储在描述符存储空间中,该描述符存储空间可以为处理器的内部存储器(例如寄存器、片上的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)
通过这种方式,处理器可以根据描述符的内容计算出描述符所指示的张量数据在数据存储空间中的数据地址,进而根据该地址执行对应的处理(例如数据运算、数据同步等),从而可降低数据存取的复杂度,提高处理器的处理效率。
图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中任意一项所述的方法,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
A5、根据权利要求A4所述的方法,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
A6、根据权利要求A5所述的方法,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址。
A7、根据权利要求A6所述的方法,所述张量数据的形状参数包括以下至少一种:
所述数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
A8、根据权利要求A1-A7中任意一项所述的方法,所述方法还包括:
对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行同步处理。
A9、一种数据同步装置,所述装置包括:
同步信息获取模块,用于在解码后的处理指令为描述符同步指令时,获取所述处理指令中的描述符的同步信息,所述描述符用于指示待同步的张量数据的形状;
指令执行模块,用于根据所述同步信息,执行所述处理指令。
A10、根据权利要求A9所述的装置,所述同步信息包括以下至少一种:所述描述符的标识及所述描述符的内容。
A11、根据权利要求A9或A10所述的装置,所述指令执行模块包括:
数据获取子模块,用于在所述描述符所指示的张量数据的存储区域处于共用存储空间中时,根据所述同步信息,从所述共用存储空间中获取所述张量数据。
A12、根据权利要求A9-A11中任意一项所述的装置,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
A13、根据权利要求A12所述的装置,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
A14、根据权利要求A13所述的装置,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址。
A15、根据权利要求A14所述的装置,所述张量数据的形状参数包括以下至少一种:
所述数据存储空间在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
A16、根据权利要求A9-A15中任意一项所述的装置,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行同步处理。
A17、一种人工智能芯片,所述芯片包括如权利要求A9-A16中任意一项所述的数据同步装置。
A18、一种电子设备,所述电子设备包括如权利要求A17所述的人工智能芯片。
A19、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求17所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
A20、根据权利要求A19所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;所述接口装置为:标准PCIE接口。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
在解码后的处理指令为描述符同步指令时,获取所述处理指令中的描述符的同步信息,所述描述符用于指示待同步的张量数据的形状;
根据所述同步信息,执行所述处理指令。
2.根据权利要求1所述的方法,其特征在于,所述同步信息包括以下至少一种:所述描述符的标识及所述描述符的内容。
3.根据权利要求1或2所述的方法,其特征在于,根据所述同步信息,执行所述处理指令,包括:
在所述描述符所指示的张量数据的存储区域处于共用存储空间中时,根据所述同步信息,从所述共用存储空间中获取所述张量数据。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
5.根据权利要求4所述的方法,其特征在于,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
6.根据权利要求5所述的方法,其特征在于,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据的数据存储空间中的基准地址。
7.一种数据同步装置,其特征在于,所述装置包括:
同步信息获取模块,用于在解码后的处理指令为描述符同步指令时,获取所述处理指令中的描述符的同步信息,所述描述符用于指示待同步的张量数据的形状;
指令执行模块,用于根据所述同步信息,执行所述处理指令。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求7所述的数据同步装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
Priority Applications (23)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319165.8A CN111831722A (zh) | 2019-04-19 | 2019-04-19 | 数据同步方法及装置以及相关产品 |
KR1020207036496A KR102522416B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
JP2021510522A JP7073580B2 (ja) | 2019-04-04 | 2020-04-01 | データ処理方法、装置、及び関連製品 |
KR1020207036494A KR102569336B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
EP20783678.4A EP3800547A4 (en) | 2019-04-04 | 2020-04-01 | DATA PROCESSING METHOD AND DEVICE AND RELEVANT PRODUCT |
EP20217332.4A EP3828698B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207036500A KR102579192B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036505A KR102550451B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
EP20217328.2A EP3825842B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207032006A KR20210002518A (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036492A KR102519470B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
EP20217331.6A EP3825847B1 (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 |
EP20217333.2A EP3825848A1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20217330.8A EP3825846A1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207036508A KR102379406B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
PCT/CN2020/082775 WO2020200244A1 (zh) | 2019-04-04 | 2020-04-01 | 数据处理方法及装置以及相关产品 |
JP2020198177A JP7121102B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198021A JP7239547B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198158A JP7121101B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198102A JP7150802B2 (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 | データ処理方法、装置、及び関連製品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319165.8A CN111831722A (zh) | 2019-04-19 | 2019-04-19 | 数据同步方法及装置以及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831722A true CN111831722A (zh) | 2020-10-27 |
Family
ID=72911402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910319165.8A Pending CN111831722A (zh) | 2019-04-04 | 2019-04-19 | 数据同步方法及装置以及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831722A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077327A (zh) * | 2014-06-30 | 2017-08-18 | 微体系统工程有限公司 | 用于可扩展宽操作数指令的系统和方法 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
CN109543832A (zh) * | 2018-11-27 | 2019-03-29 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
CN110678840A (zh) * | 2017-05-24 | 2020-01-10 | 微软技术许可有限责任公司 | 张量寄存器文件 |
CN111782133A (zh) * | 2019-04-04 | 2020-10-16 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
-
2019
- 2019-04-19 CN CN201910319165.8A patent/CN111831722A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077327A (zh) * | 2014-06-30 | 2017-08-18 | 微体系统工程有限公司 | 用于可扩展宽操作数指令的系统和方法 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
CN110678840A (zh) * | 2017-05-24 | 2020-01-10 | 微软技术许可有限责任公司 | 张量寄存器文件 |
CN109543832A (zh) * | 2018-11-27 | 2019-03-29 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
CN111782133A (zh) * | 2019-04-04 | 2020-10-16 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
EP3825842B1 (en) | Data processing method and apparatus, and related product | |
CN111857828B (zh) | 处理器操作方法及装置以及相关产品 | |
CN111831337B (zh) | 数据同步方法及装置以及相关产品 | |
US20240111536A1 (en) | Data processing apparatus and related products | |
US20240004650A1 (en) | Data processing method and apparatus, and related product | |
CN112347186B (zh) | 数据同步方法及装置以及相关产品 | |
CN112306945B (zh) | 数据同步方法及装置以及相关产品 | |
CN111813449A (zh) | 运算方法、装置及相关产品 | |
CN111782274B (zh) | 数据处理装置及相关产品 | |
WO2021027973A1 (zh) | 数据同步方法及装置以及相关产品 | |
CN111831722A (zh) | 数据同步方法及装置以及相关产品 | |
CN111783992A (zh) | 数据处理装置及相关产品 | |
CN111831329B (zh) | 数据处理方法及装置以及相关产品 | |
CN111782267B (zh) | 数据处理方法及装置以及相关产品 | |
CN112347026B (zh) | 数据同步方法及装置以及相关产品 | |
CN113806246A (zh) | 数据处理装置及方法以及相关产品 | |
CN113807507A (zh) | 数据处理方法及装置以及相关产品 | |
CN112395008A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112347185A (zh) | 数据同步方法及装置以及相关产品 | |
CN111400341B (zh) | 标量查找指令处理方法、装置及相关产品 | |
CN111399905B (zh) | 运算方法、装置及相关产品 | |
CN114282159A (zh) | 数据处理装置、集成电路芯片、设备及其实现的方法 | |
CN113867686A (zh) | 运算方法、装置及相关产品 | |
CN111813376A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201027 |