CN111340202A - 运算方法、装置及相关产品 - Google Patents
运算方法、装置及相关产品 Download PDFInfo
- Publication number
- CN111340202A CN111340202A CN201910755816.8A CN201910755816A CN111340202A CN 111340202 A CN111340202 A CN 111340202A CN 201910755816 A CN201910755816 A CN 201910755816A CN 111340202 A CN111340202 A CN 111340202A
- Authority
- CN
- China
- Prior art keywords
- module
- target
- synchronous control
- control instruction
- modules
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 166
- 238000010801 machine learning Methods 0.000 claims abstract description 94
- 238000004364 calculation method Methods 0.000 claims abstract description 67
- 230000001360 synchronised effect Effects 0.000 claims description 218
- 230000006870 function Effects 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 29
- 238000003672 processing method Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000004888 barrier function Effects 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 238000005481 NMR spectroscopy Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
本公开涉及一种运算方法、装置及相关产品。其中的组合处理装置包括:机器学习运算装置、通用互联接口和其他处理装置;机器学习运算装置与其他处理装置进行交互,共同完成用户指定的计算操作,其中,组合处理装置还包括:存储装置,该存储装置分别与机器学习运算装置和其他处理装置连接,用于保存机器学习运算装置和其他处理装置的数据。本公开实施例所提供的运算方法、装置及相关产品的适用范围广,对指令的处理效率高、处理速度快。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种同步控制指令处理方法、装置及相关产品。
背景技术
随着科技的不断发展,机器学习,尤其是神经网络算法的使用越来越广泛。其在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。但由于神经网络算法的复杂度越来越高,所涉及的数据运算种类和数量不断增大。相关技术中,对数据的处理过程进行同步控制的方式不能满足运算需求,使得对数据进行运算的效率低、速度慢。
发明内容
有鉴于此,本公开提出了一种同步控制指令处理方法、装置及相关产品,对数据处理过程进行同步控制,提高对数据进行运算的效率和速度。
根据本公开的第一方面,提供了一种同步控制指令处理装置,所述装置包括:
所述控制模块,用于对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;
所述目标运算模块,用于在执行到所述同步控制指令时,进入暂停状态;
所述控制模块,还用于监测所述多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态,
其中,所述操作码用于指示所述同步控制指令用于对装置的多个运算模块进行同步控制。
根据本公开的第二方面,提供了一种机器学习运算装置,所述装置包括:
一个或多个上述第一方面所述的同步控制指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述同步控制指令处理装置时,所述多个所述同步控制指令处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述同步控制指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述同步控制指令处理装置共享同一控制***或拥有各自的控制***;多个所述同步控制指令处理装置共享内存或者拥有各自的内存;多个所述同步控制指令处理装置的互联方式是任意互联拓扑。
根据本公开的第三方面,提供了一种组合处理装置,所述装置包括:
上述第二方面所述的机器学习运算装置、通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
根据本公开的第四方面,提供了一种机器学习芯片,所述机器学习芯片包括上述第二方面所述的机器学习络运算装置或上述第三方面所述的组合处理装置。
根据本公开的第五方面,提供了一种机器学习芯片封装结构,该机器学习芯片封装结构包括上述第四方面所述的机器学习芯片。
根据本公开的第六方面,提供了一种板卡,该板卡包括上述第五方面所述的机器学习芯片封装结构。
根据本公开的第七方面,提供了一种电子设备,所述电子设备包括上述第四方面所述的机器学习芯片或上述第六方面所述的板卡。
根据本公开的第八方面,提供了一种同步控制指令处理方法,所述方法应用于同步控制指令处理装置,所述装置包括多个运算模块控制模块,所述方法包括:
控制所述控制模块对所述同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;
控制所述目标运算模块在执行到所述同步控制指令时,进入暂停状态;
控制所述控制模块监测所述多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态,
其中,所述操作码用于指示所述同步控制指令对装置的多个运算模块所进行的处理为同步控制。
根据本公开的第九方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第八方面的方法。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开实施例所提供的同步控制指令处理方法、装置及相关产品,该装置包括控制模块和多个运算模块,控制模块用于对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;目标运算模块用于在执行到同步控制指令时,进入暂停状态;控制模块还用于监测多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态。本公开实施例所提供的同步控制指令处理方法、装置及相关产品的适用范围广,对同步控制指令的处理效率高、处理速度快,且提高了对应运算模块进行同步控制的处理效率、处理速度,进而提高了对数据进行运算的效率和速度。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1a示出根据本公开一实施例的同步控制指令处理装置的框图。
图1b示出根据本公开一实施例的同步控制指令处理装置中模块集群的结构示意图。
图2a-图2f示出根据本公开一实施例的同步控制指令处理装置的框图。
图3示出根据本公开一实施例的同步控制指令处理装置的应用场景的示意图。
图4a、图4b示出根据本公开一实施例的组合处理装置的框图。
图5示出根据本公开一实施例的板卡的结构示意图。
图6示出根据本公开一实施例的同步控制指令处理方法的流程图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第零”、“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
由于神经网络算法的广泛使用,计算机硬件运算人能力的不断提升,实际应用中所涉及到的数据运算的种类和数量不断提高。由于编程语言的种类多样,在不同的语言环境下,为实现同步控制过程,相关技术中,由于没有能广泛适用于各类编程语言的同步控制指令,技术人员需要自定义对应其编程语言环境的多条指令来实现同步控制,导致进行同步控制的效率低、速度慢。本公开提供一种同步控制指令处理方法、装置、计算机设备和存储介质,仅用一个指令即可以实现同步控制,能够显著提高进行同步控制的效率和速度。
图1a示出根据本公开一实施例的同步控制指令处理装置的框图。如图1a所示,该装置包括控制模块11和多个运算模块12。
控制模块11,用于对获取到的同步控制指令进行解析,得到同步控制指令的操作域码,并确定需要执行同步控制指令的目标运算模块。其中,操作码用于指示同步控制指令用于对装置的多个运算模块进行同步控制。
多个运算模块12中的目标运算模块,用于在执行到同步控制指令时,进入暂停状态。其中,暂停状态下目标运算模块暂停工作,不再进行数据的运算,不能继续执行其自身需要执行的计算指令。
控制模块11,还用于监测多个运算模块12的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态。其中,工作状态下的目标运算模块可以进行数据运算,执行其需要执行的计算指令。
在本实施例中,同步控制指令可以对运算模块执行计算指令的过程进行同步控制,使得运算模块在执行到该同步控制指令可以暂停工作,等待控制模块发出继续工作的指令,达到同步控制的目的。
可选地,该指令处理装置可以包括通用处理器和人工智能处理器,该人工智能处理器而可以包含上述的控制模块和运算模块等,该人工智能处理器的具体结构可参见下文的描述,该人工智能处理器可以对接收到的同步控制指令进行解析,并运行相应的指令。
在本实施例中,操作码可以是计算机程序中所规定的要执行操作的那一部分指令或字段(通常用代码表示),是指令序列号,用来告知执行指令的装置具体需要执行哪一条指令。操作域可以是执行对应的指令所需的所有数据的来源,执行对应的指令所需的所有数据包括待运算数据、数量阈值等参数以及对应的运算方法等等。对于一个同步控制指令其可以包括操作码和操作域。
应当理解的是,本领域技术人员可以根据需要对同步控制指令的指令格式以及所包含的操作码和操作域进行设置,本公开对此不作限制。
在本实施例中,该装置可以包括一个或多个控制模块,以及一个或多个运算模块,可以根据实际需要对控制模块和运算模块的数量进行设置,本公开对此不作限制。在装置包括一个控制模块时,该控制模块可以接收同步控制指令,并实现对应的至少一个运算模块的同步控制。在装置包括多个控制模块时,多个控制模块可以分别接收同步控制指令,并分别实现对应的多个运算模块的同步控制。
在本实施例中,运算模块可以是装置的核(core)、装置中的处理器等能够执行计算指令的器件、模块等,本公开对此不作限制。
本公开实施例所提供的同步控制指令处理装置,该装置包括控制模块和多个运算模块,控制模块用于对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块以及目标运算模块所需同步的目标信号;目标运算模块用于在执行到同步控制指令时,控制与目标信号相关的处理进入暂停状态;控制模块还用于监测多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块中与目标信号相关的处理同步进入工作状态。本公开实施例所提供的同步控制指令处理方法、装置及相关产品的适用范围广,对同步控制指令的处理效率高、处理速度快,且提高了对应运算模块进行同步控制的处理效率、处理速度,进而提高了对数据进行运算的效率和速度。
在一种可能的实现方式中,操作码可以用于指示所述目标运算模块所需同步的目标信号,或者所述操作域可以包括所述目标运算模块所需同步的目标信号,以使所述控制模块根据所述操作码或者所述操作域确定目标信号。所述目标运算模块,还用于在执行到所述同步控制指令时,控制与所述控制模块确定的目标信号相对应的处理进入暂停状态。
其中,所述目标信号可以包括以下至少一种:计算队列信号、IO信号、到达信号。其中,到达信号是运算模块间并行到达的一类信号,包括运算模块需要同步执行的全部信号。计算队列信号可以是运算模块中等待执行的计算任务的队列的信号,IO信号可以为运算模块的输入和/或输出信号。
在该实现方式中,在同步控制指令没有指示目标信号时,可以将预先设置的默认目标信号确定为目标信号,本公开对此不作限制。
在该实现方式中,可以为不同的目标信号设置特定的操作码或者操作域,以使得处理器可以根据特定的操作码或者操作域确定出目标运算模块中所需暂停的信号。目标信号可以是其他与运算模块的运行、控制、进行运算等处理相关的信号,本公开对此不作限制。
在一种可能的实现方式中,确定需要执行同步控制指令的目标运算模块,可以包括:根据目标任务的标识,将所述多个运算模块中执行所述目标任务的运算模块确定为目标运算模块。所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号,目标任务的标识还可以包括其他能够表征目标任务的信息,本公开对此不作限制。
其中,在装置中,控制模块会根据任务(包括上述目标任务)的类型、运算模块的工作状态,为任务分配一个或多个运算模块,使其执行该任务。
通过上述方式,可以实现对执行目标任务的所有运算模块的同步控制。
在一种可能的实现方式中,控制模块可以根据预设的目标任务标识,确定需要执行同步控制指令的目标运算模块。此时,该同步控制指令中可以只包括操作码。该同步控制指令的指令格式可以是“sync_all()”,其中,基于该同步控制指令装置可以实现对预设的目标任务标识的目标任务的所有运算模块的同步控制。
可选地,该同步控制指令可以包含于一核函数中,该装置的通用处理器可以将该核函数发送至人工智能器上的相应运算模块上执行。其中,该装置还可以根据该核函数的特性确定目标任务的标识。这样,该核函数中的同步控制指令可以根据该确定的目标任务标识确定目标运算模块。
图1b示出根据本公开一实施例的同步控制指令处理装置中模块集群的结构示意图。如图1b所示,该装置中包括控制模块200、互联模块500、全局内存400、多个模块集群以及与每个模块集群分别对应的共享存储。其中,图1b中仅示出了两个模块集群1、模块集群2,剩余模块集群的结构与模块集群1、模块集群2相似,图中并未示出。每个模块集群中包括运算模块1、运算模块2、运算模块3和运算模块4四个运算模块。其中,互联模块500用于实现全局内容400、控制模块200以及模块集群之间的通信互联。全局内存400用于实现装置中控制模块200以及模块集群的存储。
举例来说,假定目标任务的标识UNION可以通过指定模块集群数量的方式指定对应的运算模块。例如,UNION1表示调用核函数执行任务时,占用1个模块集群,共用4个运算模块。UNION2表示调用核函数执行任务时,占用2个模块集群,共用8个运算模块。UNION4表示调用核函数执行任务时,占用4个模块集群,共用16个core。UNION8表示调用核函数执行任务时,占用8个模块集群,共用32个core。其中,以“UNION1”为例,控制模块200可以根据“UNION1”为其指定闲置或者能够执行任务的模块集群1,以使得模块集群1能够执行任务“UNION1”。
在一种可能的实现方式中,所述多个运算模块被划分为多个模块集群(cluster),每个模块集群中包括一个或多个运算模块(如图2b所示)。其中,确定需要执行同步控制指令的目标运算模块,可以包括:根据目标任务的标识,将所述多个模块集群中与执行所述目标任务相关的目标模块集群中的全部运算模块确定为目标运算模块,所述目标集群中的全部或部分运算模块用于执行所述目标任务。
通过上述方式,可以实现对与执行目标任务相关的目标模块集群中的全部运算模块的同步控制。
例如,控制模块可以根据预设的目标任务标识,确定出该目标任务标识所需占用的运算模块集群数量,并进一步确定需要执行同步控制指令的目标运算模块。此时,该同步控制指令中可以只包括操作码。该同步控制指令的指令格式可以是“sync_all0()”,其中,基于该同步控制指令装置可以实现对预设的目标任务标识的目标任务的所有运算模块集群中的运算模块的同步控制。
可选地,该同步控制指令可以包含于一核函数中,该装置的通用处理器可以将该核函数中的指令等程序发送至人工智能器上的相应运算模块上执行。其中,该装置还可以根据该核函数的特性确定目标任务的标识。这样,该核函数中的同步控制指令可以根据该确定的目标任务标识,确定目标运算模块集群。从而控制模块可以将该目标运算模块集群中的所有运算模块作为目标运算模块。
在一种可能的实现方式中,所述操作码或所述操作域可以用于指示目标任务的标识。
在一种可能的实现方式中,同步控制指令的指令格式可以是“sync_sign2_all1()”。其中,sign2为目标任务的标识,通过该同步控制指令装置可以与执行标识为sign2的目标任务相关的目标模块集群中的全部运算模块的同步控制。
在一种可能的实现方式中,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,所述操作码或所述操作域用于指示目标模块集群的标识。其中,确定需要执行同步控制指令的目标运算模块,可以包括:根据所述目标模块集群的标识,将所述多个运算模块中属于所述目标模块集群的运算模块确定为目标运算模块。
在该实现方式中,目标模块集群的标识可以是目标模块集群在多个模块集群中的编号、序号、名称等能够表征目标模块集群的标识信息,本公开对此不作限制。
通过上述方式,可以实现对一个或多个目标模块集群中的全部运算模块的同步控制。
在一种可能的实现方式中,同步控制指令的指令格式可以是“sync_cluster”。其中,cluster为目标模块集群的标识。通过该同步控制指令,装置可以实现对标识为cluster的目标集群中的全部运算模块的同步控制。在目标集群的数量为多个时,同步控制指令的指令格式可以是“sync_cluster0cluster1…clustern”,cluster0cluster1…clustern分别为第一个目标模块集群的标识、第二个目标模块集群的标识…第n个目标模块集群的标识,以实现对多个模块集群中所有运算模块的同步控制。
在一种可能的实现方式中,所述操作码或所述操作域可以用于指示目标运算模块的标识。其中,根据所述操作码或者所述操作域确定需要执行同步控制指令的目标运算模块,可以包括:根据所述目标运算模块的标识,从所述多个运算模块中确定目标运算模块。
在该实现方式中,目标运算模块的标识可以是目标运算模块在多个运算模块中的编号、序号、名称等能够表征目标运算模块的标识信息,本公开对此不作限制。
通过上述方式,可以实现对一个或多个目标运算模块的同步控制。
在一种可能的实现方式中,同步控制指令的指令格式可以是“syn_sign3_0sign3_1…sign3_n”。其中,sign3_0sign3_1…sign3_n分别为第一个目标运算模块的标识、第二个目标运算模块的标识…第n个目标运算模块的标识。通过该同步控制指令,装置可以实现对标识为sign3_0sign3_1…sign3_n的目标运算模块的同步控制。
在一种可能的实现方式中,在同步控制指令的操作码和操作域中均未指示目标运算模块时,控制模块,还用于确定所述同步控制指令所在的核函数(kernel),将所述多个运算模块中调用所述核函数的运算模块确定为目标运算模块。
在该实现方式中,装置可以调用一个或多个核函数,运算模块可以调用核函数执行需要该核函数的任务。同步控制指令可以被预先写在核函数中,控制模块可以根据运算模块调用核函数的记录确定目标运算模块。
其中,控制模块在控制多个运算模块执行任务时,运算模块自身(或者在控制模块的控制下)可以根据所执行任务的类型、任务并行度等任务信息,确定所需调用的核函数,以完成任务。
通过上述方式,可以实现对调用了“同步控制指令所在核函数”的目标运算模块的同步控制。
在一种可能的实现方式中,所述操作域中包括数量阈值。所述控制模块,还用于在确定处于暂停状态的目标运算模块的数量达到所述数量阈值时,控制处于暂停状态的目标运算模块进入工作状态。
在该实现方式中,在已确定目标运算模块的基础上,还可以对同步控制的目标运算模块的数量进行限制,数量阈值可以小于或等于已经确定的目标运算模块的数量。
在一种可能的实现方式中,同步控制指令的指令格式可以是“barrier N”。其中,N为数量阈值。barrier仅用于指示该指令为同步控制指令以及其目标信号为到达信号。通过该同步控制指令,装置可以实现对调用了“同步控制指令所在的核函数”的目标运算模块的同步控制,并且,可以在确定处于暂停状态的目标运算模块的数量达到数量阈值时,控制处于暂停状态的目标运算模块进入工作状态。
对于上述同步控制指令“sync_sign1_all0()”、“sync_sign2_all1()”、“sync_cluster”、“sync_cluster0cluster1…clustern”、“syn_sign3_0sign3_1…sign3_n”、和“barrier N”,sync、syn、barrier还可以用于指示目标信号,其中,sync所指示的目标信号可以为计算队列信号和IO信号,syn和barrier所指的目标信号可以是到达信号。可以根据需要将同步控制指令的组成部分sync、syn、barrier、all0()、all1()、cluster、cluster0cluster1…clustern、sign3_0sign3_1…sign3_n、N设置为操作码或操作域,以及设置其在同步控制指令中的位置,本公开对此不作限制。并且,上述同步控制指令仅是本公开技术方案的几个示例,本领域技术人员可以根据需要按照本公开的技术方案对其指令格式进行设置,本公开对此不作限制。
图2a示出根据本公开一实施例的同步控制指令处理装置的框图。在一种可能的实现方式中,如图2a所示,运算模块12可以包括多个运算器120。多个运算器120用于执行与计算指令的运算类型相对应的运算。
在该实现方式中,运算器可以包括加法器、除法器、乘法器、比较器等能够对数据进行算术运算、逻辑运算等运算的运算器。可以根据所需进行的运算的数据量的大小、运算类型、对数据进行运算的处理速度、效率等要求对运算器的种类及数量进行设置,本公开对此不作限制。
图2b示出根据本公开一实施例的同步控制指令处理装置的框图。在一种可能的实现方式中,如图2b所示,运算模块12可以包括主运算子模块121和多个从运算子模块122。主运算子模块121可以包括多个运算器(图中未示出)。
控制模块11,还用于获取计算指令以及执行计算指令所需的待运算数据,解析计算指令得到多个运算指令,并将待运算数据和多个运算指令发送至主运算子模块121。
运算模块12,用于根据计算指令对待运算数据进行运算,得到运算结果。
其中,主运算子模块121,用于对待运算数据执行前序处理,以及与多个从运算子模块122进行数据和运算指令的传输。
从运算子模块122,用于根据从主运算子模块121传输的数据和运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给主运算子模块122。
主运算子模块121,还用于对多个中间结果执行后续处理,得到运算结果。
在该实现方式中,计算指令可以是对标量、向量、张量等数据进行算术运算、逻辑运算等运算的指令,本领域技术人员可以根据实际需要对计算指令进行设置,本公开对此不作限制。
在该实现方式中,控制模块还用于对编译后的计算指令进行解析,得到计算指令的操作码,并根据操作码获取待运算数据。可选地,控制模块还用于对计算指令进行解析,得到计算指令的操作码和操作域,并根据操作码和操作域获取待运算数据。
需要说明的是,本领域技术人员可以根据实际需要对主运算子模块和多个从运算子模块之间的连接方式进行设置,以实现对运算模块的架构设置,例如,运算模块的架构可以是“H”型架构、阵列型架构、树型架构等,本公开对此不作限制。
图2c示出根据本公开一实施例的同步控制指令处理装置的框图。在一种可能的实现方式中,如图2c所示,运算模块12还可以包括一个或多个分支运算子模块123,该分支运算子模块123用于转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。其中,主运算子模块121与一个或多个分支运算子模块123连接。这样,运算模块中的主运算子模块、分支运算子模块和从运算子模块之间采用“H”型架构连接,通过分支运算子模块转发数据和/或运算指令,节省了对主运算子模块的资源占用,进而提高指令的处理速度。
图2d示出根据本公开一实施例的同步控制指令处理装置的框图。在一种可能的实现方式中,如图2d所示,多个从运算子模块122呈阵列分布。
每个从运算子模块122与相邻的其他从运算子模块122连接,主运算子模块121连接多个从运算子模块122中的k个从运算子模块122,k个从运算子模块122为:第1行的n个从运算子模块122、第m行的n个从运算子模块122以及第1列的m个从运算子模块122。
其中,如图2d所示,k个从运算子模块仅包括第1行的n个从运算子模块、第m行的n个从运算子模块以及第1列的m个从运算子模块,即该k个从运算子模块为多个从运算子模块中直接与主运算子模块连接的从运算子模块。其中,k个从运算子模块,用于在主运算子模块以及多个从运算子模块之间的数据以及指令的转发。这样,多个从运算子模块呈阵列分布,可以提高主运算子模块向从运算子模块发送数据和/或运算指令速度,进而提高指令的处理速度。
图2e示出根据本公开一实施例的同步控制指令处理装置的框图。在一种可能的实现方式中,如图2e所示,运算模块还可以包括树型子模块124。该树型子模块124包括一个根端口401和多个支端口402。根端口401与主运算子模块121连接,多个支端口402与多个从运算子模块122分别连接。其中,树型子模块124具有收发功能,用于转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。这样,通过树型子模块的作用使得运算模块呈树型架构连接,并利用树型子模块的转发功能,可以提高主运算子模块向从运算子模块发送数据和/或运算指令速度,进而提高指令的处理速度。
在一种可能的实现方式中,树型子模块124可以为该装置的可选结果,其可以包括至少一层节点。节点为具有转发功能的线结构,节点本身不具备运算功能。最下层的节点与从运算子模块连接,以转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。特殊地,如树型子模块具有零层节点,该装置则无需树型子模块。
在一种可能的实现方式中,树型子模块124可以包括n叉树结构的多个节点,n叉树结构的多个节点可以具有多个层。
举例来说,图2f示出根据本公开一实施例的同步控制指令处理装置的框图。如图2f所示,n叉树结构可以是二叉树结构,树型子模块包括2层节点01。最下层节点01与从运算子模块122连接,以转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。
在该实现方式中,n叉树结构还可以是三叉树结构等,n为大于或等于2的正整数。本领域技术人员可以根据需要对n叉树结构中的n以及n叉树结构中节点的层数进行设置,本公开对此不作限制。
在一种可能的实现方式中,如图2a-图2f所示,该装置还可以包括存储模块13。存储模块13用于存储待运算数据待运算数据。
在该实现方式中,存储模块可以包括缓存和寄存器中的一种或多种,缓存可以包括速暂存缓存,还可以包括至少一个NRAM(Neuron Random Access Memory,神经元随机存取存储器)。缓存可以用于存储待运算数据,寄存器可以用于存储待运算数据中的标量数据。
在一种可能的实现方式中,缓存可以包括神经元缓存。神经元缓存也即上述神经元随机存取存储器,可以用于存储待运算数据中的神经元数据,神经元数据可以包括神经元向量数据。其中,待运算数据包括与进行标量类型转换相关的数据、和/或与其他计算指令的运算相关的数据。
在一种可能的实现方式中,该装置还可以包括直接内存访问模块,用于从存储模块中读取或者存储数据。
在一种可能的实现方式中,如图2a-图2f所示,控制模块11可以包括指令存储子模块111、指令处理子模块112和队列存储子模块113。
指令存储子模块111用于存储同步控制指令和计算指令。
指令处理子模块112用于对同步控制指令和计算指令分别进行解析,得到对应的操作码。也即对同步控制指令进行解析得到同步控制指令的操作码,以及对计算指令进行解析得到计算指令的操作码。可选地,指令处理子模块112用于对同步控制指令和计算指令分别进行解析,得到对应的操作码和操作域。
队列存储子模块113用于存储指令队列,指令队列包括按照执行顺序依次排列的多个待执行指令,多个待执行指令可以包括同步控制指令和计算指令。
在该实现方式中,可以根据待执行指令的接收时间、优先级别等对多个待执行指令的执行顺序进行排列获得指令队列,以便于根据指令队列依次执行多个待执行指令。
在一种可能的实现方式中,如图2a-图2f所示,控制模块11还可以包括依赖关系处理子模块114。依赖关系处理子模块114,用于在确定多个待执行命令中的第一待执行指令与第一待执行指令之前的第零待执行指令存在关联关系时,将第一待执行指令缓存在指令存储子模块111中,在第零待执行指令执行完毕后,从指令存储子模块111中提取第一待执行指令发送至运算模块12。
其中,第一待执行指令与第一待执行指令之前的第零待执行指令存在关联关系包括:存储第一待执行指令所需数据的第一存储地址区间与存储第零待执行指令所需数据的第零存储地址区间具有重叠的区域。反之,第一待执行指令与第一待执行指令之前的第零待执行指令之间没有关联关系可以是第一存储地址区间与第零存储地址区间没有重叠区域。
通过这种方式,可以根据第一待执行指令与第一待执行指令之前的第零待执行指令之间的依赖关系,使得在先的第零待执行指令执行完毕之后,再执行在后的第一待执行指令,保证运算结果的准确性。
在一种可能的实现方式中,该装置可以设置于图形处理器(Graphics ProcessingUnit,简称GPU)、中央处理器(Central Processing Unit,简称CPU)和嵌入式神经网络处理器(Neural-network Processing Unit,简称NPU)的一种或多种之中。
需要说明的是,尽管以上述实施例作为示例介绍了同步控制指令处理装置如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各模块,只要符合本公开的技术方案即可。
应用示例
以下结合“利用同步控制指令处理装置进行同步控制”作为一个示例性应用场景,给出根据本公开实施例的应用示例,以便于理解同步控制指令处理装置的流程。本领域技术人员应理解,以下应用示例仅仅是出于便于理解本公开实施例的目的,不应视为对本公开实施例的限制
图3示出根据本公开一实施例的同步控制指令处理装置的应用场景的示意图。如图3所示,同步控制指令处理装置对同步控制指令进行处理的过程如下:
控制模块11对获取到的同步控制指令1(如同步控制指令1为barrier 16)进行解析,得到同步控制指令1的操作码。其中,同步控制指令1的操作码为barrier,数量阈值为16,根据barrier确定目标信号为到达信号。控制模块11向装置的所有运算模块发送同步控制指令。
多个运算模块12中目标运算模块在执行到同步控制指令时,控制与到达信号相关的处理进入暂停状态。
控制模块11还用于检测多个运算模块12的运行状态,在确定处于暂停状态的运算模块的数量达到数量阈值16时,控制16个处于暂停状态的运算模块12控制与到达信号相关的处理同步进入工作状态。
这样,同步控制指令处理装置可以高效、快速地对同步控制指令进行处理。以上各模块的工作过程可参考上文的相关描述。
本公开提供一种机器学习运算装置,该机器学习运算装置可以包括一个或多个上述同步控制指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算。该机器学习运算装置可以从其他机器学习运算装置或非机器学习运算装置中获得同步控制指令,并将执行结果通过I/O接口传递给***设备(也可称其他处理装置)。***设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上同步控制指令处理装置时,同步控制指令处理装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制***,也可以有各自独立的控制***;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
图4a示出根据本公开一实施例的组合处理装置的框图。如图4a所示,该组合处理装置包括上述机器学习运算装置、通用互联接口和其他处理装置。机器学习运算装置与其他处理装置进行交互,共同完成用户指定的操作。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在机器学习运算装置与其他处理装置间传输数据和控制指令。该机器学习运算装置从其他处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
图4b示出根据本公开一实施例的组合处理装置的框图。在一种可能的实现方式中,如图4b所示,该组合处理装置还可以包括存储装置,存储装置分别与机器学习运算装置和所述其他处理装置连接。存储装置用于保存在机器学习运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上***,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
本公开提供一种机器学习芯片,该芯片包括上述机器学习运算装置或组合处理装置。
本公开提供一种机器学习芯片封装结构,该机器学习芯片封装结构包括上述机器学习芯片。
本公开提供一种板卡,图5示出根据本公开一实施例的板卡的结构示意图。如图5所示,该板卡包括上述机器学习芯片封装结构或者上述机器学习芯片。板卡除了包括机器学习芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392。
存储器件390与机器学习芯片389(或者机器学习芯片封装结构内的机器学习芯片)通过总线连接,用于存储数据。存储器件390可以包括多组存储单元393。每一组存储单元393与机器学习芯片389通过总线连接。可以理解,每一组存储单元393可以是DDRSDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。
在一个实施例中,存储器件390可以包括4组存储单元393。每一组存储单元393可以包括多个DDR4颗粒(芯片)。在一个实施例中,机器学习芯片389内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组存储单元393中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组存储单元393包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在机器学习芯片389中设置控制DDR的控制器,用于对每个存储单元393的数据传输与数据存储的控制。
接口装置391与机器学习芯片389(或者机器学习芯片封装结构内的机器学习芯片)电连接。接口装置391用于实现机器学习芯片389与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,接口装置391可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至机器学习芯片289,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,接口装置391还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,接口装置能够实现转接功能即可。另外,机器学习芯片的计算结果仍由接口装置传送回外部设备(例如服务器)。
控制器件392与机器学习芯片389电连接。控制器件392用于对机器学习芯片389的状态进行监控。具体的,机器学习芯片389与控制器件392可以通过SPI接口电连接。控制器件392可以包括单片机(Micro Controller Unit,MCU)。如机器学习芯片389可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,机器学习芯片389可以处于多负载和轻负载等不同的工作状态。通过控制器件可以实现对机器学习芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
本公开提供一种电子设备,该电子设备包括上述机器学习芯片或板卡。
电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
交通工具可以包括飞机、轮船和/或车辆。家用电器可以包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机。医疗设备可以包括核磁共振仪、B超仪和/或心电图仪。
图6示出根据本公开一实施例的同步控制指令处理方法的流程图。如图6所示,该方法应用于上述同步控制指令处理装置,该方法包括步骤S51至步骤S53。
在步骤S51中,控制所述控制模块对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块。其中,操作码用于指示同步控制指令用于对装置的多个运算模块进行同步控制。
在步骤S52中,控制多个运算模块在执行到同步控制指令时,进入暂停状态。
在步骤S53中,控制控制模块监测多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态。
在一种可能的实现方式中,所述同步控制指令还包括操作域,所述操作码用于指示所述目标运算模块所需同步的目标信号,或者所述操作域包括所述目标运算模块所需同步的目标信号,以使所述控制模块根据所述操作码或者所述操作域确定目标信号,
其中,控制所述目标运算模块在执行到所述同步控制指令时,进入暂停状态,包括:
控制所述目标运算模块在执行到所述同步控制指令时,控制与所述控制模块确定的目标信号相对应的处理进入暂停状态,
其中,所述目标信号包括以下至少一种:计算队列信号、IO信号、到达信号。
在一种可能的实现方式中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个运算模块中执行所述目标任务的运算模块确定为目标运算模块,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
在一种可能的实现方式中,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个模块集群中与执行所述目标任务相关的目标模块集群中的全部运算模块确定为目标运算模块,所述目标集群中的全部或部分运算模块用于执行所述目标任务,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
在一种可能的实现方式中,所述操作码或者所述操作域用于指示得到目标任务的标识。
在一种可能的实现方式中,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,所述操作码或所述操作域用于指示目标模块集群的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标模块集群的标识,将所述多个运算模块中属于所述目标模块集群的运算模块确定为目标运算模块。
在一种可能的实现方式中,所述操作码或所述操作域用于指示目标运算模块的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标运算模块的标识,从所述多个运算模块中确定目标运算模块。
在一种可能的实现方式中,控制所述控制模块确定所述同步控制指令所在的核函数,将所述多个运算模块中调用所述核函数的运算模块确定为目标运算模块。
在一种可能的实现方式中,所述操作域中包括数量阈值,所述方法还包括:
控制所述控制模块在确定处于暂停状态的目标运算模块的数量达到所述数量阈值时,控制处于暂停状态的目标运算模块进入工作状态。
在一种可能的实现方式中,所述运算模块包括主运算子模块和多个从运算子模块,该方法还可以包括:
控制所述控制模块获取计算指令以及执行所述计算指令所需的待运算数据,解析所述计算指令得到多个运算指令;
控制所述主运算子模块对所述待运算数据执行前序处理,以及与进行数据和运算指令的传输;
控制所述从运算子模块根据传输的数据和运算指令并行执行中间运算得到多个中间结果;
控制所述主运算子模块对所述多个中间结果执行后续处理,得到运算结果。
在一种可能的实现方式中,该方法还可以包括:存储待运算数据。
其中,所述存储模块包括寄存器和缓存中的至少一种,
所述缓存,用于存储所述待运算数据,所述缓存包括至少一个神经元缓存NRAM;
所述寄存器,用于存储所述待运算数据中的标量数据;
所述神经元缓存,用于存储所述待运算数据中的神经元数据,所述神经元数据包括神经元向量数据。
在一种可能的实现方式中,该方法还可以包括:
控制控制模块存储同步控制指令和计算指令;
控制控制模块对同步控制指令和计算指令分别进行解析,得到对应的操作码和操作域;
控制控制模块存储指令队列,指令队列包括按照执行顺序依次排列的多个待执行指令,多个待执行指令包括同步控制指令和计算指令。
在一种可能的实现方式中,该方法还可以包括:在确定多个待执行指令中的第一待执行指令与第一待执行指令之前的第零待执行指令存在关联关系时,缓存第一待执行指令,并在确定第零执行指令执行完毕后,控制进行第一待执行指令的执行,
其中,第一待执行指令与第一待执行指令之前的第零待执行指令存在关联关系可以包括:存储第一待执行指令所需数据的第一存储地址区间与存储第零待执行指令所需数据的第零存储地址区间具有重叠的区域。
本公开还提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述同步控制指令处理方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个***,或一些特征可以忽略或不执行。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,若无特别说明,上述存储模块可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器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)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可以更好的理解前述内容:
条款A1.一种同步控制指令处理装置,所述装置包括控制模块和多个运算模块,
所述控制模块,用于对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;
所述目标运算模块,用于在执行到所述同步控制指令时,进入暂停状态;
所述控制模块,还用于监测所述多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态,
其中,所述操作码用于指示所述同步控制指令用于对装置的多个运算模块进行同步控制。
条款A2.根据条款A1所述的装置,所述同步控制指令还包括操作域,所述操作码用于指示所述目标运算模块所需同步的目标信号,或者所述操作域包括所述目标运算模块所需同步的目标信号,以使所述控制模块根据所述操作码或者所述操作域确定目标信号,
所述目标运算模块,还用于在执行到所述同步控制指令时,控制与所述控制模块确定的目标信号相对应的处理进入暂停状态,
其中,所述目标信号包括以下至少一种:计算队列信号、IO信号、到达信号。
条款A3.根据条款A1或2所述的装置,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个运算模块中执行所述目标任务的运算模块确定为目标运算模块,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
条款A4.根据条款A1或条款A2所述的装置,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个模块集群中与执行所述目标任务相关的目标模块集群中的全部运算模块确定为目标运算模块,所述目标集群中的全部或部分运算模块用于执行所述目标任务,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
条款A5.根据条款A3或条款A4所述的装置,所述操作码或者所述操作域用于指示得到目标任务的标识。
条款A6.根据条款A1或条款A2所述的装置,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,所述操作码或所述操作域用于指示目标模块集群的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标模块集群的标识,将所述多个运算模块中属于所述目标模块集群的运算模块确定为目标运算模块。
条款A7.根据条款A1或条款A2所述的装置,所述操作码或所述操作域用于指示目标运算模块的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标运算模块的标识,从所述多个运算模块中确定目标运算模块。
条款A8.根据条款A1或条款A2所述的装置,所述控制模块,还用于确定所述同步控制指令所在的核函数,将所述多个运算模块中调用所述核函数的运算模块确定为目标运算模块。
条款A9.根据条款A3或条款A8所述的装置,所述操作域中包括数量阈值,
所述控制模块,还用于在确定处于暂停状态的目标运算模块的数量达到所述数量阈值时,控制处于暂停状态的目标运算模块进入工作状态。
条款A10.根据条款A1所述的装置,所述运算模块包括主运算子模块和多个从运算子模块,
所述控制模块,还用于获取计算指令以及执行所述计算指令所需的待运算数据,解析所述计算指令得到多个运算指令,并将所述待运算数据和所述多个运算指令发送至所述主运算子模块;
所述主运算子模块,用于对所述待运算数据执行前序处理,以及与所述多个从运算子模块进行数据和运算指令的传输;
所述从运算子模块,用于根据从所述主运算子模块传输的数据和运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主运算子模块;
所述主运算子模块,还用于对所述多个中间结果执行后续处理,得到运算结果。
条款A11.根据条款A10所述的装置,所述装置还包括:
存储模块,用于存储所述待运算数据,
其中,所述存储模块包括寄存器和缓存中的至少一种,
所述缓存,用于存储所述待运算数据,所述缓存包括至少一个神经元缓存NRAM;
所述寄存器,用于存储所述待运算数据中的标量数据;
所述神经元缓存,用于存储所述待运算数据中的神经元数据,所述神经元数据包括神经元向量数据。
条款A12.根据条款A10所述的装置,所述控制模块,包括:
指令存储子模块,用于存储所述同步控制指令和所述计算指令;
指令处理子模块,用于对所述同步控制指令和所述计算指令分别进行解析,得到对应的操作码和操作域;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述同步控制指令和所述计算指令。
条款A13.根据条款A12所述的装置,所述控制模块,还包括:
依赖关系处理子模块,用于在确定所述多个待执行指令中的第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系时,将所述第一待执行指令缓存在所述指令存储子模块中,在所述第零待执行指令执行完毕后,从所述指令存储子模块中提取所述第一待执行指令发送至所述运算模块,
其中,所述第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系包括:
存储所述第一待执行指令所需数据的第一存储地址区间与存储所述第零待执行指令所需数据的第零存储地址区间具有重叠的区域。
条款A14.一种机器学习运算装置,所述装置包括:
一个或多个如条款A1-条款A13任一项所述的同步控制指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述同步控制指令处理装置时,所述多个所述同步控制指令处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述同步控制指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述同步控制指令处理装置共享同一控制***或拥有各自的控制***;多个所述同步控制指令处理装置共享内存或者拥有各自的内存;多个所述同步控制指令处理装置的互联方式是任意互联拓扑。
条款A15.一种组合处理装置,所述组合处理装置包括:
如条款A14所述的机器学习运算装置、通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作,
其中,所述组合处理装置还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据。
条款A16.一种机器学习芯片,所述机器学习芯片包括:
如条款A14所述的机器学习运算装置或如条款A15所述的组合处理装置。
条款A17.一种电子设备,所述电子设备包括:
如条款A16所述的机器学习芯片。
条款A18.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A16所述的机器学习芯片;
其中,所述机器学习芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述机器学习芯片与外部设备之间的数据传输;
所述控制器件,用于对所述机器学习芯片的状态进行监控。
条款A19.一种同步控制指令处理方法,所述方法应用于同步控制指令处理装置,所述装置包括多个运算模块和控制模块,所述方法包括:
控制所述控制模块对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;
控制所述目标运算模块在执行到所述同步控制指令时,进入暂停状态;
控制所述控制模块监测所述多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态,
其中,所述操作码用于指示所述同步控制指令对装置的多个运算模块所进行的处理为同步控制。
条款A20.根据条款A19所述的方法,所述操作码用于指示所述目标运算模块所需同步的目标信号,或者所述操作域包括所述目标运算模块所需同步的目标信号,以使所述控制模块根据所述操作码或者所述操作域确定目标信号,
其中,控制所述目标运算模块在执行到所述同步控制指令时,进入暂停状态,包括:
控制所述目标运算模块在执行到所述同步控制指令时,控制与所述控制模块确定的目标信号相对应的处理进入暂停状态,
其中,所述目标信号包括以下至少一种:计算队列信号、IO信号、到达信号。
条款A21.根据条款A19或条款A20所述的方法,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个运算模块中执行所述目标任务的运算模块确定为目标运算模块,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
条款A22.根据条款A19或条款A20所述的方法,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个模块集群中与执行所述目标任务相关的目标模块集群中的全部运算模块确定为目标运算模块,所述目标集群中的全部或部分运算模块用于执行所述目标任务,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
条款A23.根据条款A21或条款A22所述的方法,所述操作码或者所述操作域用于指示得到目标任务的标识。
条款A24.根据条款A19或条款A20所述的方法,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,所述操作码或所述操作域用于指示目标模块集群的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标模块集群的标识,将所述多个运算模块中属于所述目标模块集群的运算模块确定为目标运算模块。
条款A25.根据条款A19或条款A20所述的方法,所述操作码或所述操作域用于指示目标运算模块的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标运算模块的标识,从所述多个运算模块中确定目标运算模块。
条款A26.根据条款A19或条款A20所述的方法,控制所述控制模块确定所述同步控制指令所在的核函数,将所述多个运算模块中调用所述核函数的运算模块确定为目标运算模块。
条款A27.根据条款A21或条款A26所述的方法,所述操作域中包括数量阈值,所述方法还包括:
控制所述控制模块在确定处于暂停状态的目标运算模块的数量达到所述数量阈值时,控制处于暂停状态的目标运算模块进入工作状态。
条款A28.根据条款A19所述的方法,所述算模块包括主运算子模块和多个从运算子模块,所述方法还包括:
控制所述控制模块获取计算指令以及执行所述计算指令所需的待运算数据,解析所述计算指令得到多个运算指令;
控制所述主运算子模块对所述待运算数据执行前序处理,以及与进行数据和运算指令的传输;
控制所述从运算子模块根据传输的数据和运算指令并行执行中间运算得到多个中间结果;
控制所述主运算子模块对所述多个中间结果执行后续处理,得到运算结果。
条款A29.根据条款A28所述的方法,所述方法还包括:
控制所述装置的存储模块存储所述待运算数据,
其中,所述存储模块包括寄存器和缓存中的至少一种,
所述缓存,用于存储所述待运算数据,所述缓存包括至少一个神经元缓存NRAM;
所述寄存器,用于存储所述待运算数据中的标量数据;
所述神经元缓存,用于存储所述待运算数据中的神经元数据,所述神经元数据包括神经元向量数据。
条款A30.根据条款A28所述的方法,所述方法还包括:
控制所述控制模块存储所述同步控制指令和所述计算指令;
控制所述控制模块对所述同步控制指令和所述计算指令分别进行解析,得到对应的操作码和操作域;
控制所述控制模块存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述同步控制指令和所述计算指令。
条款A31.根据条款A30所述的方法,所述方法还包括:
控制所述控制模块在确定所述多个待执行指令中的第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系时,缓存所述第一待执行指令,并在确定所述第零待执行指令执行完毕后,控制进行所述第一待执行指令的执行,
其中,所述第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系包括:
存储所述第一待执行指令所需数据的第一存储地址区间与存储所述第零待执行指令所需数据的第零存储地址区间具有重叠的区域。
条款A32.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现条款A19至31任一项所述的方法。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (16)
1.一种同步控制指令处理装置,其特征在于,所述装置包括控制模块和多个运算模块,
所述控制模块,用于对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;
所述目标运算模块,用于在执行到所述同步控制指令时,进入暂停状态;
所述控制模块,还用于监测所述多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态,
其中,所述操作码用于指示所述同步控制指令用于对装置的多个运算模块进行同步控制。
2.根据权利要求1所述的装置,其特征在于,所述同步控制指令还包括操作域,所述操作码用于指示所述目标运算模块所需同步的目标信号,或者所述操作域包括所述目标运算模块所需同步的目标信号,以使所述控制模块根据所述操作码或者所述操作域确定目标信号,
所述目标运算模块,还用于在执行到所述同步控制指令时,控制与所述控制模块确定的目标信号相对应的处理进入暂停状态,
其中,所述目标信号包括以下至少一种:计算队列信号、IO信号、到达信号。
3.根据权利要求1或2所述的装置,其特征在于,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个运算模块中执行所述目标任务的运算模块确定为目标运算模块,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
4.根据权利要求1或2所述的装置,其特征在于,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标任务的标识,将所述多个模块集群中与执行所述目标任务相关的目标模块集群中的全部运算模块确定为目标运算模块,所述目标集群中的全部或部分运算模块用于执行所述目标任务,所述目标任务的标识包括以下至少一种:任务名称、任务类型、任务编号。
5.根据权利要求3或4所述的装置,其特征在于,所述操作码或者所述操作域用于指示得到目标任务的标识。
6.根据权利要求1或2所述的装置,其特征在于,所述多个运算模块被划分为多个模块集群,每个模块集群中包括一个或多个运算模块,所述操作码或所述操作域用于指示目标模块集群的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标模块集群的标识,将所述多个运算模块中属于所述目标模块集群的运算模块确定为目标运算模块。
7.根据权利要求1或2所述的装置,其特征在于,所述操作码或所述操作域用于指示目标运算模块的标识,
其中,确定需要执行同步控制指令的目标运算模块,包括:
根据所述目标运算模块的标识,从所述多个运算模块中确定目标运算模块。
8.根据权利要求1或2所述的装置,其特征在于,所述控制模块,还用于确定所述同步控制指令所在的核函数,将所述多个运算模块中调用所述核函数的运算模块确定为目标运算模块。
9.根据权利要求3或8所述的装置,其特征在于,所述操作域中包括数量阈值,
所述控制模块,还用于在确定处于暂停状态的目标运算模块的数量达到所述数量阈值时,控制处于暂停状态的目标运算模块进入工作状态。
10.一种机器学习运算装置,其特征在于,所述装置包括:
一个或多个如权利要求1-9任一项所述的同步控制指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述同步控制指令处理装置时,所述多个所述同步控制指令处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述同步控制指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述同步控制指令处理装置共享同一控制***或拥有各自的控制***;多个所述同步控制指令处理装置共享内存或者拥有各自的内存;多个所述同步控制指令处理装置的互联方式是任意互联拓扑。
11.一种组合处理装置,其特征在于,所述组合处理装置包括:
如权利要求10所述的机器学习运算装置、通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作,
其中,所述组合处理装置还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据。
12.一种机器学习芯片,其特征在于,所述机器学习芯片包括:
如权利要求10所述的机器学习运算装置或如权利要求11所述的组合处理装置。
13.一种电子设备,其特征在于,所述电子设备包括:
如权利要求12所述的机器学习芯片。
14.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求12所述的机器学习芯片;
其中,所述机器学习芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述机器学习芯片与外部设备之间的数据传输;
所述控制器件,用于对所述机器学习芯片的状态进行监控。
15.一种同步控制指令处理方法,其特征在于,所述方法应用于同步控制指令处理装置,所述装置包括多个运算模块和控制模块,所述方法包括:
控制所述控制模块对获取到的同步控制指令进行解析,得到同步控制指令的操作码,并确定需要执行同步控制指令的目标运算模块;
控制所述目标运算模块在执行到所述同步控制指令时,进入暂停状态;
控制所述控制模块监测所述多个运算模块的运行状态,在确定目标运算模块均处于暂停状态时,控制处于暂停状态的目标运算模块同步进入工作状态,
其中,所述操作码用于指示所述同步控制指令对装置的多个运算模块所进行的处理为同步控制。
16.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求15所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/110167 WO2020073925A1 (zh) | 2018-10-09 | 2019-10-09 | 运算方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811548200 | 2018-12-18 | ||
CN2018115482005 | 2018-12-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340202A true CN111340202A (zh) | 2020-06-26 |
CN111340202B CN111340202B (zh) | 2023-06-09 |
Family
ID=71185095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910755816.8A Active CN111340202B (zh) | 2018-10-09 | 2019-08-15 | 运算方法、装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340202B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377440A (zh) * | 2021-06-03 | 2021-09-10 | 昆山丘钛微电子科技股份有限公司 | 基于fpga处理指令的方法、装置、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN108572926A (zh) * | 2017-03-13 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 一种用于同步中央处理器所属缓存的方法和装置 |
-
2019
- 2019-08-15 CN CN201910755816.8A patent/CN111340202B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572926A (zh) * | 2017-03-13 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 一种用于同步中央处理器所属缓存的方法和装置 |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377440A (zh) * | 2021-06-03 | 2021-09-10 | 昆山丘钛微电子科技股份有限公司 | 基于fpga处理指令的方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111340202B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096309B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111340202B (zh) | 运算方法、装置及相关产品 | |
CN111353124A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112052040A (zh) | 处理方法、装置、计算机设备和存储介质 | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111124497B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111026440B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353595A (zh) | 运算方法、装置及相关产品 | |
CN111338694B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353125B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112395008A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111275197B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111290789B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111062483A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111290788B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111047030A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111339060A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111078125B (zh) | 运算方法、装置及相关产品 | |
CN111079914B (zh) | 运算方法、***及相关产品 | |
CN112395007A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111325331B (zh) | 运算方法、装置及相关产品 | |
CN112396169A (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 |