CN111832736A - 用于处理机器学习模型的方法、设备和计算机程序产品 - Google Patents
用于处理机器学习模型的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN111832736A CN111832736A CN201910318463.5A CN201910318463A CN111832736A CN 111832736 A CN111832736 A CN 111832736A CN 201910318463 A CN201910318463 A CN 201910318463A CN 111832736 A CN111832736 A CN 111832736A
- Authority
- CN
- China
- Prior art keywords
- data
- machine learning
- dedicated processing
- learning model
- functions
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 185
- 238000010801 machine learning Methods 0.000 title claims abstract description 127
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000004590 computer program Methods 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims abstract description 95
- 230000008569 process Effects 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000005711 Benzoic acid Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本公开的实施例涉及用于处理机器学习模型的方法、设备和计算机程序产品。该方法包括将由源语言编写的机器学习模型编译为中间表示,该中间表示与源语言和目标语言无关并且包括由结构化文本描述的计算图,计算图中的节点表示与机器学习模型相关联的函数。该方法还包括向调度器发送中间表示以从调度器获得与用于执行机器学习模型的多个专用处理资源有关的指示信息。该方法还包括基于中间表示和所获得的指示信息,生成与多个专用处理资源相对应多个运行时库以用于处理与机器学习模型有关的数据,运行时库包括由目标语言表示的多个函数。通过采用上述方法,提高了编译器的通用性,而且易于在不同的专用处理资源上分配机器学习模型。
Description
技术领域
本公开的实施例涉及人工智能领域,具体地涉及用于处理机器学习模型的方法、设备和计算机程序产品。
背景技术
近年来,随着人工智能技术的进步,机器学习或深度学习(DL)已经推动了许多领域的发展。与此同时,机器学习模型也变得越来越复杂,需要使用数据集越大,因此执行这样的机器学习模型需要更多的计算资源。目前,由于CPU的计算能力以及与外围计算设备之间通信带宽的限制,单个机器的计算能力往往难以满足大规模机器学习模型的要求。因此,如何有效地部署机器学习模型已经成为当前关注的焦点。
发明内容
本公开的实施例提供一种用于处理机器学习模型的方法、设备和计算机程序产品。
根据本公开的第一方面,提供了一种用于处理机器学习模型的方法。该方法包括获得由源语言编写的机器学习模型的中间表示,该中间表示与源语言和目标语言无关并且包括由结构化文本描述的计算图,计算图中的节点表示与机器学习模型相关联的函数。该方法还包括向调度器发送中间表示以从调度器获得与用于执行机器学习模型的多个专用处理资源有关的指示信息。该方法还包括基于中间表示和所获得的指示信息,生成与多个专用处理资源相对应多个运行时库以用于处理与机器学习模型有关的数据,运行时库包括由目标语言表示的多个函数。
根据本公开的第二方面,提供了一种用于执行机器学习模型的方法。该方法包括在第一设备处接收用于由机器学习模型处理的数据。该方法还包括将接收到的数据发送到第一设备的第一专用处理资源,以使得第一专用处理资源通过执行与机器学习模型有关的多个函数中的第一组函数来处理数据,第一组函数被包括在第一设备可访问的第一运行时库中,第一运行时库根据本公开的第一方面中的方法生成。该方法还包括将第一专用处理资源处理后的数据发送给第二设备进行处理。
根据本公开的第三方面,提供了一种用于处理数据的电子设备。该电子设备包括处理器;以及存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,该动作包括获得由源语言编写的机器学习模型的中间表示,该中间表示与源语言和目标语言无关并且包括由结构化文本描述的计算图,计算图中的节点表示与机器学习模型相关联的函数;向调度器发送中间表示以从调度器获得与用于执行机器学习模型的多个专用处理资源有关的指示信息;以及基于中间表示和所获得的指示信息,生成与多个专用处理资源相对应多个运行时库以用于处理与机器学习模型有关的数据,运行时库包括由目标语言表示的多个函数。
根据本公开的第四方面,提供了一种用于处理数据的电子设备。该电子设备包括处理器;以及存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,该动作包括在第一设备处接收用于由机器学习模型处理的数据;将接收到的数据发送到第一设备的第一专用处理资源,以使得第一专用处理资源通过执行与机器学习模型有关的多个函数中的第一组函数来处理数据,第一组函数被包括在第一设备可访问的第一运行时库中,第一运行时库根据本公开的第一方面的方法生成;以及将第一专用处理资源处理后的数据发送给第二设备进行处理。
根据本公开的第五方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
根据本公开的第六方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第二方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图;
图2图示了根据本公开的实施例的计算图200的示意图;
图3图示了根据本公开的实施例的用于编译机器学习模型的方法300的流程图;
图4图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境400的示意图;
图5图示了根据本公开的实施例的用于采用机器学习模型处理数据的方法500的流程图;
图6图示了适于用来实施本公开内容的实施例的示例设备600的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在使用机器学习模型处理数据时,最初采用数据并行的方式进行。通过这种方式,每个机器上都运行机器学习模型来处理部分数据。然而,由于机器学习模型的发展,单个的计算设备已经难以运行整个机器学习模型。因此,模型并行的方式被用来运行较大的且复杂的机器学习模型。
程序开发人员通常使用特定框架编写机器学习模型程序,并逐层定义神经网络。因此,在采用模型并行方式处理机器学习模型时,通常把机器学习模型中的不同的层分布到不同的计算设备上。然而,框架或编译器在对机器学习模型程序进行编译时,通常生成单个二进制程序。此时的程序已经具有非常少的关于如何组织层的信息。此时,框架和开发人员很难将整个计算任务从这个单个二进制程序逐层拆分到不同的计算节点中。
此外,在不同神经网络中采用不同的参数格式组织,诸如卷积神经网络CNN和递归神经网络RNN中参数格式并不相同。即使在相同类型的神经网络(例如CNN)中,由于层的数目不同和层中的节点不同,不同的划分方案也将导致不同的参数格式。因此,并没有统一的方法来实现参数的同步。
为了解决上述问题,本公开提出了一种用于处理机器学习模型的方法。在该方法中,获得由源语言编写的机器学习模型的中间表示。中间表示包括与机器学习模型相关联的函数。然后将中间表示发送到调度器,以从调度器获得执行机器学习模型的多个专用处理资源的类型。然后针对每个专用处理资源的类型生成用于该类型的专用处理资源的运行时库。在运行该机器学习模型时,通过在不同的设备的不同专用处理资源上运行不同的函数,然后在不同的设备间传递函数参数实现对机器学习模型的运行。通过上述方式,可以将不同语言编写的和来自不同框架的程序进行编译,提高了编译器通用性。此外,通过基于函数来部署机器学习模型,提高了机器学习模型部署的简便性。
下面图1图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图。
如图1所示,示例环境100包括计算设备104和调度器108。计算设备104可以接收由源语言编写的机器学习模型102。在一些实施例中,源语言编写的机器学习模型102可以采用不同的源语言编写,这些源语言例如可以包括:CUDA、Java、Python、C++、Fortran、Ada和C#等。在一些实施例中,源语言编写的机器学习模型102可以由不同的框架确定的。上述示例仅是用于描述本公开,而非对本公开的具体限定。
在一些实施例中,用户(例如,机器学习模型开发人员)可以通过个人计算设备向计算设备104发送源语言编写的机器学习模型102。在一些实施例中,计算设备104也可以从耦合的设备中获取需要执行的机器学习模型的源代码。上述示例仅是用于描述本公开,而非对本公开的具体限定。计算设备104可以基于任意合适的方式来获来获得机器学习模型102。
计算设备104包括编译器106。在一些实施例中,编译器106可以用于将机器学习模型编译为对应的中间表示。编译是将以编程语言编写的源代码/原始代码转换成目标架构的机器代码或本地代码的过程。中间表示是编译器或虚拟机内部使用的用于表示源代码的数据结构或代码,并且与源语言和目标语言无关。通过将源语言编写的中间模型编译为中间表示。在一些实施例中,机器学习模型的中间表示可以通过其他方式获得,例如编程人员依据编译器的编译规则将由源语言编写的机器学习模型编写为机器学习模型的中间表示。上述示例仅是用于描述本公开,而非对本公开的具体限定。可以采用任意合适的方式获得由源语言编写的机器学习模型的中间表示。
在一些实施例中,中间表示可以包括由结构化文本描述的计算图。例如,中间表示可以包括以Javascript对象简谱(JSON)或者可扩展标记语言(XML)格式描述的待执行的机器学习模型的计算图。计算图中的节点表示与机器学习模型相关联的函数。计算图还包括函数之间的依赖关系。
作为示例,图2中示出了包括五个节点A 202、节点B 204、节点C 206、节点D 208和节点E 210的计算图。在该计算图中每个节点表示机器学习模型中的一个函数,节点间的连线表示函数之间的依赖关系。例如,节点A202的参数传给节点B204和节点C 206,节点C 206的参数传递给节点D 208。图2仅是作为示例来描述计算图。计算图中的节点数目和计算图的结构可以基于需要设置为任意合适的形式。
编译器106会将获得的中间表示传递给调度器108并且从调度器108获取与用于处理机器学习模型有关的专用处理资源的指示信息。
在一些实施例中,指示信息包括用于该机器学习模型的计算资源的数量和相应的计算资源的类型。备选地或附加地,该指示信息还可以包括任意其他合适的信息。
编译器106基于机器学习横型的中间表示和从调度器108获得的指示信息来针对每个用于机器学习模型的专用处理资源生成与该专用处理资源的类型相对应的运行时库。运行时库是编译器用来实现程序的内置函数,以在该程序运行时提供支持的一种特殊的计算机程序库。
在一些实施例中,每个运行时库包括由目标语言表示的计算图中的函数。备选地或附加地,每个运行时库包括计算图中的每个函数。
在图1的示例中示出了由编译器106生成的四个运行时库:运行时库1 110、运行时库2 112、运行时库3 114和运行时库4 116。每个运行时库中针对每个专用处理资源类型并且包括由目标语言表示的计算图中的所有函数。上述示例仅是用于说明本公开,而非对本公开的具体限定。编译器106可以基于调度器108确定的专用处理资源的数量和类型生成任意合适数量的运行时库。
在一些实施例中,编译器106除了生成针对专用处理资源的运行时库外,还生成在管理专用处理资源的主机上运行的主机程序代码。在一些实施例中,在每个专用处理资源上运行的运行时库均对应一个在控制专用处理资源的主机上运行的主机程序。主机运行分配给它的主机程序,来控制专用处理资源处理分配给其的机器学习模型的函数,以及从不同的主机接收数据和向不同的主机发送数据。
在一个示例中,该主机程序可以直接由编程人员直接编写。在另一个示例中,该主机程序可以由编译器106生成,然后由编程人员修改。在又一个示例中,该主机程序可以由调度器108来生成。
调度器108可以基于获得的中间表示确定要用于运行机器学习模型的专用处理资源的设备的数量和类型。在一些实施例中,专用处理资源可以为GPU、FPGA或ASIC等。在一些实施例中,调度器108可以基于中间表示来确定哪些专用处理资源来处理机器学习模型中的哪些函数以及这些专用处理资源的类型。
结合图2描述一个示例,调度器108可以基于中间表示来确定第一专用处理资源处理节点A 202的函数,第二专用处理资源处理节点B 204和节点C206的函数,第三专用处理资源可以处理节点D 208的函数,第四专用处理资源可以处理节点E 210的函数。因此,调度器108确定了四个专用处理资源处理中间表示,并且还确定这四个专用处理资源的类型。上述示例仅是用于描述本公开,而非对本公开的具体限定。调度器108可以基于任意合适的方式确定专用处理资源的数量和类型。
上面结合图1和图2描述了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100。下面将结合图3描述用于编译机器学习模型的方法300。
在一些实施例中,机器学习模型可以是由任意源语言在任意框架下编写的。
在框302处,编译器106获得由源语言编写的机器学习模型102的中间表示。该中间表示与源语言和目标语言无关并且包括由结构化文本描述的计算图。该计算图中的节点表示与机器学习模型相关联的函数。在一些实施例中,计算图还包括函数之间的依赖关系。该依赖关系表明函数之间的参数传递顺序。在一些实施例中,机器学习模型的中间表示是通过编译器106对源语言编写的机器学习模型102进行编译获得的。在一些实施例中,机器学习模型的中间表示是通过编程人员依据编译器的编译规则编写,然后由编译器获得的。上述示例仅是用于描述本公开,而非对本公开的具体限定。可以采用任意合适的方式获得机器学习模型的中间表示。
在一些实施例中,中间表示可以包括以Javascript对象简谱(JSON)或者可扩展标记语言(XML)格式描述的待执行的机器学习模型的计算图。
在框304处,编译器106向调度器108发送中间表示以从调度器108获得与用于执行机器学习模型的多个专用处理资源有关的指示信息。在一些示例中,该指示信息包括用于执行机器学习模型的专用处理资源的数目和多个专用处理资源的类型。编译器106在获得由源语言编写的机器学习模型102的中间表示后,将中间表示发送给调度器108。
调度器108在获得中间表示后会基于中间表示来确定用于计算该机器处理模型的计算资源。在一个示例中,调度器108可以根据中间表示中的函数来确定处理函数的专用处理资源。上述示例仅是用于描述本公开,而非对本公开的具体限定,调度器108可以使用任意合适的方式来确定用于机器学习模型的专用处理资源。调度器108然后将用于机器学习模型的专用处理资源的指示信息发送给编译器106。
在框306处,编译器106基于中间表示和所获得的指示信息,生成与多个专用处理资源相对应多个运行时库以用于处理与机器学习模型有关的数据,运行时库包括由目标语言表示的多个函数。在一些实施例中,生成的运行时库与专用处理资源的类型相对应。
编译器106通过从调度器106获得的专用处理资源的数量及其类型,来将不同编写语言编写的机器学习模型编译为针对每个专用处理资源的类型的运行时库。这使得可以在任意合适类型的设备上运行机器学习模型,提高了编译器的通用性。
在一些实施例中,编译器106针对用于处理机器学习模型的每个专用处理资源生成一个运行时库。备选地或附加地,每个运行时库中包括中间表示的计算图中的每个函数,即包括计算图的中所有函数。
在一些实施例中,其中指示信息包括与多个专用处理资源的类型有关的信息。编译器106基于专用处理资源的类型和中间表示,确定与专用处理资源的类型相对应的运行时库。
通过基于专用处理资源的类型来确定运行时库,可以在编译阶段不用使用具体的设备来限制程序的执行。这使得仅在机器学习模型的执行阶段来选择该类型的设备,提高了机器学习模型的可用性。
上面图3描述了用于编译机器学习模型的方法300的流程图。下面结合图4描述可以执行机器学习模型的示例环境400。
在图1中通过编译器106获得了针对专用处理资源的运行时库,此外还需要确定在管理专用处理资源的主机设备上运行的主机程序。在一些实施例中,针对在每个专用处理资源上运行的运行时库,均存在一个与该运行库对应的在主机设备上运行的主机程序。
在一个示例中,该主机程序由编译器106在生成运行时库时一起生成,然后由编程序人员改写。在一个示例中,该主机程序可以由调度器108生成。在另一个示例中,该主机程序可以由程序开发人员编写。上述示例仅是用于描述本公开,而非对本公开的具体限定。可以基于任意合适的方式确定在管理专用处理资源的主机设备上运行的主机程序。
示例环境400示出了第一设备404和第二设备406。第一设备404和第二设备406均是用于管理专用处理资源的主机设备。上述示例仅是用于描述本公开,而非对本公开的具体限定。示例环境400可以包括任意合适数目的用于管理相应专用处理资源的主机设备。
第一设备404是用于管理专用处理资源408的主机设备。主机设备404可以为任意类型的计算设备,包括但不限于移动电话膝上型计算机、便携式计算设备、服务器、个人数字助理(PDA)等。
第一设备404接收数据402。在一个示例中,数据402可以由运行机器学习模型的其他设备确定。在另一个示列中,数据402可以是由用户输入的用于由机器学习模型处理的数据。在另一个示例中,数据402可以是从任意合适的设备获取的用于由机器学习模型处理的数据。上述示例仅是用于说明本公开,而非对本公开的具体限定,可以基于任意合适的方式从任意合适的设备接收数据402。
第一设备404接收到数据402后会将数据402发送给其控制的专用处理资源408。在一些实施例中,在第一设备404运行用于处理机器学习模型的一个主机程序时,第一设备404会为专用处理资源408分配存储空间。例如在第一设备404的存储器中分配用于专用处理资源408的存储空间。
在一些实施例中,第一设备404会等待接收数据402。例如,如果第一设备运行图2中的节点A 202的函数,则会等待接收用户发送的用于由机器学习模型处理的数据402。如果第一设备404运行图2中的节点B 204的函数,则需要等待由运行节点A 202的设备发送过来的数据。上述示例仅是用于说明本公开,而非对本公开的具体限定。
在一些实施例中,第一设备404接收到数据402后会将数据402存储在分配的存储资源中。备选地或附加地,在接收完数据402后,还会接收到指示数据接收完成的指示。
在一些实施例中,第一设备404在接收到数据402后将数据402发送到专用处理资源408。备选地或附加地,第一设备404接收到指示数据接收完成的指示后向专用处理资源408发送数据402。
在一些实施例中,第一设备404还可以向专用处理资源408发送与要由专用处理资源408运行的机器学习模型的函数有关的指示以使得专用处理资源408可以采用相关的函数来处理数据402。在一些示例中,使用第一设备404的专用处理资源408处理哪函数是由调度器108确定的。上述示例仅是用于说明本公开,而非对本公开的具体限定,可以基于需要设置第一设备404的专用处理资源408处理的函数。
第一设备404在专用处理资源408处理完数据402后取回经处理的数据,然后将经处理的数据发送给第二设备406。
在一些实施例中,专用处理资源408可以为GPU、FPGA或ASIC等。专用处理资源408上运行有由图1中的编译器106为该类型的专用处理资源生成的运行时库410。由第一设备404控制运行的机器学习模型的函数来自该运行时库。备选地或附加地,在确定专用处理资源408用于处理机器模型后,由编译器106生成的针对该专用处理资源408的运行时库便被传送给该专用处理资源408。
第二设备406也用于控制运行机器学习模型中的函数的专用处理资源408。在第二设备406内运行的函数需要使用第一设备404的专用处理资源408处理后的数据。
上面对合图4描述了用于执行机器学习模型的环境400,下面结合图5描述采用机器学习模型处理数据的方法500的流程图。
在采用多个设备运行机器学习模型时,每个设备运行分配给其的主机程序以控制相应的专用处理资源来执行不同的机器学习模型的函数。
在框502处,在第一设备404处接收用于由机器学习模型处理的数据402。在一些实施例中,第一设备404从用户接收用于处理的数据402。在一些实施例中,第一设备404从其他设备接收数据402,其他设备为运行机器学习模型的其他函数的设备并且第一设备404运行的函数输入依赖于其他设备的函数输出。上述示例仅是用于描述本公开,而非对本公开的具体限定。
在一些实施例中,在第一设备404运行用于处理机器学习模型的一个主机程序时,第一设备404会为专用处理资源408分配存储空间。例如在第一设备404的存储器中分配用于专用处理资源408的存储空间。第一设备404在接收到数据402时,会将接收到的数据402存储到存储资源中。
在框504处,将接收到的数据402发送到第一设备404的专用处理资源408,以使得专用处理资源408通过执行与机器学习模型有关的多个函数中的第一组函数来处理数据402。在专用处理资源408上执行的第一组函数是通过调度器108对中间表示进行分析而确定的。备选地或附加地,第一组函数是通过调度器108对中间表示中的函数进行分析来确定的。第一组函数被包括在第一设备404可访问的运行时库410中,运行时库410是由编译器106确定的。
在一些实施例中,第一设备404接收指示完成数据的接收的第一指示信息。在接收到第一指示信息后,将接收到的数据402发送到第一设备404的第一专用处理资源408。
在一些实施例中,不仅向专用处理资源408发送接收到的数据402,还向专用处理资源408发送与第一组函数有关的第二指示信息以使得专用处理资源408通过执行第一组函数来处理数据402。
在框506处,第一设备404将专用处理资源408处理后的数据发送给第二设备406进行处理。处理后的数据为由第二设备控制的专用处理资源运行的函数的参数。第二设备406用于控制另一专用处理资源来处理机器学习模型的部分函数。
在一些实施例中,第一设备404是从第三设备接收数据的。该数据是由第三设备的、用于执行多个函数中的第二组函数的第二专用处理资源确定的,第二组函数被包括在第三设备可访问的第二运行时库中,第二运行时库由调度器108确定。
采用上述方法处理机器学习模型,可以使得不同的专用处理资源来同时运行该机器学习模型。通过将模型的函数部署到不同的专用处理资源以及通过传递函数参数的方式来传输数据,解决了不同类型的设备的数据传递,使得程序开发人员不必关注模型的层和框架结构来实现了模型并行。
在一些实施例中,在将处理后数据发送给第二设备406时,先从专用处理资源408获取处理后的数据;然后将将处理后的数据存储在存储资源中。将处理后的数据发送给二设备406。如果已经完成处理后的数据的发送,向第二设备406发送指示完成的第二指示信息。
通过在发送数据完成之后再发送指示信息,可以保证数据传递结果的完整性和正确性,以保证后面的设备能处理完整的数据,提高了数据处理的准确性。
图6示出了可以用来实施本公开内容的实施例的示例设备600的示意性框图。例如,如图1所示的104、106和108和图4所示的404、406和408的任一项可以由设备600来实施。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300和500可由处理单元601执行。例如,在一些实施例中,方法300和500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法300和500的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于处理机器学习模型的方法,所述方法包括:
获得由源语言编写的机器学习模型的中间表示,所述中间表示与所述源语言和目标语言无关并且包括由结构化文本描述的计算图,所述计算图中的节点表示与所述机器学习模型相关联的函数;
向调度器发送所述中间表示以从调度器获得与用于执行所述机器学习模型的多个专用处理资源有关的指示信息;以及
基于所述中间表示和所获得的所述指示信息,生成与所述多个专用处理资源相对应多个运行时库以用于处理与所述机器学习模型有关的数据,所述运行时库包括由所述目标语言表示的所述多个函数。
2.根据权利要求1所述的方法,其中所述指示信息包括与所述多个专用处理资源的类型有关的信息,并且其中生成与所述多个专用处理资源相对应多个运行时库包括:
基于所述专用处理资源的类型和所述中间表示,确定与所述专用处理资源的所述类型相对应的所述运行时库。
3.根据权利要求1所述的方法,其中所述计算图还包括所述函数之间的依赖关系。
4.一种用于执行机器学习模型的方法,所述方法包括:
在第一设备处接收用于由所述机器学习模型处理的数据;
将接收到的所述数据发送到所述第一设备的第一专用处理资源,以使得所述第一专用处理资源通过执行与所述机器学习模型有关的多个函数中的第一组函数来处理所述数据,所述第一组函数被包括在所述第一设备可访问的第一运行时库中,所述第一运行时库根据权利1-3中任一项所述的方法生成;以及
将所述第一专用处理资源处理后的所述数据发送给第二设备进行处理。
5.根据权利要求4所述的方法,其中将接收到的所述数据发送到所述第一设备的第一专用处理资源包括:
确定是否接收到指示完成所述数据的接收的第一指示信息;以及
响应于接收到所述第一指示信息,将接收到的所述数据发送到所述第一设备的第一专用处理资源。
6.根据权利要求4所述的方法,其中将接收到的所述数据发送到所述第一设备的第一专用处理资源包括:
向所述第一专用处理资源发送接收到的所述数据;以及
向所述第一专用处理资源发送与所述第一组函数有关的第二指示信息以使得所述第一专用处理资源通过执行所述第一组函数来处理所述数据。
7.根据权利要求4所述方法,其中接收所述数据包括:
从第三设备接收所述数据,所述数据是由第三设备的、用于执行所述多个函数中的第二组函数的第二专用处理资源确定的,所述第二组函数被包括在所述第三设备可访问的第二运行时库中,所述第二运行时库根据权利要求1-3中任一项所述的方法生成。
8.根据权利要求4所述的方法,其中接收所述数据包括:
分配用于存储所述数据的存储资源;以及
将接收到的所述数据存储到所述存储资源中。
9.根据权利要求8所述的方法,其中将所述第一专用处理资源处理后的所述数据发送给第二设备进行处理包括:
从所述第一专用处理资源获取处理后的所述数据;
将处理后的所述数据存储在所述存储资源中;
向第二设备发送处理后的所述数据;以及
响应于已经完成处理后的所述数据的发送,向所述第二设备发送指示所述完成的第二指示信息。
10.一种用于处理机器学习模型的电子设备,所述电子设备包括:
处理器;以及
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,所述动作包括:
获得由源语言编写的机器学习模型的中间表示,所述中间表示与所述源语言和目标语言无关并且包括由结构化文本描述的计算图,所述计算图中的节点表示与所述机器学习模型相关联的函数;
向调度器发送所述中间表示以从调度器获得与用于执行所述机器学习模型的多个专用处理资源有关的指示信息;以及
基于所述中间表示和所获得的所述指示信息,生成与所述多个专用处理资源相对应多个运行时库以用于处理与所述机器学习模型有关的数据,所述运行时库包括由所述目标语言表示的所述多个函数。
11.根据权利要求10所述的电子设备,其中所述指示信息包括与所述多个专用处理资源的类型有关的信息,并且其中生成与所述多个专用处理资源相对应多个运行时库包括:
基于所述专用处理资源的类型和所述中间表示,确定与所述专用处理资源的所述类型相对应的所述运行时库。
12.根据权利要求10所述的电子设备,其中所述计算图还包括所述函数之间的依赖关系。
13.一种用于执行机器学习模型的电子设备,所述电子设备包括:
处理器;以及
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,所述动作包括:
在第一设备处接收用于由所述机器学习模型处理的数据;
将接收到的所述数据发送到所述第一设备的第一专用处理资源,以使得所述第一专用处理资源通过执行与所述机器学习模型有关的多个函数中的第一组函数来处理所述数据,所述第一组函数被包括在所述第一设备可访问的第一运行时库中,所述第一运行时库根据权利1-3中任一项所述的方法生成;以及
将所述第一专用处理资源处理后的所述数据发送给第二设备进行处理。
14.根据权利要求13所述的电子设备,其中将接收到的所述数据发送到所述第一设备的第一专用处理资源包括:
确定是否接收到指示完成所述数据的接收的第一指示信息;以及
响应于接收到所述第一指示信息,将接收到的所述数据发送到所述第一设备的第一专用处理资源。
15.根据权利要求13所述的电子设备,其中将接收到的所述数据发送到所述第一设备的第一专用处理资源包括:
向所述第一专用处理资源发送接收到的所述数据;以及
向所述第一专用处理资源发送与所述第一组函数有关的第二指示信息以使得所述第一专用处理资源通过执行所述第一组函数来处理所述数据。
16.根据权利要求13所述电子设备,其中接收所述数据包括:
从第三设备接收所述数据,所述数据是由第三设备的、用于执行所述多个函数中的第二组函数的第二专用处理资源确定的,所述第二组函数被包括在所述第三设备可访问的第二运行时库中,所述第二运行时库根据权利要求1-3中任一项所述的方法生成。
17.根据权利要求13所述的电子设备,其中接收所述数据包括:
分配用于存储所述数据的存储资源;以及
将接收到的所述数据存储到所述存储资源中。
18.根据权利要求17所述的电子设备,其中将所述第一专用处理资源处理后的所述数据发送给第二设备进行处理包括:
从所述第一专用处理资源获取处理后的所述数据;
将处理后的所述数据存储在所述存储资源中;
向第二设备发送处理后的所述数据;以及
响应于已经完成处理后的所述数据的发送,向所述第二设备发送指示所述完成的第二指示信息。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至3中任一项所述的方法的步骤。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求4至9中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910318463.5A CN111832736B (zh) | 2019-04-19 | 2019-04-19 | 用于处理机器学习模型的方法、设备和计算机可读存储介质 |
US16/542,757 US20200334544A1 (en) | 2019-04-19 | 2019-08-16 | Method, device and computer program product for processing machine learning model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910318463.5A CN111832736B (zh) | 2019-04-19 | 2019-04-19 | 用于处理机器学习模型的方法、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111832736A true CN111832736A (zh) | 2020-10-27 |
CN111832736B CN111832736B (zh) | 2024-04-12 |
Family
ID=72832572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910318463.5A Active CN111832736B (zh) | 2019-04-19 | 2019-04-19 | 用于处理机器学习模型的方法、设备和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200334544A1 (zh) |
CN (1) | CN111832736B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631605A (zh) * | 2020-12-31 | 2021-04-09 | 深圳前海微众银行股份有限公司 | 联邦学习模型的代码编译方法、装置、设备及存储介质 |
CN114546624A (zh) * | 2022-03-01 | 2022-05-27 | 清华大学 | 任务处理方法及装置、电子设备和存储介质 |
CN114638373A (zh) * | 2020-12-15 | 2022-06-17 | Aptiv技术有限公司 | 管理机器学习环境 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3903276A4 (en) * | 2018-12-24 | 2022-08-03 | INTEL Corporation | METHOD AND APPARATUS FOR PROCESSING MACHINE LEARNING MODELS IN A MULTI-PROCESS WEB BROWSER ENVIRONMENT |
US11175898B2 (en) * | 2019-05-31 | 2021-11-16 | Apple Inc. | Compiling code for a machine learning model for execution on a specialized processor |
US11074055B2 (en) * | 2019-06-14 | 2021-07-27 | International Business Machines Corporation | Identification of components used in software binaries through approximate concrete execution |
EP3882813A1 (en) | 2020-03-20 | 2021-09-22 | Aptiv Technologies Limited | Method for generating a dynamic occupancy grid |
EP3905106A1 (en) | 2020-04-27 | 2021-11-03 | Aptiv Technologies Limited | Method for determining a drivable area |
EP3905105A1 (en) | 2020-04-27 | 2021-11-03 | Aptiv Technologies Limited | Method for determining a collision free space |
CN114513770B (zh) * | 2020-10-29 | 2024-01-30 | 伊姆西Ip控股有限责任公司 | 部署应用的方法、系统和介质 |
CN114579185A (zh) | 2020-11-30 | 2022-06-03 | 伊姆西Ip控股有限责任公司 | 用于迁移应用的方法、电子设备和计算机程序产品 |
CN114217947A (zh) * | 2021-11-04 | 2022-03-22 | 北京百度网讯科技有限公司 | 任务执行方法、装置、电子设备及可读存储介质 |
US11900174B2 (en) | 2022-06-22 | 2024-02-13 | Dell Products L.P. | Processing unit virtualization with scalable over-provisioning in an information processing system |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015543B1 (en) * | 2007-01-10 | 2011-09-06 | The Mathworks, Inc. | Hardware specific code generation |
US20120089969A1 (en) * | 2010-10-08 | 2012-04-12 | Microsoft Corporation | Declarative programming model with a native programming language |
CN102566980A (zh) * | 2010-12-23 | 2012-07-11 | 微软公司 | 可扩展的数据并行语义 |
US8370280B1 (en) * | 2011-07-14 | 2013-02-05 | Google Inc. | Combining predictive models in predictive analytical modeling |
CN103443768A (zh) * | 2008-07-16 | 2013-12-11 | 苹果公司 | 用于调用转换和追踪的规范文件 |
US20150261881A1 (en) * | 2014-03-14 | 2015-09-17 | Concurrent, Inc. | Logical data flow mapping rules for (sub) graph isomorphism in a cluster computing environment |
US20150347107A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Unified Intermediate Representation |
CN106663094A (zh) * | 2014-07-11 | 2017-05-10 | 洛林·G·克雷默三世 | 用于线性广义ll识别和上下文感知解析的方法和系统 |
CN106886411A (zh) * | 2017-02-17 | 2017-06-23 | 南京国电南自电网自动化有限公司 | 一种基于qt的继电保护装置逻辑图形化配置方法 |
EP3376441A1 (en) * | 2017-03-15 | 2018-09-19 | Siemens Aktiengesellschaft | A method for execution of a machine learning model on memory restricted industrial device |
US20180349109A1 (en) * | 2017-06-03 | 2018-12-06 | Apple Inc. | Integration of learning models into a software development system |
CN109213619A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104321742B (zh) * | 2012-03-23 | 2017-08-29 | 波利科雷软件股份有限公司 | 用于提供多核心编程平台的装置和方法 |
US20140137090A1 (en) * | 2012-11-12 | 2014-05-15 | Sgn Games, Inc. | System and method of cross-platform software development and compilation |
US10157045B2 (en) * | 2016-11-17 | 2018-12-18 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
KR20190093568A (ko) * | 2016-12-31 | 2019-08-09 | 인텔 코포레이션 | 이종 컴퓨팅을 위한 시스템들, 방법들, 및 장치들 |
CN108304177A (zh) * | 2017-01-13 | 2018-07-20 | 辉达公司 | 计算图的执行 |
US10873541B2 (en) * | 2017-04-17 | 2020-12-22 | Microsoft Technology Licensing, Llc | Systems and methods for proactively and reactively allocating resources in cloud-based networks |
US11222256B2 (en) * | 2017-10-17 | 2022-01-11 | Xilinx, Inc. | Neural network processing system having multiple processors and a neural network accelerator |
US11526728B2 (en) * | 2018-04-09 | 2022-12-13 | Microsoft Technology Licensing, Llc | Deep learning model scheduling |
US11645358B2 (en) * | 2019-01-29 | 2023-05-09 | Hewlett Packard Enterprise Development Lp | Generation of executable files corresponding to neural network models |
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
-
2019
- 2019-04-19 CN CN201910318463.5A patent/CN111832736B/zh active Active
- 2019-08-16 US US16/542,757 patent/US20200334544A1/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015543B1 (en) * | 2007-01-10 | 2011-09-06 | The Mathworks, Inc. | Hardware specific code generation |
CN103443768A (zh) * | 2008-07-16 | 2013-12-11 | 苹果公司 | 用于调用转换和追踪的规范文件 |
US20120089969A1 (en) * | 2010-10-08 | 2012-04-12 | Microsoft Corporation | Declarative programming model with a native programming language |
CN102566980A (zh) * | 2010-12-23 | 2012-07-11 | 微软公司 | 可扩展的数据并行语义 |
US8370280B1 (en) * | 2011-07-14 | 2013-02-05 | Google Inc. | Combining predictive models in predictive analytical modeling |
US20150261881A1 (en) * | 2014-03-14 | 2015-09-17 | Concurrent, Inc. | Logical data flow mapping rules for (sub) graph isomorphism in a cluster computing environment |
US20150347107A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Unified Intermediate Representation |
CN106415496A (zh) * | 2014-05-30 | 2017-02-15 | 苹果公司 | 统一中间表示 |
CN106663094A (zh) * | 2014-07-11 | 2017-05-10 | 洛林·G·克雷默三世 | 用于线性广义ll识别和上下文感知解析的方法和系统 |
CN106886411A (zh) * | 2017-02-17 | 2017-06-23 | 南京国电南自电网自动化有限公司 | 一种基于qt的继电保护装置逻辑图形化配置方法 |
EP3376441A1 (en) * | 2017-03-15 | 2018-09-19 | Siemens Aktiengesellschaft | A method for execution of a machine learning model on memory restricted industrial device |
US20180349109A1 (en) * | 2017-06-03 | 2018-12-06 | Apple Inc. | Integration of learning models into a software development system |
CN109213619A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114638373A (zh) * | 2020-12-15 | 2022-06-17 | Aptiv技术有限公司 | 管理机器学习环境 |
CN112631605A (zh) * | 2020-12-31 | 2021-04-09 | 深圳前海微众银行股份有限公司 | 联邦学习模型的代码编译方法、装置、设备及存储介质 |
CN112631605B (zh) * | 2020-12-31 | 2024-04-26 | 深圳前海微众银行股份有限公司 | 联邦学习模型的代码编译方法、装置、设备及存储介质 |
CN114546624A (zh) * | 2022-03-01 | 2022-05-27 | 清华大学 | 任务处理方法及装置、电子设备和存储介质 |
CN114546624B (zh) * | 2022-03-01 | 2024-04-09 | 清华大学 | 任务处理方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111832736B (zh) | 2024-04-12 |
US20200334544A1 (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111832736B (zh) | 用于处理机器学习模型的方法、设备和计算机可读存储介质 | |
US11222279B2 (en) | Modular quantum circuit transformation | |
US8938725B2 (en) | Technique for compiling and running high-level programs on heterogeneous computers | |
Ozik et al. | From desktop to large-scale model exploration with Swift/T | |
US20220092439A1 (en) | Decoupled architecture for artificial intelligence model management | |
US8701096B2 (en) | In-order execution in an asynchronous programming environment | |
CN111831287A (zh) | 用于确定执行代码段所需的资源的方法、设备和程序产品 | |
CN114063997A (zh) | 生成程序代码的方法、设备和计算机程序产品 | |
CN110647332A (zh) | 基于容器云的软件部署方法和装置 | |
Wild et al. | TOSCA4QC: two modeling styles for TOSCA to automate the deployment and orchestration of quantum applications | |
US9594559B2 (en) | Binary file for computer program having multiple executable code variants for a function that are executable on a same processor architecture | |
US9477451B1 (en) | Generating dynamic measurement metadata for efficient compilation and optimization on a target device | |
US11416289B2 (en) | Task scheduling method, electronic device, and computer storage medium | |
US11461291B2 (en) | Method, electronic device and computer program product for processing machine learning model | |
CN107526639B (zh) | 资源编排的方法、介质、装置和计算设备 | |
US9141356B2 (en) | Process for generating dynamic type | |
CN114330735A (zh) | 处理机器学习模型的方法、电子设备和计算机程序产品 | |
US20170168787A1 (en) | Optimized compiling of a template function | |
CN114565102A (zh) | 部署机器学习模型的方法、电子设备和计算机程序产品 | |
US11068246B2 (en) | Control flow graph analysis | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN117242457A (zh) | 定位神经网络性能热点 | |
US20170329587A1 (en) | Program conversion method using comment-based pseudo-codes and computerreadable recording medium, onto which program is recorded, for implementing | |
US20210173639A1 (en) | System and method for interprocedural analysis | |
CN111913712A (zh) | 用于在Web端部署神经网络模型的方法和装置 |
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 |