CN111831337A - 数据同步方法及装置以及相关产品 - Google Patents

数据同步方法及装置以及相关产品 Download PDF

Info

Publication number
CN111831337A
CN111831337A CN201910320091.XA CN201910320091A CN111831337A CN 111831337 A CN111831337 A CN 111831337A CN 201910320091 A CN201910320091 A CN 201910320091A CN 111831337 A CN111831337 A CN 111831337A
Authority
CN
China
Prior art keywords
descriptor
data
synchronized
tensor data
synchronization
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
Application number
CN201910320091.XA
Other languages
English (en)
Other versions
CN111831337B (zh
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.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information Technology Co 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
Priority to CN201910320091.XA priority Critical patent/CN111831337B/zh
Application filed by Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to KR1020207036508A priority patent/KR102379406B1/ko
Priority to KR1020207032006A priority patent/KR20210002518A/ko
Priority to KR1020207036505A priority patent/KR102550451B1/ko
Priority to PCT/CN2020/082775 priority patent/WO2020200244A1/zh
Priority to KR1020207036496A priority patent/KR102522416B1/ko
Priority to KR1020207036492A priority patent/KR102519470B1/ko
Priority to EP20217329.0A priority patent/EP3825843B1/en
Priority to KR1020207036494A priority patent/KR102569336B1/ko
Priority to JP2021510522A priority patent/JP7073580B2/ja
Priority to EP20217330.8A priority patent/EP3825846A1/en
Priority to KR1020207036500A priority patent/KR102579192B1/ko
Priority to EP20217333.2A priority patent/EP3825848A1/en
Priority to EP20217331.6A priority patent/EP3825847B1/en
Priority to EP20783678.4A priority patent/EP3800547A4/en
Priority to EP20217332.4A priority patent/EP3828698B1/en
Priority to EP20217328.2A priority patent/EP3825842B1/en
Publication of CN111831337A publication Critical patent/CN111831337A/zh
Priority to JP2020198102A priority patent/JP7150802B2/ja
Priority to JP2020198079A priority patent/JP7121100B2/ja
Priority to JP2020198021A priority patent/JP7239547B2/ja
Priority to JP2020198041A priority patent/JP2021170312A/ja
Priority to JP2020198158A priority patent/JP7121101B2/ja
Priority to JP2020198177A priority patent/JP7121102B2/ja
Priority to US17/327,627 priority patent/US11687339B2/en
Publication of CN111831337B publication Critical patent/CN111831337B/zh
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/30003Arrangements for executing specific machine instructions
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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
    • G06F9/3824Operand accessing
    • 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
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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/3881Arrangements for communication of instructions and data

Landscapes

  • Engineering & Computer Science (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)
  • Multi Processors (AREA)

Abstract

本公开涉及一种数据同步方法及装置以及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。

Description

数据同步方法及装置以及相关产品
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据同步方法及装置以及相关产品。
背景技术
随着人工智能技术的不断发展,其应用领域越来越广泛,在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。然而,随着人工智能算法的复杂度提高,需要处理的数据量和数据维度都在不断增大,通常需要多核和/或多芯片进行数据处理。在进行核间或芯片间的数据同步时,采用相关技术的同步方式的同步开销较大,处理效率较低。
发明内容
有鉴于此,本公开提出了一种数据同步技术方案。
根据本公开的一方面,提供了一种数据同步方法,应用于第一处理器,该方法包括:根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步方法,应用于第二处理器,该方法包括:解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步方法,应用于第二处理器,该方法包括:当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;向所述第一处理器发送所述描述符同步请求指令。
根据本公开的另一方面,提供了一种数据同步装置,应用于第一处理器,该装置包括:同步指令生成模块,用于根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;同步指令发送模块,用于向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步装置,应用于第二处理器,该装置包括:第一解析模块,用于解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;第一数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
根据本公开的另一方面,提供了一种数据同步装置,应用于第二处理器,该装置包括:请求指令生成模块,用于当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;请求指令发送模块,用于向所述第一处理器发送所述描述符同步请求指令。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括上述数据同步装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括如上所述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开实施例,通过设定指示张量数据的形状的描述符,能够在需要数据同步时,根据待同步的张量数据的描述符生成描述符同步指令并向第二处理器发送该指令,以指示第二处理器根据描述符同步指令获取待同步的张量数据,从而减少同步开销,降低数据同步的复杂度,提高数据同步的效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据同步方法的流程图。
图2示出根据本公开实施例的数据同步方法的流程图。
图3示出根据本公开实施例的数据同步方法的流程图。
图4示出根据本公开实施例的数据同步方法的数据存储空间的示意图。
图5示出根据本公开实施例的数据同步装置的框图。
图6示出根据本公开实施例的数据同步装置的框图。
图7示出根据本公开实施例的数据同步装置的框图。
图8示出根据本公开实施例的板卡的结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的数据同步方法的流程图。该数据同步方法可应用于第一处理器中,该第一处理器可包括通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)。本公开对第一处理器的类型不作限制。
如图1所示,该数据同步方法包括:
在步骤S11中,根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
在步骤S12中,向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
举例来说,待同步的数据可包括N维的张量数据(N为大于或等于零的整数,例如N=1、2或3),其中,张量可以包含多种形式的数据组成方式,张量可以是不同维度的,比如标量可以看作是0维张量,向量可以看作1维张量,而矩阵可以是2维或2维以上的张量。张量的形状包括张量的维度、张量各个维度的尺寸等信息。例如对于张量:
Figure BDA0002034365550000031
该张量的形状可以被描述符描述为(2,4),也即通过两个参数表示该张量为二维张量,且该张量的第一维度(列)的尺寸为2、第二维度(行)的尺寸为4。需要说明的是,本公开对于描述符指示张量形状的方式并不做限定。在存储器中存储张量数据时,根据其数据地址(或存储区域)无法确定张量数据的形状,进而也无法确定多个张量数据之间相互关系等相关信息,导致处理器对张量数据的存取效率较低,在进行数据同步时的复杂度也较大。
在该情况下,可设定描述符(张量描述符)来指示张量数据(N维的张量数据)的形状。其中,N的取值可根据张量数据的维数(阶数)来确定,也可以根据张量数据的使用需要进行设定。例如,在N的取值为3时,张量数据为三维的张量数据,描述符可用来指示该三维的张量数据在三个维度方向上的形状(例如偏移量、尺寸等)。应当理解,本领域技术人员可以根据实际需要对N的取值进行设置,本公开对此不作限制。
在一种可能的实现方式中,描述符可包括标识和内容等,描述符的标识可用于对描述符进行区分,例如为编号;描述符的内容可包括表示张量数据的形状的至少一个形状参数(例如张量的各个维度方向上的尺寸等),还可以包括表示张量数据的地址的至少一个地址参数(例如数据基准点的基准地址)。本公开对描述符的内容包括的具体参数不作限制。
通过采用描述符来指示张量数据的方式,能够表达张量数据的形状,进而也能够确定多个张量数据之间的相互关系等相关信息,提高对张量数据的存取效率,从而降低数据同步时的复杂度。
在一种可能的实现方式中,在数据处理过程中,可能需要进行多个处理器(例如人工智能芯片的多个核)之间的数据同步,例如将处理器A1的运算结果同步到处理器A2中做为另一项运算的输入数据。在该情况下,可以采用基于描述符的数据同步机制实现数据同步。
在一种可能的实现方式中,第一处理器是数据同步的发送方,第二处理器是数据同步的接收方。当存在待同步的张量数据时,第一处理器可在步骤S11中根据该张量数据的描述符,生成描述符同步指令,并在步骤S12中向待同步的第二处理器发送该描述符同步指令。其中,第二处理器可包括通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)。第二处理器可与第一处理器的类型相同或不同,本公开对第二处理器的类型不作限制。
在一种可能的实现方式中,第一处理器可以主动发起对第二处理器的数据同步,例如在第一处理器完成一项运算得到运算结果(张量数据)时,主动发起对需要使用该运算结果的第二处理器的数据同步。在另一个示例中,第一处理器也可以响应于第二处理器的同步请求,发起对第二处理器的数据同步,例如在接收到第二处理器的同步请求指令时,发起对第二处理器的数据同步。本公开对数据同步的发起时机不作限制。
在一种可能的实现方式中,当第一处理器确定存在待同步的张量数据时,可以获取该张量数据的描述符。该描述符可以是已注册(创建)的用于指示该张量数据的形状的描述符,也可以根据该张量数据的形状参数注册(创建)新的描述符,本公开对此不作限制。
在一种可能的实现方式中,根据该张量数据的描述符,可生成描述符同步指令,该描述符同步指令包括所述描述符的标识和/或所述描述符的内容。如果第二处理器中已注册有指示该待同步的张量数据的描述符,则描述符同步指令可仅包括描述符的标识(例如在描述符的标识为TR1时,将描述符同步指令表示为Send TR1),以指示第二处理器根据该描述符的标识(TR1)实现张量数据的同步;如果第二处理器中未注册指示该待同步的张量数据的描述符,则描述符同步指令可包括描述符的内容,或同时包括描述符的标识和内容两者,以指示第二处理器根据该描述符的内容实现张量数据的同步。本公开对描述符同步指令包括的具体内容不作限制。
在一种可能的实现方式中,在生成描述符同步指令后,可向第二处理器发送该描述符同步指令,以指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。如果描述符同步指令包括描述符的标识,则第二处理器可根据描述符的标识获取描述符的内容,再根据描述符的内容获取描述符所指示的张量数据,从而实现张量数据的同步。如果描述符同步指令包括描述符的内容,则第二处理器可根据描述符的内容直接获取描述符所指示的张量数据,从而实现张量数据的同步。
根据本公开实施例的数据同步方法,通过设定指示张量数据的形状的描述符,能够在需要数据同步时,根据待同步的张量数据的描述符生成描述符同步指令并向第二处理器发送该指令,以指示第二处理器根据描述符同步指令获取待同步的张量数据,从而减少同步开销,降低数据同步的复杂度,提高数据同步的效率。
在一种可能的实现方式中,所述方法还包括:根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符。
举例来说,第一处理器可响应于第二处理器的同步请求,发起对第二处理器的数据同步。其中,来自第二处理器的描述符同步请求指令可包括待同步的张量数据的信息,例如指示该待同步的张量数据的描述符的标识、该待同步的张量数据的数据特征等。其中,张量数据的数据特征可包括张量数据的形状、来源、地址等信息,本公开对描述符同步请求指令的具体内容不作限制。根据描述符同步请求指令中的信息,第一处理器可确定待同步的张量数据的描述符,进而生成描述符同步指令。
通过这种方式,可以根据第二处理器的同步请求确定待同步的张量数据的描述符,以便生成描述符同步指令,从而避免不必要的数据同步,提高了数据同步的效率。
在一种可能的实现方式中,所述描述符同步请求指令包括描述符的标识,
其中,所述根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符的步骤可包括:解析所述描述符同步请求指令,获得所述描述符的标识;根据所述描述符的标识,确定所述待同步的张量数据的描述符。
举例来说,如果第一处理器和第二处理器均已注册有指示该张量数据的描述符,且描述符的标识相同或具有对应关系,则描述符同步请求指令中可包括描述符的标识,例如在描述符的标识为TR1时,将描述符同步请求指令表示为Receive TR1。第一处理器可解析来自第二处理器的描述符同步请求指令,得到描述符的标识;进而根据描述符的标识,确定所述待同步的张量数据的描述符,以便生成描述符同步指令。
通过这种方式,可以根据请求指令中的描述符标识确定待同步的张量数据的描述符,以便实现张量数据的同步,从而减小同步时传输的数据量,提高处理效率。
在一种可能的实现方式中,所述描述符同步请求指令包括所述待同步的张量数据的数据特征,
其中,所述根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符的步骤可包括:解析所述描述符同步请求指令,获得待同步的张量数据的数据特征;根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
举例来说,如果第二处理器中未注册指示该张量数据的描述符,或已注册有指示该张量数据的描述符但描述符标识不具有对应关系,则描述符同步请求指令中可包括待同步的张量数据的数据特征。第一处理器可解析来自第二处理器的描述符同步请求指令,得到待同步的张量数据的数据特征;进而根据待同步的张量数据的数据特征,确定所述待同步的张量数据及其描述符,以便生成描述符同步指令。
在一种可能的实现方式中,待同步的张量数据的数据特征可包括张量数据的形状、来源、地址等信息。例如,该张量数据的数据来源为第K个发送方(第K个处理器)、该张量数据的数据来源为编号200的卷积操作的运算结果、该张量数据的地址为特定的地址区域(例如地址ADDR0-ADDR127)、该张量数据的形状为指定的形状(例如20*10的二维张量)等。本领域技术人员可根据实际情况设定待同步的张量数据的数据特征,本公开对此不作限制。
在一种可能的实现方式中,根据该数据特征,第一处理器可查找到待同步的张量数据,并确定该待同步的张量数据的描述符,例如直接获取或新注册对应的描述符。根据该待同步的张量数据的描述符,可生成并发送描述符同步指令,以指示第二处理器实现该张量数据的同步。
通过这种方式,可以根据请求指令中的数据特征确定待同步的张量数据的描述符,以便实现张量数据的同步,从而在同步时无需传输张量数据本身,减小了传输的数据量和同步开销,提高了处理效率。
在一种可能的实现方式中,所述描述符同步指令包括待同步的张量数据的描述符的内容,其中,步骤S11可包括:
在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
举例来说,多个处理器(多个核)可以具有共用存储空间,例如第一处理器和第二处理器均可以访问的片下存储器。该共用存储空间可以是多个核(多个处理器)均能够存取数据的存储空间,也可以是部分核(部分处理器)能够存取数据的存储空间,可以预先设定有核间的共用存储空间,本公开对共用存储空间的设定方式不作限制。
在一种可能的实现方式中,如果待同步的张量数据的存储地址处于共用存储空间中,则由于第二处理器也可从共用存储空间存取数据,第二处理器根据描述符的内容就可以直接读取张量数据以实现同步。在该情况下,描述符同步指令可包括待同步的张量数据的描述符的内容,也即,可根据所述待同步的张量数据的描述符的内容,生成描述符同步指令。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容;根据描述符的内容,第二处理器可确定待同步的张量数据的数据地址,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以避免不必要的数据传输,减少张量数据存取次数,提高了同步的处理效率。
在一种可能的实现方式中,步骤S11可包括:
将所述待同步的张量数据的描述符的内容存储到同步数据存储空间;
根据所述描述符的内容在所述同步数据存储空间中的地址,生成描述符同步指令,以指示所述第二处理器从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容。
举例来说,多个处理器(多个核)可以具有同步数据存储空间,专门用于存储同步数据。该同步数据存储空间可以是上述的共用存储空间,也可以是共用存储空间的一部分,还可以是与共用存储空间不同的存储空间,本公开对此不作限制。
在一种可能的实现方式中,同步数据存储空间可是多个核(多个处理器)均能够存取同步数据的存储空间,也可以是部分核(部分处理器)能够存取同步数据的存储空间,本公开对此不作限制。
在一种可能的实现方式中,第一处理器在确定待同步的张量数据的描述符后,可以将描述符的内容存储到同步数据存储空间;并根据描述符的内容在同步数据存储空间中的地址,生成并发送描述符同步指令。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容的存储地址;根据该存储地址,第二处理器可从同步数据存储空间获取待同步的张量数据的描述符的内容,进而根据描述符的内容确定待同步的张量数据的数据地址,获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以进一步减少同步时处理器间的数据传输,提高同步的处理效率。
在一种可能的实现方式中,步骤S11可包括:
在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;
根据所述待同步的张量数据在共用存储空间中的地址,生成所述待同步的张量数据的描述符;
根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
举例来说,第一处理器可以具有非共用存储空间,第一处理器可存取该非共用存储空间中的数据,而第二处理器无法访问到第一处理器的非共用存储空间,不能存取该非共用存储空间中的数据。如果待同步的张量数据的存储地址处于非共用存储空间,则第二处理器无法直接获取该张量数据。在该情况下,第一处理器可将待同步的张量数据转存到共用存储空间,以使第二处理器能够存取该张量数据。在完成转存后,如果第一处理器中未注册指示该待同步的张量数据的描述符,或已注册有指示非共用存储空间中的该张量数据的描述符且该描述符不可修改(例如正在被操作),则第一处理器可生成所述待同步的张量数据的描述符,也即,注册新的描述符,以指示在共用存储空间中的该张量数据。
在一种可能的实现方式中,在生成描述符后,第一处理器可根据描述符的内容生成描述符同步指令。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容;根据描述符的内容,第二处理器可确定待同步的张量数据的数据地址,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可将非共用存储空间中待同步的张量数据主动转存到共用存储空间,以使第二处理器能够获取待同步的张量数据,从而减少同步时处理器间的数据传输,提高同步的处理效率。
在一种可能的实现方式中,步骤S11可包括:
在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;
根据所述待同步的张量数据在共用存储空间中的地址,修改所述待同步的张量数据的描述符;
根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
举例来说,与上面的描述类似,如果待同步的张量数据处于第一处理器非共用存储空间,则第一处理器可将待同步的张量数据转存到共用存储空间。在完成转存后,如果第一处理器中已注册有指示非共用存储空间中的该张量数据的描述符且该描述符可修改(例如描述符未被操作),则第一处理器可直接修改待同步的张量数据的描述符,使得该描述符指示在共用存储空间中的该张量数据。
在一种可能的实现方式中,在修改描述符后,第一处理器可根据描述符的内容生成描述符同步指令。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容;根据描述符的内容,第二处理器可确定待同步的张量数据的数据地址,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可将非共用存储空间中待同步的张量数据主动转存到共用存储空间,减少同步时处理器间的数据传输,提高同步的处理效率;并且,第一处理器不需要创建新的描述符,节省了有限的描述符资源。
图2示出根据本公开实施例的数据同步方法的流程图。该数据同步方法可应用于第二处理器中。如图2所示,该数据同步方法包括:
在步骤S21中,解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
在步骤S22中,根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
举例来说,第一处理器(发送方)可以主动发起对第二处理器(接收方)的数据同步,例如在第一处理器完成一项运算得到运算结果(张量数据)时,主动发起对需要使用该运算结果的第二处理器的数据同步。
在一种可能的实现方式中,第二处理器在接收到来自第一处理器的描述符同步指令时,可解析该描述符同步指令,得到待同步的张量数据的描述符(例如描述符的标识和/或所述描述符的内容)。
在一种可能的实现方式中,如果该描述符同步指令仅包括描述符的标识,则第二处理器可内部查找该描述符的标识对应的描述符内容,进而根据描述符内容获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该描述符同步指令包括描述符的标识和内容,则第二处理器可查找该描述符的标识对应的描述符,并根据描述符同步指令中的描述符内容,更新原来的描述符内容;根据更新后的描述符内容获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该描述符同步指令包括描述符的内容,则第二处理器可根据描述符的内容,注册指示该待同步的张量数据的描述符,并根据描述符的内容获取待同步的张量数据,从而实现张量数据的同步。
根据本公开实施例的数据同步方法,通过设定指示张量数据的形状的描述符,能够根据描述符同步指令中的指示待同步的张量数据的描述符,获取待同步的张量数据,实现张量数据的同步,从而减少同步开销,降低数据同步的复杂度,提高数据同步的效率。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,步骤S22包括:
根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
举例来说,如果待同步的张量数据的存储地址处于共用存储空间中,则第二处理器可从共用存储空间存取数据。在该情况下,描述符同步指令可包括待同步的张量数据的描述符的内容。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容;根据描述符的内容,第二处理器可确定待同步的张量数据的数据地址,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以避免不必要的数据传输,减少张量数据存取次数,提高了同步的处理效率。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,步骤S22包括:
根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;
根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
举例来说,第一处理器在确定待同步的张量数据的描述符后,可以将描述符的内容存储到同步数据存储空间;并根据描述符的内容在同步数据存储空间中的地址,生成并发送描述符同步指令。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容的存储地址;根据该存储地址,第二处理器可从同步数据存储空间获取待同步的张量数据的描述符的内容,进而根据描述符的内容确定待同步的张量数据的数据地址,获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以进一步减少同步时处理器间的数据传输,提高同步的处理效率。
图3示出根据本公开实施例的数据同步方法的流程图。该数据同步方法可应用于第二处理器中。如图3所示,该数据同步方法包括:
在步骤S31中,当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
在步骤S32中,向所述第一处理器发送所述描述符同步请求指令。
举例来说,当第二处理器中存在待同步的张量数据时,可以主动向第一处理器发送描述符同步请求指令,以便获取该待同步的张量数据。第二处理器可根据待同步的张量数据的信息,例如指示该待同步的张量数据的描述符的标识、该待同步的张量数据的数据特征等,生成描述符同步请求指令。本公开对描述符同步请求指令的具体内容不作限制。根据描述符同步请求指令中的信息,第一处理器可确定待同步的张量数据的描述符,进而生成描述符同步指令。
通过这种方式,可以在需要同步时主动发起同步请求,提高数据同步的效率。
在一种可能的实现方式中,所述描述符同步请求指令包括描述符的标识和/或所述待同步的张量数据的数据特征,以使第一处理器能够确定待同步的张量数据。其中,张量数据的数据特征可包括张量数据的形状、来源、地址等信息。本领域技术人员可根据实际情况设定待同步的张量数据的数据特征,本公开对此不作限制。
在一种可能的实现方式中,所述方法还包括:
解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容;
根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
举例来说,如果第一处理器和第二处理器均已注册有指示该张量数据的描述符,且描述符的标识相同或具有对应关系,则描述符同步请求指令中可包括描述符的标识,例如在描述符的标识为TR1时,将描述符同步请求指令表示为Receive TR1。第一处理器可解析来自第二处理器的描述符同步请求指令,得到描述符的标识;进而根据描述符的标识,确定所述待同步的张量数据的描述符,以便生成描述符同步指令。
在一种可能的实现方式中,第二处理器接收到描述符同步指令时,可解析该描述符同步指令,得到待同步的张量数据的描述符(描述符的标识和/或描述符的内容)。如果该描述符同步指令仅包括描述符的标识,则第二处理器可内部查找该描述符的标识对应的描述符内容,进而根据描述符内容获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该描述符同步指令包括描述符的标识和内容,则第二处理器可查找该描述符的标识对应的描述符,并根据描述符同步指令中的描述符内容,更新原来的描述符内容;根据更新后的描述符内容获取待同步的张量数据,从而实现张量数据的同步。
在一种可能的实现方式中,如果该描述符同步指令包括描述符的内容,则第二处理器可根据描述符的内容,注册指示该待同步的张量数据的描述符,并根据描述符的内容获取待同步的张量数据,从而实现张量数据的同步。
通过这种方式,可以降低数据同步的复杂度,提高数据同步的效率。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据的步骤可包括:
根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
举例来说,如果待同步的张量数据的存储地址处于共用存储空间中,则第二处理器可从共用存储空间存取数据。在该情况下,描述符同步指令可包括待同步的张量数据的描述符的内容。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容;根据描述符的内容,第二处理器可确定待同步的张量数据的数据地址,并从共用存储空间获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以避免不必要的数据传输,减少张量数据存取次数,提高了同步的处理效率。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据的步骤可包括:
根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;
根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
第一处理器在确定待同步的张量数据的描述符后,可以将描述符的内容存储到同步数据存储空间;并根据描述符的内容在同步数据存储空间中的地址,生成并发送描述符同步指令。第二处理器接收到描述符同步指令后,可解析指令以得到描述符的内容的存储地址;根据该存储地址,第二处理器可从同步数据存储空间获取待同步的张量数据的描述符的内容,进而根据描述符的内容确定待同步的张量数据的数据地址,获取所述待同步的张量数据,从而实现整个同步过程。
通过这种方式,可以进一步减少同步时处理器间的数据传输,提高同步的处理效率。
在一种可能的实现方式中,描述符的标识和内容可存储在描述符存储空间中,该描述符存储空间可以为处理器的内部存储器(例如寄存器、片上的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)表示的、该张量数据映射在三维空间中的点或区域的位置。
应当理解,本领域技术人员可以根据实际情况选择表示张量数据的形状参数,本公开对此不作限制。
图4示出根据本公开一实施例的数据同步方法的数据存储空间的示意图。如图4所示,数据存储空间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 BDA0002034365550000131
应当理解,虽然上述示例中,描述符描述的是二维空间,但本领域技术人员可以根据实际情况对描述符的内容表示的维度进行设置,本公开对此不作限制。
在一种可能的实现方式中,可根据所述描述符的数据基准点在所述数据存储空间中的基准地址、处于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)来表示描述符的内容:
Figure BDA0002034365550000141
应当理解,虽然上述示例中使用左上角和右下角两个顶点来确定描述符的内容,但本领域技术人员可以根据实际需要对至少两个顶点的具体顶点进行设置,本公开对此不作限制。
在一种可能的实现方式中,可根据所述描述符的数据基准点在所述数据存储空间中的基准地址,以及所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系,确定所述张量数据的描述符的内容。其中,数据描述位置与数据地址之间的映射关系可以根据实际需要进行设定,例如,描述符所指示的张量数据为三维空间数据时,可是使用函数f(x,y,z)来定义数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,可以使用下述公式(3)来表示描述符的内容:
Figure BDA0002034365550000142
应当理解,本领域技术人员可以根据实际情况对数据描述位置与数据地址之间的映射关系进行设定,本公开对此不作限制。
在采用公式(1)表示描述符的内容的情况下,对于张量数据中的任意一个数据点,设其数据描述位置为(xq,yq),那么,该数据点在数据存储空间中的数据地址PA2(x,y)可以使用下述公式(4)来确定:
PA2(x,y)=PA_start+(offset_y+yq-1)*ori_x+(offset_x+xq) (4)
通过这种方式,处理器可以根据描述符的内容计算出描述符所指示的张量数据在数据存储空间中的数据地址,进而根据该地址执行对应的处理(例如数据运算、数据同步等),从而可降低数据存取的复杂度,提高处理器的处理效率。
图5示出根据本公开实施例的数据同步装置的框图。该数据同步装置应用于第一处理器,如图5所示,该数据同步装置包括:
同步指令生成模块51,用于根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
同步指令发送模块52,用于向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
在一种可能的实现方式中,所述装置还包括:第一描述符确定模块,用于根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符。
在一种可能的实现方式中,所述描述符同步请求指令包括描述符的标识,其中,所述第一描述符确定模块包括:
第一解析子模块,用于解析所述描述符同步请求指令,获得所述描述符的标识;
第一确定子模块,用于根据所述描述符的标识,确定所述待同步的张量数据的描述符。
在一种可能的实现方式中,所述描述符同步请求指令包括所述待同步的张量数据的数据特征,其中,所述第一描述符确定模块包括:
第二解析子模块,用于解析所述描述符同步请求指令,获得待同步的张量数据的数据特征;
第二确定子模块,用于根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
在一种可能的实现方式中,所述描述符同步指令包括待同步的张量数据的描述符的内容,其中,所述同步指令生成模块包括:
第一生成子模块,用于在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,所述同步指令生成模块包括:
第一存储子模块,用于将所述待同步的张量数据的描述符的内容存储到同步数据存储空间;
第二生成子模块,用于根据所述描述符的内容在所述同步数据存储空间中的地址,生成描述符同步指令,以指示所述第二处理器从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容。
在一种可能的实现方式中,所述同步指令生成模块包括:
第二存储子模块,用于在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;
描述符生成子模块,用于根据所述待同步的张量数据在共用存储空间中的地址,生成所述待同步的张量数据的描述符;
第三生成子模块,用于根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,所述同步指令生成模块包括:
第三存储子模块,用于在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;
描述符修改子模块,用于根据所述待同步的张量数据在共用存储空间中的地址,修改所述待同步的张量数据的描述符;
第四生成子模块,用于根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
图6示出根据本公开实施例的数据同步装置的框图。该数据同步装置应用于第二处理器,如图6所示,该数据同步装置包括:
第一解析模块61,用于解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
第一数据获取模块62,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述第一数据获取模块包括:
第一数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述第一数据获取模块包括:
第一内容获取子模块,用于根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;
第二数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
图7示出根据本公开实施例的数据同步装置的框图。该数据同步装置应用于第二处理器,如图7所示,该数据同步装置包括:
请求指令生成模块71,用于当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
请求指令发送模块72,用于向所述第一处理器发送所述描述符同步请求指令。
在一种可能的实现方式中,所述描述符同步请求指令包括描述符的标识和/或所述待同步的张量数据的数据特征。
在一种可能的实现方式中,所述装置还包括:
第二解析模块,用于解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容;
第二数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述第二数据获取模块包括:
第三数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述第二数据获取模块包括:
第二内容获取子模块,用于根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;
第四数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述数据同步装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图8示出根据本公开实施例的板卡的结构框图,参阅图8,上述板卡除了包括上述芯片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、根据权利要求A2所述的方法,所述描述符同步请求指令包括描述符的标识,其中,所述根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符,包括:解析所述描述符同步请求指令,获得所述描述符的标识;根据所述描述符的标识,确定所述待同步的张量数据的描述符。
A4、根据权利要求A2所述的方法,所述描述符同步请求指令包括所述待同步的张量数据的数据特征,其中,所述根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符,包括:解析所述描述符同步请求指令,获得待同步的张量数据的数据特征;根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
A5、根据权利要求A1-A4中任意一项所述的方法,所述描述符同步指令包括待同步的张量数据的描述符的内容,其中,所述根据待同步的张量数据的描述符,生成描述符同步指令,包括:在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
A6、根据权利要求A1-A4中任意一项所述的方法,所述根据待同步的张量数据的描述符,生成描述符同步指令,包括:将所述待同步的张量数据的描述符的内容存储到同步数据存储空间;根据所述描述符的内容在所述同步数据存储空间中的地址,生成描述符同步指令,以指示所述第二处理器从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容。
A7、根据权利要求A1-A4中任意一项所述的方法,所述根据待同步的张量数据的描述符,生成描述符同步指令,包括:在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;根据所述待同步的张量数据在共用存储空间中的地址,生成所述待同步的张量数据的描述符;根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
A8、根据权利要求A1-A4中任意一项所述的方法,所述根据待同步的张量数据的描述符,生成描述符同步指令,包括:在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;根据所述待同步的张量数据在共用存储空间中的地址,修改所述待同步的张量数据的描述符;根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
A9、一种数据同步方法,所述方法应用于第二处理器,包括:解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
A10、根据权利要求A9所述的方法,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据,包括:根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A11、根据权利要求A9所述的方法,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据,包括:根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A12、一种数据同步方法,所述方法应用于第二处理器,包括:当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;向所述第一处理器发送所述描述符同步请求指令。
A13、根据权利要求A12所述的方法,所述描述符同步请求指令包括描述符的标识和/或所述待同步的张量数据的数据特征。
A14、根据权利要求A12或A13所述的方法,所述方法还包括:解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容;根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
A15、根据权利要求A14所述的方法,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据,包括:根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A16、根据权利要求A14所述的方法,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述根据所述待同步的张量数据的描述符,获取所述待同步的张量数据,包括:根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A17、一种数据同步装置,所述装置应用于第一处理器,包括:同步指令生成模块,用于根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;同步指令发送模块,用于向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
A18、根据权利要求A17所述的装置,所述装置还包括:第一描述符确定模块,用于根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符。
A19、根据权利要求A18所述的装置,所述描述符同步请求指令包括描述符的标识,其中,所述第一描述符确定模块包括:第一解析子模块,用于解析所述描述符同步请求指令,获得所述描述符的标识;第一确定子模块,用于根据所述描述符的标识,确定所述待同步的张量数据的描述符。
A20、根据权利要求A18所述的装置,所述描述符同步请求指令包括所述待同步的张量数据的数据特征,其中,所述第一描述符确定模块包括:第二解析子模块,用于解析所述描述符同步请求指令,获得待同步的张量数据的数据特征;第二确定子模块,用于根据待同步的张量数据的数据特征,确定所述待同步的张量数据的描述符。
A21、根据权利要求A17-A20中任意一项所述的装置,所述描述符同步指令包括待同步的张量数据的描述符的内容,其中,所述同步指令生成模块包括:第一生成子模块,用于在待同步的张量数据的存储地址处于共用存储空间中时,根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
A22、根据权利要求A17-A20中任意一项所述的装置,所述同步指令生成模块包括:第一存储子模块,用于将所述待同步的张量数据的描述符的内容存储到同步数据存储空间;第二生成子模块,用于根据所述描述符的内容在所述同步数据存储空间中的地址,生成描述符同步指令,以指示所述第二处理器从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容。
A23、根据权利要求A17-A20中任意一项所述的装置,所述同步指令生成模块包括:第二存储子模块,用于在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;描述符生成子模块,用于根据所述待同步的张量数据在共用存储空间中的地址,生成所述待同步的张量数据的描述符;第三生成子模块,用于根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
A24、根据权利要求A17-A20中任意一项所述的装置,所述同步指令生成模块包括:第三存储子模块,用于在待同步的张量数据的存储地址处于非共用存储空间中时,将所述待同步的张量数据存储到共用存储空间;描述符修改子模块,用于根据所述待同步的张量数据在共用存储空间中的地址,修改所述待同步的张量数据的描述符;第四生成子模块,用于根据所述待同步的张量数据的描述符的内容,生成描述符同步指令,以指示所述第二处理器根据所述待同步的张量数据的描述符的内容,从所述共用存储空间获取所述待同步的张量数据。
A25、一种数据同步装置,所述装置应用于第二处理器,包括:第一解析模块,用于解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;第一数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
A26、根据权利要求A25所述的装置,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述第一数据获取模块包括:第一数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A27、根据权利要求A25所述的装置,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述第一数据获取模块包括:
第一内容获取子模块,用于根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;第二数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A28、一种数据同步装置,所述装置应用于第二处理器,包括:请求指令生成模块,用于当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;请求指令发送模块,用于向所述第一处理器发送所述描述符同步请求指令。
A29、根据权利要求A28所述的装置,所述描述符同步请求指令包括描述符的标识和/或所述待同步的张量数据的数据特征。
A30、根据权利要求A28或A29所述的装置,所述装置还包括:第二解析模块,用于解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容;第二数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
A31、根据权利要求A30所述的装置,所述描述符同步指令包括所述待同步的张量数据的描述符的内容,其中,所述第二数据获取模块包括:第三数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A32、根据权利要求A30所述的装置,所述描述符同步指令包括所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,其中,所述第二数据获取模块包括:
第二内容获取子模块,用于根据所述待同步的张量数据的描述符的内容在同步数据存储空间中的地址,从所述同步数据存储空间获取所述待同步的张量数据的描述符的内容;第四数据获取子模块,用于根据所述待同步的张量数据的描述符的内容,从共用存储空间获取所述待同步的张量数据。
A33、一种人工智能芯片,所述芯片包括如权利要求A17-A32中任意一项所述的数据同步装置。
A34、一种电子设备,所述电子设备包括如权利要求A33所述的人工智能芯片。
A35、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求A33所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
A36、根据权利要求A35所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;所述接口装置为:标准PCIE接口。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种数据同步方法,其特征在于,所述方法应用于第一处理器,包括:
根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据来自第二处理器的描述符同步请求指令,确定所述待同步的张量数据的描述符。
3.一种数据同步方法,其特征在于,所述方法应用于第二处理器,包括:
解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
4.一种数据同步方法,其特征在于,所述方法应用于第二处理器,包括:
当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
向所述第一处理器发送所述描述符同步请求指令。
5.一种数据同步装置,其特征在于,所述装置应用于第一处理器,包括:
同步指令生成模块,用于根据待同步的张量数据的描述符,生成描述符同步指令,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
同步指令发送模块,用于向第二处理器发送所述描述符同步指令,所述描述符同步指令用于指示第二处理器根据所述描述符同步指令获取所述待同步的张量数据。
6.一种数据同步装置,其特征在于,所述装置应用于第二处理器,包括:
第一解析模块,用于解析来自第一处理器的描述符同步指令,得到待同步的张量数据的描述符,所述描述符同步指令包括所述描述符的标识和/或所述描述符的内容,所述描述符用于指示待同步的张量数据的形状;
第一数据获取模块,用于根据所述待同步的张量数据的描述符,获取所述待同步的张量数据。
7.一种数据同步装置,其特征在于,所述装置应用于第二处理器,包括:
请求指令生成模块,用于当存在待同步的张量数据时,生成描述符同步请求指令,所述描述符同步请求指令用于指示第一处理器根据所述描述符同步请求指令发送待同步的张量数据的描述符,所述描述符用于指示待同步的张量数据的形状;
请求指令发送模块,用于向所述第一处理器发送所述描述符同步请求指令。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求5-7中任意一项所述的数据同步装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
CN201910320091.XA 2019-04-04 2019-04-19 数据同步方法及装置以及相关产品 Active CN111831337B (zh)

