CN112306945A - 数据同步方法及装置以及相关产品 - Google Patents
数据同步方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN112306945A CN112306945A CN201910694672.XA CN201910694672A CN112306945A CN 112306945 A CN112306945 A CN 112306945A CN 201910694672 A CN201910694672 A CN 201910694672A CN 112306945 A CN112306945 A CN 112306945A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronized
- tensor data
- synchronization
- descriptor
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开涉及一种数据同步方法及装置以及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据同步方法及装置以及相关产品。
背景技术
随着人工智能技术的不断发展,其应用领域越来越广泛,在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。然而,随着人工智能算法的复杂度提高,需要处理的数据量和数据维度都在不断增大,通常需要多核和/或多芯片进行数据处理。在进行核间或芯片间的数据同步时,采用相关技术的同步方式的同步开销较大,处理效率较低。
发明内容
有鉴于此,本公开提出了一种数据同步技术方案。
根据本公开的一方面,提供了一种数据同步方法,所述方法应用于第一处理器,包括:根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;根据所述张量数据的同步信息,生成同步指令;向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步方法,所述方法应用于第二处理器,包括:解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步方法,所述方法应用于第二处理器,包括:当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;向所述第一处理器发送所述同步请求指令。
根据本公开的另一方面,提供了一种数据同步装置,所述装置应用于第一处理器,包括:第一信息确定模块,用于根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;第一指令生成模块,用于根据所述张量数据的同步信息,生成同步指令;第一指令发送模块,用于向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步装置,所述装置应用于第二处理器,包括:第二信息确定模块,用于解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;第二描述符确定模块,用于根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;第一数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步装置,所述装置应用于第二处理器,包括:第二指令生成模块,用于当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;第二指令发送模块,用于向所述第一处理器发送所述同步请求指令。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括如上所述的数据同步装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括如上所述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,通过设定指示张量数据的形状的描述符,根据描述符确定张量数据的同步信息,根据同步信息生成同步指令并向第二处理器发送同步指令,以指示第二处理器根据同步指令获取待同步的张量数据,从而减少同步开销,提高数据同步的效率。
通过权要中的技术特征进行推导,能够达到对应背景技术中的技术问题的有益效果。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据同步方法的处理系统的示意图。
图2示出根据本公开实施例的数据同步方法的流程图。
图3示出根据本公开实施例的数据同步方法的流程图。
图4示出根据本公开实施例的数据同步方法的流程图。
图5示出根据本公开实施例的数据同步方法的数据存储空间的示意图。
图6示出根据本公开实施例的数据同步装置的框图。
图7示出根据本公开实施例的数据同步装置的框图。
图8示出根据本公开实施例的数据同步装置的框图。
图9示出根据本公开实施例的板卡的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
根据本公开实施例的数据同步方法可应用于包括多个处理器(多核)的处理系统(例如人工智能芯片)的任意一个处理器中。该处理器可以是通用处理器,例如CPU(CentralProcessing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(GraphicsProcessing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。此外,处理系统中的多个处理器的类型可以相同或不同,本公开对此不作限制。
在一种可能的实现方式中,本公开中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。
图1示出根据本公开实施例的数据同步方法的处理系统的示意图。如图1所示,处理系统100包括多个处理器101以及存储器102,多个处理器101用于执行指令序列,存储器102用于存储数据,可包括随机存储器(RAM,Random Access Memory)和寄存器堆。处理系统100中的多个处理器101既可共用部分存储空间,例如共用部分RAM存储空间和寄存器堆,又可同时拥有各自的存储空间。
图2示出根据本公开一实施例的数据同步方法的流程图。如图2所示,该方法应用于第一处理器(处理系统中的任意一个处理器),该方法包括:
在步骤S11中:根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;
在步骤S12中:根据所述张量数据的同步信息,生成同步指令;
在步骤S13中:向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
举例来说,待同步的数据可包括N维的张量数据(N为大于或等于零的整数,例如N=1、 2或3),其中,张量可以包含多种形式的数据组成方式,张量可以是不同维度的,比如标量可以看作是0维张量,向量可以看作1维张量,而矩阵可以是2维或2维以上的张量。张量的形状包括张量的维度、张量各个维度的尺寸等信息。例如对于张量:
该张量的形状可以被描述符描述为(2,4),也即通过两个参数表示该张量为二维张量,且该张量的第一维度(列)的尺寸为2、第二维度(行)的尺寸为4。需要说明的是,本公开对于描述符指示张量形状的方式并不做限定。在存储器中存储张量数据时,根据其数据地址(或存储区域)无法确定张量数据的形状,进而也无法确定多个张量数据之间相互关系等相关信息,导致处理器对张量数据的存取效率较低,在进行数据同步时的复杂度也较大。
在该情况下,可设定描述符(张量描述符)来指示张量数据(N维的张量数据)的形状。其中,N的取值可根据张量数据的维数(阶数)来确定,也可以根据张量数据的使用需要进行设定。例如,在N的取值为3时,张量数据为三维的张量数据,描述符可用来指示该三维的张量数据在三个维度方向上的形状(例如偏移量、尺寸等)。应当理解,本领域技术人员可以根据实际需要对N的取值进行设置,本公开对此不作限制。
在一种可能的实现方式中,描述符可包括标识和内容等,描述符的标识可用于对描述符进行区分,例如为编号;描述符的内容可包括表示张量数据的形状的至少一个形状参数(例如张量的各个维度方向上的尺寸等),还可以包括表示张量数据的地址的至少一个地址参数(例如数据基准点的基准地址)。本公开对描述符的内容包括的具体参数不作限制。
通过采用描述符来指示张量数据的方式,能够表达张量数据的形状,进而也能够确定多个张量数据之间的相互关系等相关信息,提高对张量数据的存取效率,从而降低数据同步时的复杂度。
在一种可能的实现方式中,在数据处理过程中,可能需要进行多个处理器(例如人工智能芯片的多个核)之间的数据同步,例如将处理器A1的运算结果同步到处理器A2中作为另一项运算的输入数据。在该情况下,可以采用基于描述符的数据同步机制实现数据同步。
在一种可能的实现方式中,第一处理器是数据同步的发送方,第二处理器是数据同步的接收方。当存在待同步的张量数据时,第一处理器可在步骤S11中根据该张量数据的描述符,确定张量数据的同步信息(例如张量数据的标识、形状、来源、存储地址等信息);在步骤S12中根据同步信息生成同步指令,并在步骤S13中向待同步的第二处理器发送该同步指令。其中,第二处理器可包括通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)。第二处理器可与第一处理器的类型相同或不同,本公开对第二处理器的类型不作限制。
在一种可能的实现方式中,第一处理器可以主动发起对第二处理器的数据同步,例如在第一处理器完成一项运算得到运算结果(张量数据)时,主动发起对需要使用该运算结果的第二处理器的数据同步。在另一个示例中,第一处理器也可以响应于第二处理器的同步请求,发起对第二处理器的数据同步,例如在接收到第二处理器的同步请求指令时,发起对第二处理器的数据同步。本公开对数据同步的发起时机不作限制。
在一种可能的实现方式中,当第一处理器确定存在待同步的张量数据时,可以获取该张量数据的描述符。该描述符可以是已注册(创建)的用于指示该张量数据的形状的描述符,也可以根据该张量数据的形状参数注册(创建)新的描述符,本公开对此不作限制。
在一种可能的实现方式中,根据该张量数据的描述符,可确定该张量数据的同步信息。该同步信息可包括张量数据的标识(例如数据编号)、形状、来源、存储地址等信息中的至少一种。根据该张量数据的同步信息,可生成同步指令。如果第二处理器中已具有该张量数据的信息(例如已注册有指示该待同步的张量数据的描述符),则同步指令可仅包括部分同步信息,例如张量数据的标识,以指示第二处理器根据该张量数据的标识实现张量数据的同步;如果第二处理器中不具有该张量数据的信息,则同步指令可包括更多的同步信息,例如张量数据的标识及存储地址等,以指示第二处理器根据对应的信息实现张量数据的同步。本公开对同步指令包括的具体内容不作限制。
在一种可能的实现方式中,在生成同步指令后,可向第二处理器发送该同步指令,以指示第二处理器根据所述同步指令获取所述待同步的张量数据。如果同步指令包括张量数据的标识,则第二处理器可根据该标识确定待同步的张量数据,并注册或获取指示该待同步的张量数据的描述符,再根据描述符的内容获取描述符所指示的张量数据,从而实现张量数据的同步。如果同步指令包括更多的同步信息(标识及存储地址等),则第二处理器可根据指令中的同步信息注册指示该待同步的张量数据的描述符,并根据描述符的内容直接获取描述符所指示的张量数据,从而实现张量数据的同步。
根据本公开实施例的数据同步方法,通过设定指示张量数据的形状的描述符,根据描述符确定张量数据的同步信息,根据同步信息生成同步指令并向第二处理器发送同步指令,以指示第二处理器根据同步指令获取待同步的张量数据,从而在不改变同步指令的结构的情况下减少同步开销,提高数据同步的效率。
在一种可能的实现方式中,同步信息可包括待同步的张量数据的存储地址。步骤S12 可包括:在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的存储地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
举例来说,多个处理器(多个核)可以具有共用存储空间,例如第一处理器和第二处理器均可以访问的片下存储器。该共用存储空间可以是多个核(多个处理器)均能够存取数据的存储空间,也可以是部分核(部分处理器)能够存取数据的存储空间,可以预先设定有核间的共用存储空间,本公开对共用存储空间的设定方式不作限制。
在一种可能的实现方式中,可根据待同步的张量数据的描述符的内容,确定出该张量数据的存储地址。如果待同步的张量数据的存储地址处于共用存储空间中,由于第二处理器也可从共用存储空间存取数据,第二处理器根据张量数据的存储地址就可以直接读取张量数据以实现同步。在该情况下,同步指令可包括待同步的张量数据的存储地址,也即,可根据待同步的张量数据的存储地址,生成同步指令。第二处理器接收到同步指令后,可解析指令以得到张量数据的存储地址;根据张量数据的存储地址,第二处理器可注册(创建)待同步的张量数据的描述符,使得描述符的内容与该张量数据的数据地址对应,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以避免不必要的数据传输,减少张量数据存取次数,提高了同步的处理效率。
在一种可能的实现方式中,同步信息包括待同步的张量数据的存储地址。步骤S12可包括:在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;根据所述待同步的张量数据在共用存储空间中的地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
举例来说,第一处理器可以具有非共用存储空间,第一处理器可存取该非共用存储空间中的数据,而第二处理器无法访问到第一处理器的非共用存储空间,不能存取该非共用存储空间中的数据。如果待同步的张量数据的存储地址处于非共用存储空间,则第二处理器无法直接获取该张量数据。在该情况下,第一处理器可将待同步的张量数据转存到共用存储空间,以使第二处理器能够存取该张量数据。在完成转存后,如果第一处理器中未注册指示该待同步的张量数据的描述符,或已注册有指示非共用存储空间中的该张量数据的描述符且该描述符不可修改(例如正在被操作),则第一处理器可生成所述待同步的张量数据的描述符,也即,注册新的描述符,以指示在共用存储空间中的该张量数据。
在一种可能的实现方式中,第一处理器可根据待同步的张量数据在共用存储空间中的地址生成同步指令。第二处理器接收到同步指令后,可解析指令以得到待同步的张量数据的存储地址;根据张量数据的存储地址,第二处理器可注册(创建)待同步的张量数据的描述符,使得描述符的内容与该张量数据的数据地址对应,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可将非共用存储空间中待同步的张量数据主动转存到共用存储空间,以使第二处理器能够获取待同步的张量数据,从而减少同步时处理器间的数据传输,提高同步的处理效率。
在一种可能的实现方式中,所述方法还包括:根据来自第二处理器的同步请求指令,确定所述待同步的张量数据的描述符。
举例来说,第一处理器可响应于第二处理器的同步请求,发起对第二处理器的数据同步。其中,来自第二处理器的同步请求指令可包括待同步的张量数据的信息,例如该待同步的张量数据的数据特征。其中,张量数据的数据特征可包括张量数据的标识、形状、来源、地址等信息,本公开对同步请求指令的具体内容不作限制。根据同步请求指令中的信息,第一处理器可确定待同步的张量数据的描述符,根据描述符确定张量数据的同步信息,进而生成同步指令。
通过这种方式,可以根据第二处理器的同步请求确定待同步的张量数据的描述符,以便生成同步指令,从而避免不必要的数据同步,提高了数据同步的效率。
在一种可能的实现方式中,所述同步请求指令包括所述待同步的张量数据的数据特征,所述根据来自第二处理器的同步请求指令,确定所述待同步的张量数据的描述符的步骤可包括:
解析所述同步请求指令,获得待同步的张量数据的数据特征;
根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
举例来说,如果第一处理器和第二处理器均具有待同步的张量数据的信息(数据特征),且信息相同或具有对应关系,则同步请求指令中可包括数据特征,例如张量数据的标识。第一处理器可解析来自第二处理器的同步请求指令,得到待同步的张量数据的数据特征。
在一种可能的实现方式中,待同步的张量数据的数据特征可包括张量数据的标识、形状、来源、地址等信息。例如,该张量数据的数据来源为第K个发送方(第K个处理器)、该张量数据的数据来源为编号200的卷积操作的运算结果、该张量数据的地址为特定的地址区域(例如地址ADDR0-ADDR127)、该张量数据的形状为指定的形状(例如20*10的二维张量)等。本领域技术人员可根据实际情况设定待同步的张量数据的数据特征,本公开对此不作限制。
在一种可能的实现方式中,根据该数据特征,第一处理器可查找到待同步的张量数据,并确定该待同步的张量数据的描述符,例如直接获取或新注册对应的描述符。根据该待同步的张量数据的描述符,可确定该张量数据的同步信息,从而生成并发送同步指令,以指示第二处理器实现该张量数据的同步。
通过这种方式,可以根据请求指令中的数据特征确定待同步的张量数据的描述符,以便实现张量数据的同步,从而在同步时无需传输张量数据本身,减小了传输的数据量和同步开销,提高了处理效率。
图3示出根据本公开实施例的数据同步方法的流程图。该数据同步方法可应用于第二处理器中。如图3所示,该数据同步方法包括:
在步骤S21中,解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
在步骤S22中,根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
在步骤S23中,根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
举例来说,第一处理器(发送方)可以主动发起对第二处理器(接收方)的数据同步,例如在第一处理器完成一项运算得到运算结果(张量数据)时,主动发起对需要使用该运算结果的第二处理器的数据同步。
在一种可能的实现方式中,第二处理器在接收到来自第一处理器的同步指令时,可解析该同步指令,得到待同步的张量数据的同步信息(例如张量数据的标识、形状、存储地址等)。
在一种可能的实现方式中,如果该同步指令仅包括张量数据的标识,则第二处理器可内部查找该张量数据的标识对应的张量数据和/或与张量数据对应的描述符,进而根据描述符内容获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该同步指令包括张量数据的形状和存储地址,则第二处理器可根据张量数据的形状和存储地址,注册指示该待同步的张量数据的描述符,并根据描述符的内容获取待同步的张量数据,从而实现张量数据的同步。
根据本公开实施例的数据同步方法,通过设定指示张量数据的形状的描述符,能够根据同步指令中的待同步的张量数据的同步信息,确定该张量数据的描述符,进而获取该张量数据,实现张量数据的同步,从而减少同步开销,降低数据同步的复杂度,提高数据同步的效率。
在一种可能的实现方式中,所述同步信息包括所述待同步的张量数据的存储地址,
步骤S22包括:根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
步骤S23包括:根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
举例来说,如果待同步的张量数据的存储地址处于共用存储空间中,则第二处理器可从共用存储空间存取数据。在该情况下,同步指令可包括待同步的张量数据的存储地址。第二处理器接收到同步指令后,可解析指令以得到待同步的张量数据的存储地址;根据该张量数据的存储地址,创建或修改与该张量数据对应的描述符。根据该描述符的内容,第二处理器可从共用存储空间获取待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以避免不必要的数据传输,减少张量数据存取次数,提高了同步的处理效率,并且实现了指令传递及处理过程中的指令兼容。
图4示出根据本公开实施例的数据同步方法的流程图。该数据同步方法可应用于第二处理器中。如图4所示,该数据同步方法包括:
在步骤S31中,当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
在步骤S32中,向所述第一处理器发送所述同步请求指令。
举例来说,当第二处理器中存在待同步的张量数据时,可以主动向第一处理器发送同步请求指令,以便获取该待同步的张量数据。第二处理器可根据待同步的张量数据的信息,例如该待同步的张量数据的数据特征,生成同步请求指令。本公开对同步请求指令的具体内容不作限制。根据同步请求指令中的信息,第一处理器可确定待同步的张量数据的描述符,进而生成同步指令。
通过这种方式,可以在需要同步时主动发起同步请求,提高数据同步的效率。
在一种可能的实现方式中,所述同步请求指令包括所述待同步的张量数据的数据特征,以使第一处理器能够确定待同步的张量数据。其中,张量数据的数据特征可包括张量数据的标识、形状、来源、地址等信息。本领域技术人员可根据实际情况设定待同步的张量数据的数据特征,本公开对此不作限制。
在一种可能的实现方式中,所述方法还包括:
解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符;
根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
举例来说,第二处理器在接收到来自第一处理器的同步指令时,可解析该同步指令,得到待同步的张量数据的同步信息(例如张量数据的标识、形状、存储地址等)。
在一种可能的实现方式中,如果该同步指令仅包括张量数据的标识,则第二处理器可内部查找该张量数据的标识对应的张量数据和/或与张量数据对应的描述符,进而根据描述符内容获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该同步指令包括张量数据的形状和存储地址等,则第二处理器可根据张量数据的形状和存储地址,创建指示该待同步的张量数据的描述符,并根据描述符的内容获取待同步的张量数据,从而实现张量数据的同步。
通过这种方式,可以降低数据同步的复杂度,提高数据同步的效率。
在一种可能的实现方式中,所述同步信息包括所述待同步的张量数据的存储地址,
所述根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符的步骤可包括:根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据的步骤可包括:根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
举例来说,如果待同步的张量数据的存储地址处于共用存储空间中,则第二处理器可从共用存储空间存取数据。在该情况下,同步指令可包括待同步的张量数据的存储地址。第二处理器接收到同步指令后,可解析指令以得到待同步的张量数据的存储地址;根据该张量数据的存储地址,创建或修改与该张量数据对应的描述符。根据该描述符的内容,第二处理器可从共用存储空间获取待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以避免不必要的数据传输,减少张量数据存取次数,提高了同步的处理效率,并且实现了指令传递及处理过程中的指令兼容。
在一种可能的实现方式中,描述符的标识和内容可存储在描述符存储空间中,该描述符存储空间可以为处理器的内部存储器(例如寄存器、片上的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)表示的、该张量数据映射在三维空间中的点或区域的位置。
应当理解,本领域技术人员可以根据实际情况选择表示张量数据的形状参数,本公开对此不作限制。
图5示出根据本公开实施例的数据同步方法的数据存储空间的示意图。如图5所示,数据存储空间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)
通过这种方式,处理器可以根据描述符的内容计算出描述符所指示的张量数据在数据存储空间中的数据地址,进而根据该地址执行对应的处理(例如数据运算、数据同步等),从而可降低数据存取的复杂度,提高处理器的处理效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图6示出根据本公开实施例的数据同步装置的框图。该数据同步装置应用于第一处理器,如图6所示,该数据同步装置包括:
第一信息确定模块51,用于根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;
第一指令生成模块52,用于根据所述张量数据的同步信息,生成同步指令;
第一指令发送模块53,用于向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
在一种可能的实现方式中,所述同步信息包括待同步的张量数据的存储地址,所述第一指令生成模块包括:第一生成子模块,用于在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的存储地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,所述同步信息包括待同步的张量数据的存储地址,所述第一指令生成模块包括:转存子模块,用于在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;第二生成子模块,用于根据所述待同步的张量数据在共用存储空间中的地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,所述装置还包括:第一描述符确定模块,用于根据来自第二处理器的同步请求指令,确定所述待同步的张量数据的描述符。
在一种可能的实现方式中,所述同步请求指令包括所述待同步的张量数据的数据特征,所述第一描述符确定模块包括:指令解析子模块,用于解析所述同步请求指令,获得待同步的张量数据的数据特征;第一描述符确定子模块,用于根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
图7示出根据本公开实施例的数据同步装置的框图。该数据同步装置应用于第二处理器,如图7所示,该数据同步装置包括:
第二信息确定模块61,用于解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
第二描述符确定模块62,用于根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
第一数据获取模块63,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
在一种可能的实现方式中,所述同步信息包括所述待同步的张量数据的存储地址,所述第二描述符确定模块包括:第一确定子模块,用于根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述第一数据获取模块包括:第一数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
图8示出根据本公开实施例的数据同步装置的框图。该数据同步装置应用于第二处理器,如图8所示,该数据同步装置包括:
第二指令生成模块71,用于当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
第二指令发送模块72,用于向所述第一处理器发送所述同步请求指令。
在一种可能的实现方式中,所述同步请求指令包括所述待同步的张量数据的数据特征。
在一种可能的实现方式中,所述装置还包括:第三信息确定模块,用于解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;第三描述符确定模块,用于根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符;第二数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
在一种可能的实现方式中,所述同步信息包括所述待同步的张量数据的存储地址,所述第三描述符确定模块包括:第二确定子模块,用于根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述第二数据获取模块包括:第二数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC 等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器 DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC (Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述数据同步装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图9示出根据本公开实施例的板卡的结构框图,参阅图9,上述板卡除了包括上述芯片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.0 X 16接口传输时,理论带宽可达到 16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1、一种数据同步方法,所述方法应用于第一处理器,包括:
根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;
根据所述张量数据的同步信息,生成同步指令;
向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
条款A2、根据条款A1所述的方法,所述同步信息包括待同步的张量数据的存储地址,所述根据所述张量数据的同步信息,生成同步指令,包括:
在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的存储地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
条款A3、根据条款A1或条款A2所述的方法,所述同步信息包括待同步的张量数据的存储地址,所述根据所述张量数据的同步信息,生成同步指令,包括:
在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;
根据所述待同步的张量数据在共用存储空间中的地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
条款A4、根据条款A1-条款A3中任意一项所述的方法,所述方法还包括:
根据来自第二处理器的同步请求指令,确定所述待同步的张量数据的描述符。
条款A5、根据条款A4所述的方法,所述同步请求指令包括所述待同步的张量数据的数据特征,所述根据来自第二处理器的同步请求指令,确定所述待同步的张量数据的描述符,包括:解析所述同步请求指令,获得待同步的张量数据的数据特征;
根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
条款A6、一种数据同步方法,所述方法应用于第二处理器,包括:
解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
条款A7、根据条款A6所述的方法,所述同步信息包括所述待同步的张量数据的存储地址,所述根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,包括:根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据,包括:根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
条款A8、一种数据同步方法,所述方法应用于第二处理器,包括:
当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;向所述第一处理器发送所述同步请求指令。
条款A9、根据条款A8所述的方法,所述同步请求指令包括所述待同步的张量数据的数据特征。
条款A10、根据条款A8或条款A9所述的方法,所述方法还包括:
解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符;
根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
条款A11、根据条款A10所述的方法,所述同步信息包括所述待同步的张量数据的存储地址,所述根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,包括:根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据,包括:根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
条款A12、一种数据同步装置,所述装置应用于第一处理器,包括:
第一信息确定模块,用于根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;
第一指令生成模块,用于根据所述张量数据的同步信息,生成同步指令;
第一指令发送模块,用于向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
条款A13、根据条款A12所述的装置,所述同步信息包括待同步的张量数据的存储地址,所述第一指令生成模块包括:第一生成子模块,用于在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的存储地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
条款A14、根据条款A12或条款A13所述的装置,所述同步信息包括待同步的张量数据的存储地址,所述第一指令生成模块包括:转存子模块,用于在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;
第二生成子模块,用于根据所述待同步的张量数据在共用存储空间中的地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
条款A15、根据条款A12-条款A14中任意一项所述的装置,所述装置还包括:第一描述符确定模块,用于根据来自第二处理器的同步请求指令,确定所述待同步的张量数据的描述符。
条款A16、根据条款A15所述的装置,所述同步请求指令包括所述待同步的张量数据的数据特征,所述第一描述符确定模块包括:指令解析子模块,用于解析所述同步请求指令,获得待同步的张量数据的数据特征;第一描述符确定子模块,用于根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
条款A17、一种数据同步装置,所述装置应用于第二处理器,包括:
第二信息确定模块,用于解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
第二描述符确定模块,用于根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
第一数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
条款A18、根据条款A17所述的装置,所述同步信息包括所述待同步的张量数据的存储地址,所述第二描述符确定模块包括:第一确定子模块,用于根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述第一数据获取模块包括:第一数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
条款A19、一种数据同步装置,所述装置应用于第二处理器,包括:
第二指令生成模块,用于当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
第二指令发送模块,用于向所述第一处理器发送所述同步请求指令。
条款A20、根据条款A19所述的装置,所述同步请求指令包括所述待同步的张量数据的数据特征。
条款A21、根据条款A19或条款A20所述的装置,所述装置还包括:第三信息确定模块,用于解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;第三描述符确定模块,用于根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符;第二数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
条款A22、根据条款A21所述的装置,所述同步信息包括所述待同步的张量数据的存储地址,所述第三描述符确定模块包括:第二确定子模块,用于根据所述待同步的张量数据的存储地址,确定所述待同步的张量数据的描述符的标识和/或所述描述符的内容;
所述第二数据获取模块包括:第二数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
条款A23、一种人工智能芯片,所述芯片包括如条款A12-条款A22中任意一项所述的数据同步装置。
条款A24、一种电子设备,所述电子设备包括如条款A23所述的人工智能芯片。
条款A25、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A23所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
条款A26、根据条款A25所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;所述接口装置为:标准PCIE接口。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法应用于第一处理器,包括:
根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;
根据所述张量数据的同步信息,生成同步指令;
向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
2.根据权利要求1所述的方法,其特征在于,所述同步信息包括待同步的张量数据的存储地址,
所述根据所述张量数据的同步信息,生成同步指令,包括:
在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的存储地址,生成同步指令,以指示所述第二处理器从所述共用存储空间获取所述待同步的张量数据。
3.一种数据同步方法,其特征在于,所述方法应用于第二处理器,包括:
解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
4.一种数据同步方法,其特征在于,所述方法应用于第二处理器,包括:
当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
向所述第一处理器发送所述同步请求指令。
5.一种数据同步装置,其特征在于,所述装置应用于第一处理器,包括:
第一信息确定模块,用于根据待同步的张量数据的描述符,确定所述张量数据的同步信息,所述描述符用于指示待同步的张量数据的形状;
第一指令生成模块,用于根据所述张量数据的同步信息,生成同步指令;
第一指令发送模块,用于向第二处理器发送所述同步指令,所述同步指令用于指示所述第二处理器根据所述同步指令获取所述待同步的张量数据。
6.一种数据同步装置,其特征在于,所述装置应用于第二处理器,包括:
第二信息确定模块,用于解析来自第一处理器的同步指令,得到待同步的张量数据的同步信息;
第二描述符确定模块,用于根据所述待同步的张量数据的同步信息,确定所述待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
第一数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
7.一种数据同步装置,其特征在于,所述装置应用于第二处理器,包括:
第二指令生成模块,用于当存在待同步的张量数据时,生成同步请求指令,所述同步请求指令用于指示第一处理器根据所述同步请求指令确定待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
第二指令发送模块,用于向所述第一处理器发送所述同步请求指令。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求5-7中任意一项所述的数据同步装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
Priority Applications (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910694672.XA CN112306945B (zh) | 2019-07-30 | 2019-07-30 | 数据同步方法及装置以及相关产品 |
PCT/CN2020/082803 WO2020200246A1 (zh) | 2019-04-04 | 2020-04-01 | 数据处理装置及相关产品 |
KR1020207036316A KR102611169B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리 장치 및 관련 제품 |
JP2021510523A JP7073581B2 (ja) | 2019-04-04 | 2020-04-01 | データ処理装置及び関連製品 |
KR1020207036312A KR102611162B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리 장치 및 관련 제품 |
KR1020207032017A KR20200142536A (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리 장치 및 관련 제품 |
EP20785318.5A EP3951666A4 (en) | 2019-04-04 | 2020-04-01 | DATA PROCESSING DEVICE AND ASSOCIATED PRODUCT |
PCT/CN2020/111259 WO2021018313A1 (zh) | 2019-07-30 | 2020-08-26 | 数据同步方法及装置以及相关产品 |
JP2020198200A JP7121103B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理装置及び関連製品 |
JP2020198245A JP7150803B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理装置及び関連製品 |
US17/489,671 US11385895B2 (en) | 2019-04-04 | 2021-09-29 | Data processing apparatus and related products |
US17/849,182 US11886880B2 (en) | 2019-04-04 | 2022-06-24 | Data processing apparatus and related products with descriptor management |
US18/531,734 US20240111536A1 (en) | 2019-04-04 | 2023-12-07 | Data processing apparatus and related products |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910694672.XA CN112306945B (zh) | 2019-07-30 | 2019-07-30 | 数据同步方法及装置以及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306945A true CN112306945A (zh) | 2021-02-02 |
CN112306945B CN112306945B (zh) | 2023-05-12 |
Family
ID=74229236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910694672.XA Active CN112306945B (zh) | 2019-04-04 | 2019-07-30 | 数据同步方法及装置以及相关产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112306945B (zh) |
WO (1) | WO2021018313A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416605A (zh) * | 2021-12-23 | 2022-04-29 | 深圳云天励飞技术股份有限公司 | 存储空间分配方法、终端设备及计算机可读存储介质 |
WO2022100286A1 (zh) * | 2020-11-13 | 2022-05-19 | 中科寒武纪科技股份有限公司 | 数据处理装置、数据处理方法及相关产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005296A1 (en) * | 2006-05-08 | 2008-01-03 | Cisco Technology, Inc. | Method and apparatus for synchronizing use of buffer descriptor entries |
WO2016179968A1 (zh) * | 2015-05-13 | 2016-11-17 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法、装置及存储介质 |
CN107077327A (zh) * | 2014-06-30 | 2017-08-18 | 微体系统工程有限公司 | 用于可扩展宽操作数指令的系统和方法 |
GB201811017D0 (en) * | 2018-07-04 | 2018-08-15 | Graphcore Ltd | Host Proxy On Gateway |
US20180365307A1 (en) * | 2016-02-23 | 2018-12-20 | Alibaba Group Holding Limited | Webpage data synchronization |
CN109685201A (zh) * | 2018-12-14 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109711539A (zh) * | 2018-12-17 | 2019-05-03 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2929434B1 (en) * | 2012-12-06 | 2019-01-16 | Coherent Logix Incorporated | Processing system with synchronization instruction |
CN104967658B (zh) * | 2015-05-08 | 2018-11-30 | 成都品果科技有限公司 | 一种多终端设备上的数据同步方法 |
CN108076126A (zh) * | 2016-11-18 | 2018-05-25 | 中兴通讯股份有限公司 | 一种数据同步方法及服务器 |
CN109977169B (zh) * | 2019-03-19 | 2023-05-19 | 广州品唯软件有限公司 | 数据同步方法、装置、计算机可读存储介质及系统 |
-
2019
- 2019-07-30 CN CN201910694672.XA patent/CN112306945B/zh active Active
-
2020
- 2020-08-26 WO PCT/CN2020/111259 patent/WO2021018313A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005296A1 (en) * | 2006-05-08 | 2008-01-03 | Cisco Technology, Inc. | Method and apparatus for synchronizing use of buffer descriptor entries |
CN107077327A (zh) * | 2014-06-30 | 2017-08-18 | 微体系统工程有限公司 | 用于可扩展宽操作数指令的系统和方法 |
WO2016179968A1 (zh) * | 2015-05-13 | 2016-11-17 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法、装置及存储介质 |
US20180365307A1 (en) * | 2016-02-23 | 2018-12-20 | Alibaba Group Holding Limited | Webpage data synchronization |
GB201811017D0 (en) * | 2018-07-04 | 2018-08-15 | Graphcore Ltd | Host Proxy On Gateway |
CN109685201A (zh) * | 2018-12-14 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109711539A (zh) * | 2018-12-17 | 2019-05-03 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100286A1 (zh) * | 2020-11-13 | 2022-05-19 | 中科寒武纪科技股份有限公司 | 数据处理装置、数据处理方法及相关产品 |
CN114416605A (zh) * | 2021-12-23 | 2022-04-29 | 深圳云天励飞技术股份有限公司 | 存储空间分配方法、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021018313A1 (zh) | 2021-02-04 |
CN112306945B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
US12112166B2 (en) | Data processing method and apparatus, and related product for increased efficiency of tensor processing | |
EP3825842B1 (en) | Data processing method and apparatus, and related product | |
CN112306945B (zh) | 数据同步方法及装置以及相关产品 | |
CN112347186B (zh) | 数据同步方法及装置以及相关产品 | |
US11687339B2 (en) | Data processing method and apparatus, and related product | |
WO2021027973A1 (zh) | 数据同步方法及装置以及相关产品 | |
US11886880B2 (en) | Data processing apparatus and related products with descriptor management | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113807507B (zh) | 数据处理方法及装置以及相关产品 | |
WO2021223642A1 (zh) | 数据处理方法及装置以及相关产品 | |
CN112347026B (zh) | 数据同步方法及装置以及相关产品 | |
CN112347185A (zh) | 数据同步方法及装置以及相关产品 | |
CN112395008A (zh) | 运算方法、装置、计算机设备和存储介质 | |
US20240126553A1 (en) | Data processing method and apparatus, and related product | |
CN111831722A (zh) | 数据同步方法及装置以及相关产品 | |
CN112306949B (zh) | 数据处理方法及装置以及相关产品 | |
CN113807489B (zh) | 用于执行反卷积操作的方法、板卡及其计算装置 | |
CN112395002B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111831329B (zh) | 数据处理方法及装置以及相关产品 | |
CN114282159A (zh) | 数据处理装置、集成电路芯片、设备及其实现的方法 | |
CN113806246A (zh) | 数据处理装置及方法以及相关产品 | |
CN113626081A (zh) | 数据处理方法及装置以及相关产品 | |
CN113296736A (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 |