CN109740747B - 运算方法、装置及相关产品 - Google Patents
运算方法、装置及相关产品 Download PDFInfo
- Publication number
- CN109740747B CN109740747B CN201811635181.XA CN201811635181A CN109740747B CN 109740747 B CN109740747 B CN 109740747B CN 201811635181 A CN201811635181 A CN 201811635181A CN 109740747 B CN109740747 B CN 109740747B
- Authority
- CN
- China
- Prior art keywords
- processor
- degree
- data
- parallelism
- parameter
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 230000008569 process Effects 0.000 claims abstract description 54
- 238000013473 artificial intelligence Methods 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 230000006399 behavior Effects 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 abstract description 21
- 238000003062 neural network model Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 210000002364 input neuron Anatomy 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 6
- 210000004205 output neuron Anatomy 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 210000005036 nerve Anatomy 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000009975 flexible effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
- G06Q50/265—Personal security, identity or safety
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本公开涉及一种运算方法、装置及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及信息处理技术领域,尤其涉及一种运算方法、装置及相关产品。
背景技术
随着人工智能行业的发展,越来越多的深度学习框架被大家再开发和使用。为加速人工智能应用的计算,人工智能处理器应运而生,而人工智能处理器根据应用场景,具有云和端两个层次应用,针对服务器的云端应用往往采用多核的人工智能处理器,实现更高的计算能力,对人工智能处理器内部多个核的有效利用,对发挥人工智能处理器的效能具有重要价值。
发明内容
有鉴于此,本公开提出了一种并行执行方法及装置,通过命令行传参数的方式传入并行度参数,可以根据待处理任务对吞吐量和延时的需求调整、设置第二处理器的模型并行度和数据并行度,以达到高吞吐、低延时的最佳点,具有很强的通用性。
根据本公开的一方面,提供了一种并行执行方法,所述方法应用于第一处理器,所述方法包括:
在接收到第一命令时,获取所述第一命令中的并行度参数;
根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务;
其中,所述并行度参数包括模型并行参数和数据并行参数,所述并行度包括模型并行度和数据并行度。
在一种可能的实现方式中,所述待处理任务包括在线任务,
其中,根据所述并行度参数设置第二处理器的并行度,包括:
根据所述模型并行参数设置所述待处理任务的第一配置文件中的模型并行度;
根据所述数据并行参数设置所述待处理任务的第二配置文件中的数据并行度;
其中,所述第一配置文件和第二配置文件存储在所述第一处理器中。
在一种可能的实现方式中,根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务,还包括:
根据第一配置文件中的模型并行度对所述在线任务进行编译,在第二处理器上生成待执行程序;
通过第二命令将第二配置文件中的数据并行度发送给第二处理器,以使第二处理器根据所述数据并行度获取数据,并执行待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述待处理任务包括离线任务,
其中,根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务,包括:
分别根据模型并行参数和数据并行参数确定模型并行度和数据并行度;
根据模型并行度对所述离线任务进行编译,生成离线文件;
通过第三命令将所述离线文件中的数据和数据并行度发送给第二处理器,以使第二处理器根据数据并行度获取数据,并执行离线文件中的待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
根据本公开的另一方面,提供了一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
根据本公开的另一方面,提供了一种可读存储介质,其上存储有计算机程序如上所述方法的步骤。
根据本公开的另一方面,提供了一种并行执行方法,所述方法应用于第二处理器,所述方法包括:
从第一处理器接收待执行程序以及数据并行参数,其中,所述数据并行参数包括数据并行度;
根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
执行所述待执行程序对所述数据进行处理。
在一种可能的实现方式中,从第一处理器接收数据并行参数,包括:
接收第一处理器发送的第四命令,第四命令中携带有数据并行参数。
在一种可能的实现方式中,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
根据本公开的另一方面,提供了一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
根据本公开的另一方面,提供了一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述方法的步骤。
根据本公开的一方面,提供了一种并行执行装置,所述装置应用于第一处理器,所述装置包括:
获取模块,用于在接收到第一命令时,获取所述第一命令中的并行度参数;
设置模块,用于根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务;
其中,所述并行度参数包括模型并行参数和数据并行参数,所述并行度包括模型并行度和数据并行度。
在一种可能的实现方式中,所述待处理任务包括在线任务,
所述设置模块包括:
第一设置单元,用于根据所述模型并行参数设置所述待处理任务的第一配置文件中的模型并行度;
第二设置单元,用于根据所述数据并行参数设置所述待处理任务的第二配置文件中的数据并行度;
其中,所述第一配置文件和第二配置文件存储在所述第一处理器中。
在一种可能的实现方式中,所述设置模块还包括:
第一编译单元,用于根据第一配置文件中的模型并行度对所述在线任务进行编译,在第二处理器上生成待执行程序;
第一发送单元,用于通过第二命令将第二配置文件中的数据并行度发送给第二处理器,以使第二处理器根据所述数据并行度获取数据,并执行待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述待处理任务包括离线任务,
所述设置模块还包括:
确定单元,用于分别根据模型并行参数和数据并行参数确定模型并行度和数据并行度;
第二编译单元,用于根据模型并行度对所述离线任务进行编译,生成离线文件;
第二发送单元,用于通过第三命令将所述离线文件中的数据和数据并行度发送给第二处理器,以使第二处理器根据数据并行度获取数据,并执行离线文件中的待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
根据本公开的另一方面,提供了一种并行执行装置,所述装置应用于第二处理器,所述装置包括:
控制模块,用于从第一处理器接收待执行程序以及数据并行参数,其中,所述数据并行参数包括数据并行度;
控制模块还用于根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
运算模块,用于执行所述待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述控制模块包括:
接收单元,用于接收第一处理器发送的第四命令,第四命令中携带有数据并行参数。
在一种可能的实现方式中,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
根据本公开的另一方面,提供了一种人工智能处理装置,所述装置包括第一处理器和第二处理器,所述第一处理器连接到所述第二处理器,
其中,所述第一处理器用于执行如上所述的第一处理器执行的方法,所述第二处理器用于执行如上所述的第二处理器执行的方法。
在一种可能的实现方式中,所述第二处理器用于执行人工智能计算,所述第二处理器包括:运算模块以及控制模块,所述运算模块包括:一个主处理电路和多个从处理电路;
所述控制模块,用于从第一处理器接收待执行程序以及数据并行参数,所述数据并行参数包括数据并行度,所述待执行程序包括计算指令,
所述控制模块,还用于根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
所述控制模块,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
所述主处理电路,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
根据本公开的另一方面,提供了一种组合处理装置,其特征在于,所述组合处理装置包括如上所述的人工智能处理装置,通用互联接口和其它处理装置;
所述人工智能处理装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
在一种可能的实现方式中,所述组合处理装置还包括:存储装置,该存储装置分别与所述人工智能处理装置和所述其它处理装置连接,用于保存所述人工智能处理装置和所述其它处理装置的数据。
通过命令行传参数的方式传入并行度参数,可以根据待处理任务对吞吐量和延时的需求调整、设置第二处理器的模型并行度和数据并行度,以达到高吞吐、低延时的最佳点,具有很强的通用性。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性。并且,能够更有效的利用第二处理器中多个核的计算能力。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的并行执行方法的流程图。
图2示出根据本公开一实施例的步骤S12的方法的流程图。
图3示出根据本公开一实施例的步骤S12的方法的流程图。
图4示出根据本公开一实施例的并行执行方法的流程图。
图5示出根据本公开一实施例的并行执行装置的框图。
图6示出根据本公开一实施例的并行执行装置的框图。
图7示出根据本公开一实施例的并行执行装置的框图。
图8示出根据本公开一实施例的人工智能处理装置的框图。
图9是根据一示例性实施例示出的一种第二处理器的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
对人工智能模型(以下简称模型)的并行化的处理分为数据并行和模型并行:其中,数据并行是不同的核有同一个模型的多个副本,每个核分配到不同的数据,然后将所有核的计算结果按照某种方式合并,因此,可以提升网络单次读入的图片等数据数量;模型并行是分布式系统中的不同核负责人工智能模型的不同部分,例如,人工智能模型的不同网络层被分配到不同的核,或者同一层内部的不同参数被分配到不同核,也就是对于模型固有的算子等特征进行分拆,使之运行在不同的核上。
对于多核性能的提升目标在于高吞吐和低延时,针对特定的应用,对延时和吞吐量的需求各不相同,为了解决这一技术问题,本公开提供了一种并行执行方法以及相关装置。
在一种可能的实现方式中,本公开下文中提到的并行执行方法及装置可以是基于caffe(Convolutional Architecture for Fast Feature Embedding,卷积神经网络框架)开发的。当然,本公开不限于此,也可以根据实际需要基于其他的机器学习框架开发多核并行执行方法,以提高人工智能处理器的效能。
图1示出根据本公开一实施例的并行执行方法的流程图。该方法可以应用于第一处理器,第一处理器可以是主处理器,可以采用通用处理器,例如中央处理单元CPU、图形处理单元GPU等,本公开对第一处理器的具体类型不作限定。第一处理器可以为一终端上的处理器,该终端还可以包括存储器、输入设备等,该终端可以为计算机等,本公开对此不作限定。
在第一处理器上可以基于caffe开发基于caffe的多核并行执行方法及装置,如图1所示,该方法可以包括:
步骤S11,在接收到第一命令时,获取所述第一命令中的并行度参数;
步骤S12,根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务;
其中,所述并行度参数包括模型并行参数和数据并行参数,所述并行度包括模型并行度和数据并行度。
通过命令行传参数的方式传入并行度参数,可以根据待处理任务对吞吐量和延时的需求调整、设置第二处理器的模型并行度和数据并行度,以达到高吞吐、低延时的最佳点,具有很强的通用性。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性。并且,能够更有效的利用第二处理器中多个核的计算能力。
另外,设置方法具有如上所述的通用性,与用户的应用场景解耦,便与用户保护自己的核心数据不泄露。
对于灵活性,举例来说,应用可能需要啊延时较低,那么这种情况下可以适度增加模型并行度,如果应用需要的吞吐量较大,那么这种情况下可以适度增加数据并行度,模型并行度和数据并行度都可以通过命令行传参数的方式直接设置,灵活方便。
对于步骤S11,其中,第一命令可以为用于对并行度参数进行配置的配置命令,可以是用户通过终端的输入设备输入的命令行,命令行中携带有并行度参数,并行度参数可以包括如上所述的模型并行参数(mp,model parallelism)和数据并行参数(dp,dataparallelism)。第一处理器在接收到第一命令时,可以获取模型并行参数mp和数据并行参数dp。
对于步骤S12,其中,待处理任务可以为待训练的模型,待处理任务可以包括在线任务,在线任务可以是指第一处理器需要通过在线程序对第二处理器上的程序进行编译和执行。
第二处理器可以是用于执行人工智能运算的人工智能处理器,第二处理器可以包括多个核。该人工智能处理器可例如包括MLU(Majority Logic Unit)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对第二处理器的具体类型不作限制。
对于在线任务,步骤S12中的“根据所述并行度参数设置第二处理器的并行度”可以包括:
根据所述模型并行参数设置所述待处理任务的第一配置文件中的模型并行度;
根据所述数据并行参数设置所述待处理任务的第二配置文件中的数据并行度。
其中,所述第一配置文件和第二配置文件可以为存储在所述第一处理器中的文件,第一配置文件和第二配置文件可以是对caffe进行配置的配置文件。第一配置文件中和第二配置文件中可以包括相应的函数作为接口,第一处理器在接收到第一命令后,根据模型并行参数可以调用第一配置文件中的第一函数完成模型并行度的设置,根据数据并行参数可以调用第二配置文件中的第二函数完成数据并行度的设置。第一函数和第二函数可以为基于caffe开发的用于配置并行度参数的函数。
需要说明的是,第一配置文件以及第二配置文件的文件名称、存储位置可以根据实际应用的需要设置,本公开对此不作限定。同样的,第一函数和第二函数也可以根据实际应用的场景选择,本公开对此不作限定。
以上设置的第一配置文件中的模型并行度和第二配置文件数据并行度可以作为待处理任务对应的线程的全局变量,适用于线程的整个生命周期。
图2示出根据本公开一实施例的步骤S12的方法的流程图。如图2所示,步骤S12还可以包括:
步骤S121,根据第一配置文件中的模型并行度对所述在线任务进行编译,在第二处理器上生成待执行程序;
步骤S122,通过第二命令将第二配置文件中的数据并行度发送给第二处理器,以使第二处理器根据所述数据并行度获取数据,并执行待执行程序对所述数据进行处理。
模型并行的实现主要在编译时实现,因此,第一处理器可以根据第一配置文件中已经设置好的模型并行度对在线任务进行编译,在第二处理器上生成待执行程序。在编译过程中将在线任务中的模型按照模型并行度拆分为不同的部分(例如,不同的网络层)进行编译,并在该部分对应的第二处理器的核上生成待执行程序。在一种可能的实现方式中,第一处理器可以调用第一配置文件中的第一函数(接口)获取模型并行度。第二命令可以是在线任务对应的线程中的命令行,第一处理器可以调用第二配置文件的第二函数(接口)获取数据并行度,并通过命令行的方式将数据并行度传入第二处理器中。
第二处理器可以根据数据并行度获取数据,该数据可以是在线任务的需要处理的数据,例如,图片、声音等数据。举例来说,通过设置数据并行度可以设置第二处理器每次获取的图片的张数。在第二处理器的多个不同的核上可以有同一个模型的多个副本,多个副本的数量可以与数据并行度相同,因此,第二处理器上的多个核可以同时对获取的多张图片进行处理,实现数据并行。
对于在线任务,通过以上过程即可完成第二处理器的模型并行度和数据并行度的设置。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性,能够更有效的利用第二处理器中多个核的计算能力。
在一种可能的实现方式中,待处理任务还可以包括离线任务,对于离线任务,编译和运行的过程是分离的。
图3示出根据本公开一实施例的步骤S12的方法的流程图,对于离线任务,步骤S12可以包括:
步骤S123,分别根据模型并行参数和数据并行参数确定模型并行度和数据并行度;
步骤S124,根据模型并行度对所述离线任务进行编译,生成离线文件;
步骤S125,通过第三命令将所述离线文件中的数据和数据并行度发送给第二处理器,以使第二处理器根据数据并行度获取数据,并执行离线文件中的待执行程序对所述数据进行处理。
在一种可能的实现方式中,第一处理器可以根据第一命令中的模型并行参数确定模型并行度,根据第一命令中的数据并行参数确定数据并行度。
需要说明的是,确定模型并行度和数据并行度的过程可以不是同时执行的,本公开对此不作限定。在另一种可能的实现方式中,可以根据所述模型并行参数设置第三配置文件中的模型并行度。其中,第三配置文件可以为所述离线任务的配置文件,第三配置文件也可以存储在第一处理器中,举例来说,第三配置文件可以为对caffe的离线任务进行配置的配置文件。
第一处理器可以根据上述确定的模型并行度对离线任务进行编译,生成离线文件,或者,也可以调用第三配置文件的接口获取模型并行度,根据该获取的模型并行度对离线任务进行编译,生成离线文件。具体地,可以在编译过程中将离线任务中的模型按照模型并行度拆分为不同的部分进行编译,生成离线文件。离线文件中的数据可以包括第二处理器需要执行的待执行程序以及相关参数,相关参数可以是模型的权重等。
第三命令可以是离线任务对应的线程中的命令行,第一处理器可以通过命令行的方式将所述离线文件中的数据和数据并行度传入第二处理器。第二处理器的处理过程可以参见上文的介绍,不再赘述。
对于离线任务,通过以上过程即可完成第二处理器的模型并行度和数据并行度的设置。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性,能够更有效的利用第二处理器中多个核的计算能力。
图4示出根据本公开一实施例的并行执行方法的流程图。该方法可以应用于第二处理器,如上文所述,第二处理器可以是用于执行人工智能运算的人工智能处理器(IPU),第二处理器可以包括多个核。该人工智能处理器可例如包括MLU(Majority Logic Unit)、GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network ProcessingUnit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对第二处理器的具体类型不作限制。
如图4所示,所述方法可以包括:
步骤S21,从第一处理器接收待执行程序以及数据并行参数;
步骤S22,根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
步骤S23,执行所述待执行程序对所述数据进行处理。
对于步骤S21,从第一处理器接收待执行程序可以是指以在线或者离线的方式接收,比如说,对于在线任务,第一处理器在编译过程中在第二处理器上生成待执行程序,或者,对于离线任务,第一处理器编译完后生成离线文件,离线文件中包括待执行程序和相关参数,再将离线文件中的数据以命令行的方式传入第二处理器。其中,第一处理器在编译过程中,可以根据模型并行度对待处理任务(在线任务或者离线任务)进行编译。
从第一处理器接收数据并行参数可以包括接收第一处理器发送的第四命令,第四命令中携带有数据并行参数。其中,第四命令可以是如上文所述的第二命令或者第三命令。其中,所述数据并行参数可以为数据并行度。
对于步骤S22和步骤S23可以参见上文中关于步骤S122部分的描述,不再赘述。
通过命令行传参数的方式传入并行度参数,可以根据待处理任务对吞吐量和延时的需求调整、设置第二处理器的模型并行度和数据并行度,以达到高吞吐、低延时的最佳点,具有很强的通用性。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性。并且,能够更有效的利用第二处理器中多个核的计算能力。
图5示出根据本公开一实施例的并行执行装置的框图。所述装置可以应用于第一处理器,所述装置可以包括:
获取模块31,用于在接收到第一命令时,获取所述第一命令中的并行度参数;
设置模块32,用于根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务;
其中,所述并行度参数包括模型并行参数和数据并行参数,所述并行度包括模型并行度和数据并行度。
通过命令行传参数的方式传入并行度参数,可以根据待处理任务对吞吐量和延时的需求调整、设置第二处理器的模型并行度和数据并行度,以达到高吞吐、低延时的最佳点,具有很强的通用性。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性。并且,能够更有效的利用第二处理器中多个核的计算能力。
图6示出根据本公开一实施例的并行执行装置的框图。
在一种可能的实现方式中,所述待处理任务包括在线任务,如图6所示,所述设置模块32可以包括:
第一编译单元321,用于根据第一配置文件中的模型并行度对所述在线任务进行编译,在第二处理器上生成待执行程序;
第一发送单元322,用于通过第二命令将第二配置文件中的数据并行度发送给第二处理器,以使第二处理器根据所述数据并行度获取数据,并执行待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述待处理任务包括离线任务,
所述设置模块32还包括:
确定单元323,用于分别根据模型并行参数和数据并行参数确定模型并行度和数据并行度;
第二编译单元324,用于根据模型并行度对所述离线任务进行编译,生成离线文件;
第二发送单元325,用于通过第三命令将所述离线文件中的数据和数据并行度发送给第二处理器,以使第二处理器根据数据并行度获取数据,并执行离线文件中的待执行程序对所述数据进行处理。
在一种可能的实现方式中,所述设置模块32还可以包括:
第一设置单元326,用于根据所述模型并行参数设置所述待处理任务的第一配置文件中的模型并行度;
第二设置单元327,用于根据所述数据并行参数设置所述待处理任务的第二配置文件中的数据并行度;
其中,所述第一配置文件和第二配置文件存储在所述第一处理器中。
图7示出根据本公开一实施例的并行执行装置的框图。所述装置应用于第二处理器,所述装置可以包括:
控制模块51,用于从第一处理器接收待执行程序以及数据并行参数,其中,所述数据并行参数包括数据并行度;
控制模块51,还用于根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
运算模块52,用于执行所述待执行程序对所述数据进行处理。
通过命令行传参数的方式传入并行度参数,可以根据待处理任务对吞吐量和延时的需求调整、设置第二处理器的模型并行度和数据并行度,以达到高吞吐、低延时的最佳点,具有很强的通用性。针对不同的模型,方便达到用户希望得到的吞吐量和延时的最佳点,具有很强的灵活性。并且,能够更有效的利用第二处理器中多个核的计算能力。
在一种可能的实现方式中,所述控制模块51可以包括:
接收单元,用于接收第一处理器发送的第四命令,第四命令中携带有数据并行参数。
图8示出根据本公开一实施例的人工智能处理装置的框图。如图8所示,所述装置包括第一处理器41和第二处理器42,所述第一处理器41连接到所述第二处理器42,
其中,所述第一处理器41用于执行上文中图1-图3部分所述的方法,所述第二处理器42用于执行图4部分所述的方法。
在一种可能的实现方式中,第一处理器41可以是主处理器,可以采用通用处理器,例如中央处理单元CPU、图形处理单元GPU等。第一处理器41可用于获取输入数据以及要使用的人工智能算子,并将其传输给第二处理器42,以使第二处理器42执行相应的人工智能运算。本公开对第一处理器的具体类型不作限制。
第二处理器42可以是用于执行人工智能运算的人工智能处理器(IPU),第二处理器可以包括多个核。该人工智能处理器可例如包括MLU(Majority Logic Unit)、GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对第二处理器的具体类型不作限制。
在一种可能的实施方式中,人工智能处理装置可以是有不同的处理器形成的(例如IPU+CPU);也可以是由多个相同的处理器形成的,例如多个处理器(XPU)形成类似于第一处理器41及第二处理器42的架构。其中,处理器的类型可以是现有的,也可以是新提出的新型处理器,本公开对此不作限制。
图9是根据一示例性实施例示出的一种第二处理器的框图。
参阅图9,该第二处理器用于执行机器学习计算,该第二处理器包括:控制模块141和运算模块142,其中,控制模块141与运算模块142连接,该运算模块142包括:一个主处理电路和多个从处理电路;
控制模块141,用于获取输入数据以及计算指令;控制模块141获取的计算指令可以是由第一处理器对待处理任务进行编译后的待执行程序中的指令,输入数据可以是如上文所述的待处理任务的输入数据,还可以包括相关参数。
在一种可选方案中,一个主处理电路和多个从处理电路可以为树型结构、H型结构或者脉冲阵列机结构,本公开对主处理电路和从处理电路之前的连接方式不作限定。
在一种可选方案中,具体的,获取输入数据以及计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
上述计算指令包括但不限于:正向运算指令或反向训练指令,或其他神经网络运算指令等等,例如卷积运算指令,本申请具体实施方式并不限制上述计算指令的具体表现形式。
控制模块141,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
主处理电路101,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;
多个从处理电路102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
主处理电路101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
本申请提供的技术方案将运算模块设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选的,上述机器学习计算具体可以包括:人工神经网络运算,上述输入数据具体可以包括:输入神经元数据和权值数据。上述计算结果具体可以为:人工神经网络运算的结果即输出神经元数据。
对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算模块中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算模块中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
上述机器学习计算还可以包括支持向量机运算,k-近邻(k-nn)运算,k-均值(k-means)运算,主成分分析运算等等。为了描述的方便,下面以人工神经网络运算为例来说明机器学习计算的具体方案。
对于人工神经网络运算,如果该人工神经网络运算具有多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
可选的,上述第二处理器还可以包括:该存储单元140和直接内存访问单元50,存储单元140可以包括:寄存器、缓存中的一个或任意组合,具体的,所述缓存,用于存储所述计算指令;所述寄存器,用于存储所述输入数据和标量;所述缓存为高速暂存缓存。直接内存访问单元50用于从存储单元10读取或存储数据。
可选的,该控制模块包括:指令存储单元410、指令处理单元411和存储队列单元413;
指令存储单元410,用于存储所述人工神经网络运算关联的计算指令;
所述指令处理单元411,用于对所述计算指令解析得到多个运算指令;
存储队列单元413,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
举例说明,在一个可选的技术方案中,主运算处理电路也可以包括一个控制模块,该控制模块可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方案中,从运算处理电路也可以包括另一个控制模块,该另一个控制模块包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。
在一种可选方案中,该计算指令的结构可以如下表所示。
操作码 | 寄存器或立即数 | 寄存器/立即数 | … |
上表中的省略号表示可以包括多个寄存器或立即数。
在另一种可选方案中,该计算指令可以包括:一个或多个操作域以及一个操作码。该计算指令可以包括神经网络运算指令。以神经网络运算指令为例,如表1所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以是一个或者多个寄存器的号码。
上述寄存器可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据,该数据具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
可选的,该控制模块还可以包括:
所述依赖关系处理单元412,用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算模块;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (22)
1.一种并行执行方法,其特征在于,所述方法应用于第一处理器,所述方法包括:
在接收到第一命令时,获取所述第一命令中的并行度参数;其中,所述第一命令为通过终端的输入设备输入的命令行,命令行中携带有所述并行度参数;
根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务;
其中,所述并行度参数包括模型并行参数和数据并行参数,所述并行度包括模型并行度和数据并行度;
所述待处理任务包括离线任务,
其中,根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务,包括:
分别根据模型并行参数和数据并行参数确定模型并行度和数据并行度;
根据模型并行度对所述离线任务进行编译,生成离线文件;
通过第三命令将所述离线文件中的数据和数据并行度发送给第二处理器,以使第二处理器根据数据并行度获取数据,并执行离线文件中的待执行程序对所述数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述待处理任务包括在线任务,
其中,根据所述并行度参数设置第二处理器的并行度,包括:
根据所述模型并行参数设置所述待处理任务的第一配置文件中的模型并行度;
根据所述数据并行参数设置所述待处理任务的第二配置文件中的数据并行度;
其中,所述第一配置文件和第二配置文件存储在所述第一处理器中。
3.根据权利要求2所述的方法,其特征在于,根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务,还包括:
根据第一配置文件中的模型并行度对所述在线任务进行编译,在第二处理器上生成待执行程序;
通过第二命令将第二配置文件中的数据并行度发送给第二处理器,以使第二处理器根据所述数据并行度获取数据,并执行待执行程序对所述数据进行处理。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
5.一种并行执行方法,其特征在于,所述方法应用于第二处理器,所述方法包括:
从第一处理器接收待执行程序以及数据并行参数,其中,所述数据并行参数包括数据并行度;其中,所述待执行程序是第一处理器根据模型并行度对待处理任务进行编译得到的,模型并行度是第一处理器根据通过终端的输入设备输入的命令行中携带的模型并行度参数确定的;
根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
执行所述待执行程序对所述数据进行处理。
6.根据权利要求5所述的方法,其特征在于,从第一处理器接收数据并行参数,包括:
接收第一处理器发送的第四命令,第四命令中携带有数据并行参数。
7.根据权利要求5或6所述的方法,其特征在于,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
8.一种并行执行装置,其特征在于,所述装置应用于第一处理器,所述装置包括:
获取模块,用于在接收到第一命令时,获取所述第一命令中的并行度参数;其中,所述第一命令为通过终端的输入设备输入的命令行,命令行中携带有所述并行度参数;
设置模块,用于根据所述并行度参数设置第二处理器的并行度,以使所述第二处理器中的多个核以所述并行度执行待处理任务;
其中,所述并行度参数包括模型并行参数和数据并行参数,所述并行度包括模型并行度和数据并行度;
所述待处理任务包括离线任务,
所述设置模块还包括:
确定单元,用于分别根据模型并行参数和数据并行参数确定模型并行度和数据并行度;
第二编译单元,用于根据模型并行度对所述离线任务进行编译,生成离线文件;
第二发送单元,用于通过第三命令将所述离线文件中的数据和数据并行度发送给第二处理器,以使第二处理器根据数据并行度获取数据,并执行离线文件中的待执行程序对所述数据进行处理。
9.根据权利要求8所述的装置,其特征在于,所述待处理任务包括在线任务,
所述设置模块包括:
第一设置单元,用于根据所述模型并行参数设置所述待处理任务的第一配置文件中的模型并行度;
第二设置单元,用于根据所述数据并行参数设置所述待处理任务的第二配置文件中的数据并行度;
其中,所述第一配置文件和第二配置文件存储在所述第一处理器中。
10.根据权利要求9所述的装置,其特征在于,所述设置模块还包括:
第一编译单元,用于根据第一配置文件中的模型并行度对所述在线任务进行编译,在第二处理器上生成待执行程序;
第一发送单元,用于通过第二命令将第二配置文件中的数据并行度发送给第二处理器,以使第二处理器根据所述数据并行度获取数据,并执行待执行程序对所述数据进行处理。
11.根据权利要求8-10任意一项所述的装置,其特征在于,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
12.一种并行执行装置,其特征在于,所述装置应用于第二处理器,所述装置包括:
控制模块,用于从第一处理器接收待执行程序以及数据并行参数,其中,所述数据并行参数包括数据并行度;其中,所述待执行程序是第一处理器根据模型并行度对待处理任务进行编译得到的,模型并行度是第一处理器根据通过终端的输入设备输入的命令行中携带的模型并行度参数确定的;
控制模块还用于根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
运算模块,用于执行所述待执行程序对所述数据进行处理。
13.根据权利要求12所述的装置,其特征在于,所述控制模块包括:
接收单元,用于接收第一处理器发送的第四命令,第四命令中携带有数据并行参数。
14.根据权利要求12或13所述的装置,其特征在于,所述第一处理器为通用处理器,所述第二处理器为人工智能处理器。
15.一种人工智能处理装置,其特征在于,所述装置包括第一处理器和第二处理器,所述第一处理器连接到所述第二处理器,
其中,所述第一处理器用于执行权利要求1-4中任意一项所述的方法,所述第二处理器用于执行权利要求5-7中任意一项所述的方法。
16.根据权利要求15所述的装置,其特征在于,所述第二处理器为人工智能处理装置,用于执行人工智能计算,所述第二处理器包括:运算模块以及控制模块,所述运算模块包括:一个主处理电路和多个从处理电路;
所述控制模块,用于从第一处理器接收待执行程序以及数据并行参数,所述数据并行参数包括数据并行度,所述待执行程序包括计算指令,
所述控制模块,还用于根据所述数据并行度获取数据,其中,所述数据为所述待执行程序的输入数据;
所述控制模块,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
所述主处理电路,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
17.一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
18.一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求5至7中任一项所述方法的步骤。
19.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述方法的步骤。
20.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求5至7中任一项所述方法的步骤。
21.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求7、11、14或16任意一项所述的人工智能处理装置,通用互联接口和其它处理装置;
所述人工智能处理装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
22.根据权利要求21所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述人工智能处理装置和所述其它处理装置连接,用于保存所述人工智能处理装置和所述其它处理装置的数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811635181.XA CN109740747B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
CN201910917696.7A CN110689138B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
US16/711,370 US11893414B2 (en) | 2018-12-29 | 2019-12-11 | Operation method, device and related products |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811635181.XA CN109740747B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910917696.7A Division CN110689138B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109740747A CN109740747A (zh) | 2019-05-10 |
CN109740747B true CN109740747B (zh) | 2019-11-12 |
Family
ID=66362246
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811635181.XA Active CN109740747B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
CN201910917696.7A Active CN110689138B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910917696.7A Active CN110689138B (zh) | 2018-12-29 | 2018-12-29 | 运算方法、装置及相关产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11893414B2 (zh) |
CN (2) | CN109740747B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949317B (zh) * | 2019-05-17 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN110597622A (zh) * | 2019-08-13 | 2019-12-20 | 欣扬电脑股份有限公司 | 多节点异质运算装置及多节点异质运算系统 |
CN110795903B (zh) * | 2019-09-12 | 2023-08-15 | 中科寒武纪科技股份有限公司 | 指令处理方法、装置及相关产品 |
US11283453B2 (en) | 2019-12-27 | 2022-03-22 | Kepler Computing Inc. | Low power ferroelectric based majority logic gate carry propagate and serial adder |
US11018672B1 (en) | 2019-12-27 | 2021-05-25 | Kepler Computing Inc. | Linear input and non-linear output majority logic gate |
US11374574B2 (en) | 2019-12-27 | 2022-06-28 | Kepler Computing Inc. | Linear input and non-linear output threshold logic gate |
US10944404B1 (en) | 2019-12-27 | 2021-03-09 | Kepler Computing, Inc. | Low power ferroelectric based majority logic gate adder |
CN112232517B (zh) * | 2020-09-24 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 一种人工智能加速引擎和人工智能处理器 |
US20210042254A1 (en) * | 2020-10-28 | 2021-02-11 | Pratik Marolia | Accelerator controller hub |
US11381244B1 (en) | 2020-12-21 | 2022-07-05 | Kepler Computing Inc. | Low power ferroelectric based majority logic gate multiplier |
US11165430B1 (en) | 2020-12-21 | 2021-11-02 | Kepler Computing Inc. | Majority logic gate based sequential circuit |
US11394387B1 (en) | 2021-05-21 | 2022-07-19 | Kepler Computing Inc. | 2-input NAND gate with non-linear input capacitors |
US11705906B1 (en) | 2021-05-21 | 2023-07-18 | Kepler Computing Inc. | Majority logic gate having ferroelectric input capacitors and a pulsing scheme coupled to a conditioning logic |
US11303280B1 (en) | 2021-08-19 | 2022-04-12 | Kepler Computing Inc. | Ferroelectric or paraelectric based sequential circuit |
US12118327B1 (en) | 2021-09-02 | 2024-10-15 | Kepler Computing Inc. | Ripple carry adder with inverted ferroelectric or paraelectric based adders |
US11705905B1 (en) | 2021-12-14 | 2023-07-18 | Kepler Computing, Inc. | Multi-function ferroelectric threshold gate with input based adaptive threshold |
US11664370B1 (en) | 2021-12-14 | 2023-05-30 | Kepler Corpating inc. | Multi-function paraelectric threshold gate with input based adaptive threshold |
US11652482B1 (en) | 2021-12-23 | 2023-05-16 | Kepler Computing Inc. | Parallel pull-up and pull-down networks controlled asynchronously by threshold logic gate |
US11855627B1 (en) | 2022-01-13 | 2023-12-26 | Kepler Computing Inc. | Asynchronous consensus circuit using multi-function threshold gate with input based adaptive threshold |
US11750197B1 (en) | 2022-04-20 | 2023-09-05 | Kepler Computing Inc. | AND-OR-invert logic based on a mix of majority OR minority logic gate with non-linear input capacitors and other logic gates |
US11765908B1 (en) | 2023-02-10 | 2023-09-19 | Kepler Computing Inc. | Memory device fabrication through wafer bonding |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
CN107844833A (zh) * | 2017-11-28 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种卷积神经网络的数据处理方法、装置及介质 |
CN107862378A (zh) * | 2017-12-06 | 2018-03-30 | 芯原微电子(上海)有限公司 | 基于多核的卷积神经网络加速方法及系统、存储介质及终端 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566259B2 (en) * | 2009-09-04 | 2013-10-22 | The Regents Of The University Of California | Method and system for parallel statistical inference on highly parallel platforms |
CN103049245B (zh) * | 2012-10-25 | 2015-12-02 | 浪潮电子信息产业股份有限公司 | 一种基于中央处理器cpu多核平台的软件性能优化方法 |
CN103853147B (zh) * | 2012-12-06 | 2016-04-20 | 中国科学院软件研究所 | 一种嵌入式系统的在线调试系统 |
CN103729235A (zh) * | 2013-12-24 | 2014-04-16 | 华为技术有限公司 | Java虚拟机的编译方法和Java虚拟机 |
US9886670B2 (en) * | 2014-06-30 | 2018-02-06 | Amazon Technologies, Inc. | Feature processing recipes for machine learning |
CN104714852B (zh) * | 2015-03-17 | 2018-05-22 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
CN105243107B (zh) * | 2015-09-23 | 2018-07-20 | 环境保护部环境工程评估中心 | Calpuff大气模型多线程计算系统 |
CN105787865B (zh) * | 2016-03-01 | 2018-09-07 | 西华大学 | 基于游戏引擎和gpu并行处理的分形图生成与渲染方法 |
CN106095588B (zh) * | 2016-06-28 | 2019-03-15 | 北京大学深圳研究生院 | 基于gpgpu平台的cdvs提取过程加速方法 |
US10310908B2 (en) * | 2016-08-19 | 2019-06-04 | International Business Machines Corporation | Dynamic usage balance of central processing units and accelerators |
US20180075347A1 (en) * | 2016-09-15 | 2018-03-15 | Microsoft Technology Licensing, Llc | Efficient training of neural networks |
CN107122375B (zh) * | 2016-12-12 | 2020-11-06 | 南京理工大学 | 基于图像特征的图像主体的识别方法 |
US10891156B1 (en) * | 2017-04-26 | 2021-01-12 | EMC IP Holding Company LLC | Intelligent data coordination for accelerated computing in cloud environment |
US11017291B2 (en) * | 2017-04-28 | 2021-05-25 | Intel Corporation | Training with adaptive runtime and precision profiling |
CN107315632A (zh) * | 2017-06-27 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种双调合并排序方法及系统 |
CN107480717A (zh) * | 2017-08-16 | 2017-12-15 | 北京奇虎科技有限公司 | 训练作业处理方法及系统、计算设备、计算机存储介质 |
CN107480115B (zh) * | 2017-08-31 | 2021-04-06 | 郑州云海信息技术有限公司 | 一种caffe框架残差网络配置文件格式转换方法及系统 |
CN107992299B (zh) * | 2017-11-27 | 2021-08-10 | 郑州云海信息技术有限公司 | 神经网络超参数提取转换方法、系统、装置及存储介质 |
US20190317825A1 (en) * | 2018-04-16 | 2019-10-17 | Kazuhm, Inc. | System for managing deployment of distributed computing resources |
CN108681777B (zh) * | 2018-05-07 | 2021-07-20 | 北京京东尚科信息技术有限公司 | 一种基于分布式系统的机器学习程序运行的方法和装置 |
CN109002350B (zh) * | 2018-05-23 | 2021-08-03 | 中国石油天然气集团有限公司 | 一种集群系统中的进程通信方法及装置 |
EP3871159A1 (en) * | 2018-10-23 | 2021-09-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Architecture for utilizing key-value store for distributed neural networks and deep learning |
-
2018
- 2018-12-29 CN CN201811635181.XA patent/CN109740747B/zh active Active
- 2018-12-29 CN CN201910917696.7A patent/CN110689138B/zh active Active
-
2019
- 2019-12-11 US US16/711,370 patent/US11893414B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
CN107844833A (zh) * | 2017-11-28 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种卷积神经网络的数据处理方法、装置及介质 |
CN107862378A (zh) * | 2017-12-06 | 2018-03-30 | 芯原微电子(上海)有限公司 | 基于多核的卷积神经网络加速方法及系统、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110689138A (zh) | 2020-01-14 |
CN110689138B (zh) | 2021-03-19 |
CN109740747A (zh) | 2019-05-10 |
US11893414B2 (en) | 2024-02-06 |
US20200210233A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740747B (zh) | 运算方法、装置及相关产品 | |
Liang et al. | Evaluating fast algorithms for convolutional neural networks on FPGAs | |
Fowers et al. | A configurable cloud-scale DNN processor for real-time AI | |
JP6977239B2 (ja) | 行列乗算器 | |
US10963787B2 (en) | Systems and methods for generation of sparse code for convolutional neural networks | |
CN109711539A (zh) | 运算方法、装置及相关产品 | |
Lu et al. | Evaluating fast algorithms for convolutional neural networks on FPGAs | |
WO2022170997A1 (zh) | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 | |
US20200042856A1 (en) | Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit | |
KR102414583B1 (ko) | 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법 | |
Kim et al. | FPGA-based CNN inference accelerator synthesized from multi-threaded C software | |
WO2021026225A1 (en) | System and method of accelerating execution of a neural network | |
CN110163333A (zh) | 卷积神经网络的并行优化方法 | |
CN106920034B (zh) | 一种挖掘bpmn编制流程并行性的方法及系统 | |
CN104850866A (zh) | 基于SoC-FPGA的自重构K-means聚类技术实现方法 | |
Talbi et al. | Metaheuristics on gpus | |
Shepovalov et al. | FPGA and GPU-based acceleration of ML workloads on Amazon cloud-A case study using gradient boosted decision tree library | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
Aghapour et al. | Integrated ARM big. Little-Mali pipeline for high-throughput CNN inference | |
CN107678781A (zh) | 处理器以及用于在处理器上执行指令的方法 | |
Gonçalves et al. | Exploring data size to run convolutional neural networks in low density fpgas | |
Wu et al. | Implementation and evaluation of parallel FFT on Engineering and Scientific Computation Accelerator (ESCA) architecture | |
CN111143208B (zh) | 基于处理器技术辅助fpga实现ai算法的验证方法 | |
Liu et al. | Coexe: An efficient co-execution architecture for real-time neural network services | |
Li et al. | An Optimal Design Method of Conv2d Operator for TensorFlow Based on FPGA Accelerator |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Patentee after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Patentee before: Beijing Zhongke Cambrian Technology Co., Ltd. |