Priority Applications (24)

Application Number Priority Date Filing Date Title
CN201910320091.XA CN111831337B (zh) 2019-04-19 2019-04-19 数据同步方法及装置以及相关产品
EP20217332.4A EP3828698B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036505A KR102550451B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
PCT/CN2020/082775 WO2020200244A1 (zh) 2019-04-04 2020-04-01 数据处理方法及装置以及相关产品
KR1020207036496A KR102522416B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
KR1020207036492A KR102519470B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
EP20217329.0A EP3825843B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036494A KR102569336B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
JP2021510522A JP7073580B2 (ja) 2019-04-04 2020-04-01 データ処理方法、装置、及び関連製品
KR1020207032006A KR20210002518A (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
KR1020207036500A KR102579192B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
EP20217333.2A EP3825848A1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036508A KR102379406B1 (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
EP20217330.8A EP3825846A1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
EP20217328.2A EP3825842B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
EP20783678.4A EP3800547A4 (en) 2019-04-04 2020-04-01 DATA PROCESSING METHOD AND DEVICE AND RELEVANT PRODUCT
JP2020198079A JP7121100B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198021A JP7239547B2 (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 データ処理方法、装置、及び関連製品
JP2020198158A JP7121101B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198177A JP7121102B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
US17/327,627 US11687339B2 (en) 2019-04-19 2021-05-21 Data processing method and apparatus, and related product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910320091.XA CN111831337B (zh) 2019-04-19 2019-04-19 数据同步方法及装置以及相关产品

Publications (2)

Publication Number Publication Date
CN111831337A true CN111831337A (zh) 2020-10-27
CN111831337B CN111831337B (zh) 2022-11-29

Family

ID=72912137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910320091.XA Active CN111831337B (zh) 2019-04-04 2019-04-19 数据同步方法及装置以及相关产品

Country Status (2)

Country Link
US (1) US11687339B2 (zh)
CN (1) CN111831337B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782577B (zh) * 2019-04-04 2023-03-24 安徽寒武纪信息科技有限公司 数据处理装置及方法以及相关产品
CN111831337B (zh) * 2019-04-19 2022-11-29 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品

Citations (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01277936A (ja) * 1988-04-28 1989-11-08 Nec Corp データ同期方法およびその装置
US6360287B1 (en) * 1997-12-10 2002-03-19 Sony Corporation Method and apparatus for asynchronous communication over a standard data bus using a plurality of data descriptors having still image data written therein
US6519655B1 (en) * 1997-07-22 2003-02-11 Sextant Avionique Message preprocessing operations indicated by an associated descriptor read and descriptors belonging to a category of preprocessing descriptors and a category of instruction descriptors
US20040193735A1 (en) * 2002-09-12 2004-09-30 Pavel Peleska Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processor units
US20040221294A1 (en) * 2003-04-30 2004-11-04 International Business Machines Corporation Method and system for optimizing file table usage
CN1588300A (zh) * 2004-08-09 2005-03-02 威盛电子股份有限公司 进行硬盘阵列同位运算的装置与相关方法
US20060161741A1 (en) * 2005-01-18 2006-07-20 Sony Computer Entertainment Inc. Methods and apparatus for providing synchronization of shared data
US20070050527A1 (en) * 2005-08-26 2007-03-01 Cheng-Ming Tuan Synchronization method for a multi-processor system and the apparatus thereof
US20080005296A1 (en) * 2006-05-08 2008-01-03 Cisco Technology, Inc. Method and apparatus for synchronizing use of buffer descriptor entries
US7437521B1 (en) * 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US20090198938A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Handling of address conflicts during asynchronous memory move operations
CN103338144A (zh) * 2013-05-30 2013-10-02 华为软件技术有限公司 一种会话数据同步方法和装置
US20160070589A1 (en) * 2014-09-10 2016-03-10 Amazon Technologies, Inc. Scalable log-based transaction management
WO2016040666A1 (en) * 2014-09-10 2016-03-17 Amazon Technologies, Inc. Scalable log-based transaction management
US20160246599A1 (en) * 2015-02-25 2016-08-25 Mireplica Technology, Llc Hardware Instruction Generation Unit for Specialized Processors
CN106339178A (zh) * 2015-07-09 2017-01-18 爱思开海力士有限公司 存储器控制单元及包括该存储器控制单元的数据存储设备
US20170052723A1 (en) * 2014-06-10 2017-02-23 Hewlett Packard Enterprise Development Lp Replicating data using remote direct memory access (rdma)
US20170083331A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Memory synchronization in block-based processors
US20170131939A1 (en) * 2015-11-06 2017-05-11 Vivante Corporation Transfer descriptor for memory access commands
US9836691B1 (en) * 2016-10-27 2017-12-05 Google Inc. Neural network instruction set architecture
US20180034892A1 (en) * 2016-07-28 2018-02-01 Caringo, Inc. Multi-part upload
US20180314946A1 (en) * 2017-04-28 2018-11-01 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US20180341483A1 (en) * 2017-05-24 2018-11-29 Microsoft Technology Licensing, Llc Tensor Register Files
US20190042940A1 (en) * 2017-08-04 2019-02-07 Fujitsu Limited Information processing apparatus and component estimation method
US20190050717A1 (en) * 2017-08-11 2019-02-14 Google Llc Neural network accelerator with parameters resident on chip
CN109446147A (zh) * 2018-11-09 2019-03-08 郑州云海信息技术有限公司 一种网络存储设备与pcie设备的数据交互方法
CN109522052A (zh) * 2018-11-27 2019-03-26 北京中科寒武纪科技有限公司 一种计算装置及板卡
CN109522254A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 运算装置及方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63311450A (ja) 1987-06-12 1988-12-20 Fujitsu Ltd ファイルアクセス排他制御方式
JPH01185969A (ja) 1988-01-20 1989-07-25 Mitsubishi Electric Corp 半導体装置の製造方法
JPH0353320A (ja) 1989-07-21 1991-03-07 Nec Corp マイクロプログラム制御方式
JP4227218B2 (ja) 1997-04-30 2009-02-18 キヤノン株式会社 動的メモリ管理装置及びその制御方法
US6662280B1 (en) 1999-11-10 2003-12-09 Advanced Micro Devices, Inc. Store buffer which forwards data based on index and optional way match
JP4355878B2 (ja) 2000-03-01 2009-11-04 日立建機株式会社 クローラ式車両のトラックフレーム
JP4060639B2 (ja) 2002-05-15 2008-03-12 日本電信電話株式会社 データ管理装置
JP3646137B2 (ja) 2003-03-25 2005-05-11 独立行政法人科学技術振興機構 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体
WO2008073655A2 (en) * 2006-11-08 2008-06-19 Epals, Inc. Dynamic characterization of nodes in a semantic network
US20100325395A1 (en) 2009-06-19 2010-12-23 Doug Burger Dependence prediction in a memory system
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
EP4120070B1 (en) 2016-12-31 2024-05-01 INTEL Corporation Systems, methods, and apparatuses for heterogeneous computing
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
CN108364065B (zh) 2018-01-19 2020-09-11 上海兆芯集成电路有限公司 采布斯乘法的微处理器
US11307977B2 (en) 2018-09-27 2022-04-19 Intel Corporation Technologies for direct matrix read and write operations
CN109543832B (zh) 2018-11-27 2020-03-20 中科寒武纪科技股份有限公司 一种计算装置及板卡
CN109603149A (zh) 2018-12-12 2019-04-12 北京像素软件科技股份有限公司 数据同步方法及装置
US11308230B2 (en) * 2019-01-28 2022-04-19 Red Hat, Inc. Direct access to host memory for guests
CN111831337B (zh) * 2019-04-19 2022-11-29 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
CN111782133A (zh) 2019-04-04 2020-10-16 安徽寒武纪信息科技有限公司 数据处理方法及装置以及相关产品
CN112765542A (zh) * 2019-11-01 2021-05-07 中科寒武纪科技股份有限公司 运算装置
US11669331B2 (en) * 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction
US20230004365A1 (en) * 2021-06-24 2023-01-05 Marvell Asia Pte Ltd Multistage compiler architecture
CN113658325B (zh) * 2021-08-05 2022-11-11 郑州轻工业大学 数字孪生环境下的生产线不确定对象智能识别与预警方法

Patent Citations (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01277936A (ja) * 1988-04-28 1989-11-08 Nec Corp データ同期方法およびその装置
US6519655B1 (en) * 1997-07-22 2003-02-11 Sextant Avionique Message preprocessing operations indicated by an associated descriptor read and descriptors belonging to a category of preprocessing descriptors and a category of instruction descriptors
US6360287B1 (en) * 1997-12-10 2002-03-19 Sony Corporation Method and apparatus for asynchronous communication over a standard data bus using a plurality of data descriptors having still image data written therein
US20040193735A1 (en) * 2002-09-12 2004-09-30 Pavel Peleska Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processor units
US20040221294A1 (en) * 2003-04-30 2004-11-04 International Business Machines Corporation Method and system for optimizing file table usage
US7437521B1 (en) * 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
CN1588300A (zh) * 2004-08-09 2005-03-02 威盛电子股份有限公司 进行硬盘阵列同位运算的装置与相关方法
US20060161741A1 (en) * 2005-01-18 2006-07-20 Sony Computer Entertainment Inc. Methods and apparatus for providing synchronization of shared data
US20070050527A1 (en) * 2005-08-26 2007-03-01 Cheng-Ming Tuan Synchronization method for a multi-processor system and the apparatus thereof
US20080005296A1 (en) * 2006-05-08 2008-01-03 Cisco Technology, Inc. Method and apparatus for synchronizing use of buffer descriptor entries
US20090198938A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Handling of address conflicts during asynchronous memory move operations
CN103338144A (zh) * 2013-05-30 2013-10-02 华为软件技术有限公司 一种会话数据同步方法和装置
US20170052723A1 (en) * 2014-06-10 2017-02-23 Hewlett Packard Enterprise Development Lp Replicating data using remote direct memory access (rdma)
US20160070589A1 (en) * 2014-09-10 2016-03-10 Amazon Technologies, Inc. Scalable log-based transaction management
WO2016040666A1 (en) * 2014-09-10 2016-03-17 Amazon Technologies, Inc. Scalable log-based transaction management
US20160246599A1 (en) * 2015-02-25 2016-08-25 Mireplica Technology, Llc Hardware Instruction Generation Unit for Specialized Processors
CN107347253A (zh) * 2015-02-25 2017-11-14 米雷普里卡技术有限责任公司 用于专用处理器的硬件指令生成单元
CN106339178A (zh) * 2015-07-09 2017-01-18 爱思开海力士有限公司 存储器控制单元及包括该存储器控制单元的数据存储设备
US20170083331A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Memory synchronization in block-based processors
CN108292277A (zh) * 2015-11-06 2018-07-17 图芯芯片技术有限公司 用于存储器存取命令的传送描述符
US20170131939A1 (en) * 2015-11-06 2017-05-11 Vivante Corporation Transfer descriptor for memory access commands
US20180034892A1 (en) * 2016-07-28 2018-02-01 Caringo, Inc. Multi-part upload
US9836691B1 (en) * 2016-10-27 2017-12-05 Google Inc. Neural network instruction set architecture
US20180314946A1 (en) * 2017-04-28 2018-11-01 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US20180341483A1 (en) * 2017-05-24 2018-11-29 Microsoft Technology Licensing, Llc Tensor Register Files
US20190042940A1 (en) * 2017-08-04 2019-02-07 Fujitsu Limited Information processing apparatus and component estimation method
US20190050717A1 (en) * 2017-08-11 2019-02-14 Google Llc Neural network accelerator with parameters resident on chip
CN109522254A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 运算装置及方法
CN109542515A (zh) * 2017-10-30 2019-03-29 上海寒武纪信息科技有限公司 运算装置及方法
CN109446147A (zh) * 2018-11-09 2019-03-08 郑州云海信息技术有限公司 一种网络存储设备与pcie设备的数据交互方法
CN109522052A (zh) * 2018-11-27 2019-03-26 北京中科寒武纪科技有限公司 一种计算装置及板卡

Also Published As

Publication number Publication date
US11687339B2 (en) 2023-06-27
US20210334105A1 (en) 2021-10-28
CN111831337B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN111782133A (zh) 数据处理方法及装置以及相关产品
EP3825842B1 (en) Data processing method and apparatus, and related product
CN111831337B (zh) 数据同步方法及装置以及相关产品
WO2021027972A1 (zh) 数据同步方法及装置以及相关产品
US20240111536A1 (en) Data processing apparatus and related products
CN111857828A (zh) 处理器操作方法及装置以及相关产品
US20240004650A1 (en) Data processing method and apparatus, and related product
WO2021018313A1 (zh) 数据同步方法及装置以及相关产品
WO2021027973A1 (zh) 数据同步方法及装置以及相关产品
CN111813449A (zh) 运算方法、装置及相关产品
CN111782274B (zh) 数据处理装置及相关产品
CN112347026B (zh) 数据同步方法及装置以及相关产品
CN111831722A (zh) 数据同步方法及装置以及相关产品
CN111831329B (zh) 数据处理方法及装置以及相关产品
CN111783992A (zh) 数据处理装置及相关产品
CN112347185A (zh) 数据同步方法及装置以及相关产品
CN111782267B (zh) 数据处理方法及装置以及相关产品
CN113806246A (zh) 数据处理装置及方法以及相关产品
CN113807507A (zh) 数据处理方法及装置以及相关产品
CN112394999A (zh) 运算方法、装置及相关产品
CN111399905A (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