CN113051080A - 一种计算图执行方法、装置及异构平台 - Google Patents
一种计算图执行方法、装置及异构平台 Download PDFInfo
- Publication number
- CN113051080A CN113051080A CN202110437738.4A CN202110437738A CN113051080A CN 113051080 A CN113051080 A CN 113051080A CN 202110437738 A CN202110437738 A CN 202110437738A CN 113051080 A CN113051080 A CN 113051080A
- Authority
- CN
- China
- Prior art keywords
- computing
- node
- nodes
- heterogeneous
- graph
- 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.)
- Pending
Links
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种计算图执行方法、装置及异构平台。其中,所述方法包括:获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中执行该计算节点的运算时性能最优的异构计算单元;针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。可以提高计算图的执行效率。
Description
技术领域
本发明涉及深度学习技术领域,特别是涉及一种计算图执行方法、装置及异构平台。
背景技术
深度学习过程所使用的神经网络可以视为一种有向无环的计算图,图中包括的各个计算节点用于表示该神经网络所实现的各种运算。相关技术中,为充分利用分布式计算的效率优势,可以将计算图划分为多个子图,并将每个子图分配至一个计算单元中进行计算,以通过分布式计算的方式得到计算图的运算结果。
相关技术中在划分子图时往往是按照各计算节点所实现的运算之间的逻辑关联,将逻辑关联紧密的计算节点划分至同一子图,示例性的,计算节点1-3共同实现逻辑A,计算节点4-6共同实现逻辑B,则可以将计算节点1-3划分至同一子图,而将计算节点4-6划分至同一子图。
异构平台中不同计算单元的架构可能不同,因此不同计算单元执行不同运算时的效率也不相同,因此计算单元在执行所分配的子图中各计算节点时,可能有一部分计算节点执行效率较高,另一部分计算节点执行效率较低,导致整体的执行效率较低。
发明内容
本发明实施例的目的在于提供一种计算图执行方法、装置及异构平台,以实现提高异构平台执行计算图时的执行效率。具体技术方案如下:
在本发明实施例的第一方面,提供了一种计算图执行方法,应用于异构平台,所述异构平台包括多个异构计算单元,所述方法包括:
获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中执行该计算节点的运算时性能最优的异构计算单元;
针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。
在一种可能的实施例中,所述目标计算图中的计算节点被预先按照以下方式划分为多个子图:
针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元;
根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,所述位置属性用于表示计算节点在将被划分至的子图中的位置;
根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图。
在一种可能的实施例中,所述针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元,包括:
确定总成本最低的分配方式,所述总成本为在按照分配方式所表示的计算节点与异构计算单元对应关系,将所述目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成所述目标计算图的运算的预估耗时和/或预估占用的平台资源;
针对所述目标计算图中的每个计算节点,将所述分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
在一种可能的实施例中,所述根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,包括:
针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,其中,所述上级节点为输出为该计算节点输入的计算节点,所述下级节点为输入为该计算节点输出的节点。
在一种可能的实施例中,在所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性之前,所述方法还包括:
针对该计算节点的每个下级节点,确定该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元是否相同;
如果该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元相同,确定所述目标计算图是否存在回溯路径,所述回溯路径为以该下级节点为起点以该计算节点为终点的路径,并且所述回溯路径中每个节点为下一节点的下级节点,并且所述回溯路径中不包括该下级节点与该计算节点之间的边;
如果所述目标计算图中存在回溯路径,且所述回溯路径中存在与该计算节点和该下级节点对应于不同异构计算单元的计算节点,在该计算节点的拓扑关系中删除该计算节点与该下级节点之间的连接关系;
所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
根据该计算节点的拓扑关系中该计算节点的所有上级节点对应的优选异构计算单元是否相同,以及该计算节点的拓扑关系中该计算节点的所有下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性。
在一种可能的实施例中,所述针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图起点;
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元各不相同,则确定该计算节点位于单节点子图;
如果该计算节点的各上级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图内部。
在一种可能的实施例中,所述根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图,包括:
将每个位于单节点子图的计算节点分别划分至一个子图;
针对每个位于子图起点的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分至同一子图;并且针对每个被划分至该同一子图的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分该同一子图。
在一种可能的实施例中,在所述根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图之后,所述方法还包括:
针对每两个存在相同计算节点的子图,合并该两个子图。
在本发明实施例的第二方面,提供了一种计算图执行装置,应用于异构平台,所述异构平台包括多个异构计算单元,所述装置包括:
图获取模块,用于获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中进行该计算节点的运算时性能最优的异构计算单元;
分布式计算模块,用于针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。
在一种可能的实施例中,所述装置还包括子图划分模块,用于按照以下方式预先将目标计算图中的计算节点划分为多个子图:
针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元;
根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,所述位置属性用于表示计算节点在将被划分至的子图中的位置;
根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图。
在一种可能的实施例中,所述子图划分模块针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元,包括:
确定总成本最低的分配方式,所述总成本为在按照分配方式所表示的计算节点与异构计算单元对应关系,将所述目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成所述目标计算图的运算的预估耗时和/或预估占用的平台资源;
针对所述目标计算图中的每个计算节点,将所述分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
在一种可能的实施例中,所述子图划分模块针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元,包括:
确定总成本最低的分配方式,所述总成本为在按照分配方式所表示的计算节点与异构计算单元对应关系,将所述目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成所述目标计算图的运算的预估耗时和/或预估占用的平台资源;
针对所述目标计算图中的每个计算节点,将所述分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
在一种可能的实施例中,所述子图划分模块根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,包括:
针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,其中,所述上级节点为输出为该计算节点输入的计算节点,所述下级节点为输入为该计算节点输出的节点。
在一种可能的实施例中,在所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性之前,所述子图划分模块还用于:
针对该计算节点的每个下级节点,确定该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元是否相同;
如果该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元相同,确定所述目标计算图是否存在回溯路径,所述回溯路径为以该下级节点为起点以该计算节点为终点的路径,并且所述回溯路径中每个节点为下一节点的下级节点,并且所述回溯路径中不包括该下级节点与该计算节点之间的边;
如果所述目标计算图中存在回溯路径,且所述回溯路径中存在与该计算节点和该下级节点对应于不同异构计算单元的计算节点,在该计算节点的拓扑关系中删除该计算节点与该下级节点之间的连接关系;
所述子图划分模块根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
根据该计算节点的拓扑关系中该计算节点的所有上级节点对应的优选异构计算单元是否相同,以及该计算节点的拓扑关系中该计算节点的所有下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性。
在一种可能的实施例中,所述子图划分模块针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图起点;
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元各不相同,则确定该计算节点位于单节点子图;
如果该计算节点的各上级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图内部。
在一种可能的实施例中,所述子图划分模块根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图,包括:
将每个位于单节点子图的计算节点分别划分至一个子图;
针对每个位于子图起点的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分至同一子图;并且针对每个被划分至该同一子图的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分该同一子图。
在一种可能的实施例中,在所述根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图之后,所述子图划分模块还用于:
针对每两个存在相同计算节点的子图,合并该两个子图。
在本发明实施例的第三方面,提供了一种异构平台,所述异构平台包括多个异构计算单元、处理器、存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的计算图执行方法、装置及异构平台,由于目标计算图中的子图是按照各计算节点对应的优选异构计算单元进行划分的,因此划分得到的每个子图中包括的所有计算节点对应的优选异构节点相同,当由所对应的优选异构节点执行该子图时可以使得该优选异构节点在执行该子图中的每个计算节点时的效率都较高,可以充分发挥每个异构计算单元的优势,提高目标计算图的执行效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的计算图执行方法的一种流程示意图;
图2为本发明实施例提供的子图划分方法的一种流程示意图;
图3为本发明实施例提供的计算图的一种示意图;
图4为本发明实施例提供的的计算图的另一种示意图;
图5为本发明实施例提供的计算图执行装置的一种结构示意图;
图6为本发明实施例提供的异构平台的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更清楚的对本发明实施例提供的计算图执行方法进行说明,下面将对本发明实施例提供的计算图执行方法的一种可能的应用场景进行示例性说明,可以理解的是以下示例仅是本发明实施例提供的计算图执行方法的一种可能的示例,在其他可能的实施例中,本发明实施例提供的计算图执行方法也可以应用于其他可能的应用场景中,本示例对此不做任何限制。
假设一个用于进行图像识别的神经网络可以表示为一个包括10个计算节点的计算图,并且其中十个计算节点分别记为计算节点1-10,假设其中计算节点1表示运算1,计算节点2表示运算2,依次类推。
并且假设运算1-3用于实现逻辑A,运算4-7用于实现逻辑B,运算8-10用于实现逻辑C,则可以将计算节点1-3划分至一个子图,记为子图1,将计算节点4-7划分至一个子图,记为子图2,将计算节点8-10划分至一个子图,记为子图3。分别将子图1-3分配至3个不同的计算单元进行运算,以得到识别结果。其中计算单元可以是指任意具备计算能力的电子元件,如CPU、GPU等。
如果3个计算单元的架构完全相同,则理论上无论如何划分子图对计算图的执行效率没有影响。但是如果3个计算单元不同,则理论上对于每个计算节点,不同计算单元执行时的效率存在不同,因此理论上划分子图的方式将对计算图的执行效率产生影响。
示例性的,假设三个计算单元分别记为计算单元1-3,假设计算单元1在执行运算1-2时执行效率较高,而在执行运算3-10时执行效率较低,计算单元2在执行运算3-8时执行效率较高,而在执行运算1-2、9-10时执行效率较低,计算单元3在执行运算9-10时执行效率较高,而在执行运算1-8时执行效率较低。
则如果按照前述子图划分方式划分子图,由于计算单元1在执行运算1-2时执行效率较高、计算单元2在执行运算3-8时执行效率较高、计算单元3在执行运算9-10时执行效率较高,因此理论上最优的分配方式为将子图1分配至计算单元1执行、子图2分配至计算单元2执行、子图3分配至计算单元3执行。此时由于计算单元1在执行运算3时效率较低、计算单元3在执行运算8时效率较低,导致计算图的整体计算效率较低。
因此,如何划分子图以提高计算图的执行效率成为亟待解决的技术问题。
基于此,本发明实施例提供了一种计算图执行方法,该方法应用于异构平台,异构平台中包括多个异构计算单元,其中异构计算单元是指架构不完全相同的计算单元,即多个异构计算单元中至少两个计算单元的架构不同。异构平台可以是由一个或多个实体设备组成的。
可以参见图1,图1所示为本发明实施例提供的计算图执行方法的一种流程示意图,可以包括:
S101,获取目标计算图,其中,目标计算图中的计算节点被按照各计算节点对应的优选异构计算节点划分为多个子图。
S102,针对目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到目标计算图的运算结果。
选用该实施例,由于目标计算图中的子图是按照各计算节点对应的优选异构计算单元进行划分的,因此划分得到的每个子图中包括的所有计算节点对应的优选异构节点相同,当由所对应的优选异构节点执行该子图时可以使得该优选异构节点在执行该子图中的每个计算节点时的效率都较高,可以充分发挥每个异构计算单元的优势,提高目标计算图的执行效率。
其中,在S101中,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为多个异构计算单元中执行该计算节点的运算时性能最优的异构计算单元。
性能最优可以是指全局性能最优,也可以是指局部性能最优。其中,全局性能最优是指在考虑计算图整体执行效率的情况下性能最优,局部性能最优是指在不考虑计算图整体执行效率的情况下性能最优,关于如何确定计算节点对应的优选异构计算单元将在下文进行说明,在此不再赘述。
目标计算图根据应用场景的不同可以是用于表示不同神经网络的计算图,示例性的,目标计算图可以表示用于进行图像识别的神经网络,也可以表示用于进行图像识别的神经网络,还可以表示用于目标检测的神经网络,在其他可能的实施例中还可以表示用于除图像识别、图像识别、目标检测以外其他功能的神经网络,本实施例对此不做任何限制。
目标计算图中的多个子图可以是由异构平台以外的其他电子设备划分得到的,也可以是由异构平台划分得到的。并且目标计算图可以是由异构平台以外的其他电子设备生成的,也可以是由异构平台生成的。
在S102中,由于子图中所包括的所有计算节点对应的优选异构计算单元相同,因此该子图所包括的计算节点对应的优选异构计算单元可以视为该子图所包括的任一计算节点对应的优选异构计算单元。
异构计算单元在执行所分配的子图时的输入为该子图的输入,根据该子图在目标计算图中的位置,该子图的输入可以是另一个子图的输出和/或目标计算图的输入,其中目标计算图的输入根据应用场景的不同可以不同,示例性的,如果目标计算图表示用于图像识别的神经网络,则目标计算图的输入可以为待识别图像,又如果目标计算图表示用于提取文本中关键词的神经网络,则目标计算图的输入可以为待提取关键词的文本,又如果目标计算图表示用于语音识别的神经网络,则目标计算图的输入可以为待识别语音片段。
仍以前述示例的应用场景为例,可以理解的是理论上,计算节点1-2对应的优选异构计算单元为计算单元1,计算节点3-8对应的优选异构计算单元为计算单元2,计算节点9-10对应的优选异构计算单元为计算单元3。因此按照本发明实施例提供的计算图执行方法,计算节点1-2将被划分至同一个子图,记为子图4;计算节点3-9将被划分至同一个子图,记为子图5;计算节点9-10将被划分至同一个子图,记为子图6。
由于子图4中包括的计算节点对应的优选异构计算单元为计算单元1,因此将子图4分配至计算单元1进行运算,由于子图5中包括的计算节点对应的优选异构计算单元为计算单元2,因此将子图5分配至计算单元2进行运算,并且由于子图6中包括的计算节点对应的优选异构计算单元为计算单元3,因此将子图6分配至计算单元3进行运算。
可见,按照本发明实施例提供的计算图执行方法,每个计算单元被分配至的子图中包括的计算节点为该计算单元执行效率较高的计算节点,因此可以有效提高目标计算图的整体执行效率。
可以理解的是,本发明实施例提供的计算图执行方法中,目标计算图可以是相关人员根据实际需求和/或实际经验人工划分的,但是人工划分时需要相关人员预先知悉各异构计算单元在执行各计算节点的运算时的性能,因此人工成本较高。
基于此,本发明实施例提供了一种子图划分方法,可以参见图2,图2所示为本发明实施例提供的子图划分方法的一种流程示意图,可以包括:
S201,针对目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元。
S202,根据目标计算图中各节点对应的优选异构计算单元以及计算节点之间的连接关系,确定目标计算节点中每个计算节点的位置属性。
S203,根据目标计算图中各计算节点的位置信息所表示的位置,将目标计算图划分为多个子图。
选用该实施例,可以自动划分子图,使得在相关人员不清楚异构平台以及目标计算图的情况下实现子图划分,有效降低计算图执行的人工成本。
其中,在S201中,可以是确定总成本最低的分配方式,并针对目标计算图中的每个计算节点,将所确定的分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
总成本为在按照分配方式所表示的计算节点与异构计算节点单元对应关系,将目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下完成目标计算图的运算的预估耗时和/或预估占用的平台资源,并且总成本与预估耗时正相关,并且总成本与预估占用的平台资源正相关,即对于一种分配方式,如果在按照该分配方式所表示的计算节点与异构节点单元对应关系,将目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成目标计算图的运算的预估耗时越长则总成本越高,预估占用的平台资源越多则总成本越高。其中,平台资源包括但不限于内存资源、带宽资源。
在一种可能的实施例中,可以是针对每一种可能的分配方式,预估该分配方式的总成本,从而确定出总成本最低的分配方式。
在S202中,位置属性用于表示计算节点在将被划分至的子图中的位置,示例性的,在一种可能的实施例中,计算节点在子图中的位置可以包括:子图起点、子图内部、单节点子图,其中,子图起点表示该计算节点为子图的起点,子图内部表示该计算节点为子图中除起点以外的其他节点,单节点子图表示该计算节点单独被划分至一个子图。
在另一种可能的实施例中,计算节点在子图中的位置也可以包括:子图起点、隐藏点、外部连接点、单节点子图。其中,隐藏点表示该计算节点位于子图内部且不与属于其他子图的计算节点连接,外部连接点表示该计算节点位于子图内部且与属于其他子图的计算节点连接。在其他可能的实施例中,计算节点在子图中的位置可以包括其他不同类型的位置,以上示例对此不做任何限制。
可以是针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性。其中,上级节点为输出为该计算节点输入的计算节点,下级节点为输入为该计算节点输出的节点。
示例性的,可以是如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图起点;
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元各不相同,则确定该计算节点位于单节点子图;
如果该计算节点的各上级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图内部。
在S203中,可以是将每个位于单节点子图的计算节点分别划分至一个子图。并针对每个位于子图起点的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分至同一子图,并且针对每个被划分至该同一子图的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分该同一子图。
由于单节点子图单独被划分至一个子图,与其他计算节点无关,因此在此不再赘述。下面将对位置为子图起点和子图内部的计算节点的划分进行说明,为方便描述,可以参见图3,其中节点a、节点c以及节点d的位置为子图起点,节点b、节点e的位置为子图内部。
因此对于计算节点a,其下游节点包括计算节点b、计算节点c,由于计算节点b位于子图内部,而计算节点c位于子图起点,因此将计算节点b与计算节点a划分至同一子图。对于被划分至该子图的计算节点,其下游节点包括计算节点d,于计算节点b位于子图起点,因此不将计算节点d划分至计算节点a、b所处的子图中。同理,可以将计算节点d、e划分至同一子图中,并且将计算节点c、e划分至同一子图中。
在一些应用场景中,出于实际需求可能需要尽可能减少子图的数量,基于此,在一种可能的实施例中,在根据目标计算图中各计算节点的位置信息所表示的位置,将目标计算图划分为多个子图之后,还可以针对每两个存在相同计算节点的子图,合并该两个子图。
仍以图3所示的示例为例,假设将计算节点d、e划分至同一子图得到的子图记为子图A,将计算节点c、e划分至同一子图得到的子图记为子图B,则子图A和子图B中均包含计算节点e,因此可以合并子图A和子图B。
可以理解的是,虽然计算图有中不存在环,但是在将计算图划分为多个子图后,各子图之间可能形成环,因而导致在执行计算图时发生死循环。基于此,在一种可能的实施例中,在所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性之前,所述方法还包括:
针对该计算节点的每个下级节点,确定该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元是否相同;
如果该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元相同,确定所述目标计算图是否存在回溯路径,所述回溯路径为以该下级节点为起点以该计算节点为终点的路径,并且所述回溯路径中每个节点为下一节点的下级节点,并且所述回溯路径中不包括该下级节点与该计算节点之间的边;
如果所述目标计算图中存在回溯路径,且所述回溯路径中存在与该计算节点和该下级节点对应于不同异构计算单元的计算节点,在该计算节点的拓扑关系中删除该计算节点与该下级节点之间的连接关系;
所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
根据该计算节点的拓扑关系中该计算节点的所有上级节点对应的优选异构计算单元是否相同,以及该计算节点的拓扑关系中该计算节点的所有下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性。
选用该实施例,可以有效避免各子图之间形成环路。
示例性的,可以参见图4,以计算节点a为例,其下游节点包括计算节点b、c、h、e,其中,计算节点h对应的优选异构计算单元与计算节点a不同,计算节点b、c、e对应的优选异构计算单元与计算节点a相同,并且计算节点c存在一条回溯路径c→d→h→a,而计算节点b、e并不存在回溯路径。
由于回溯路径c→d→h→a中计算节点h对应的优选异构计算单元与计算节点a、c、d对应的优选异构计算单元不同,因此在计算节点a的拓扑关系中删除计算节点a和计算节点c之间的连接关系,即删除图4中打叉的边。
参见图5,图5所示为本发明实施例提供的计算图执行装置的一种结构示意图,可以包括:
图获取模块501,用于获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中进行该计算节点的运算时性能最优的异构计算单元;
分布式计算模块502,用于针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。
在一种可能的实施例中,所述装置还包括子图划分模块,用于按照以下方式预先将目标计算图中的计算节点划分为多个子图:
针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元;
根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,所述位置属性用于表示计算节点在将被划分至的子图中的位置;
根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图。
在一种可能的实施例中,所述子图划分模块针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元,包括:
确定总成本最低的分配方式,所述总成本为在按照分配方式所表示的计算节点与异构计算单元对应关系,将所述目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成所述目标计算图的运算的预估耗时和/或预估占用的平台资源;
针对所述目标计算图中的每个计算节点,将所述分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
在一种可能的实施例中,所述子图划分模块针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元,包括:
确定总成本最低的分配方式,所述总成本为在按照分配方式所表示的计算节点与异构计算单元对应关系,将所述目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成所述目标计算图的运算的预估耗时和/或预估占用的平台资源;
针对所述目标计算图中的每个计算节点,将所述分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
在一种可能的实施例中,所述子图划分模块根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,包括:
针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,其中,所述上级节点为输出为该计算节点输入的计算节点,所述下级节点为输入为该计算节点输出的节点。
在一种可能的实施例中,在所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性之前,所述子图划分模块还用于:
针对该计算节点的每个下级节点,确定该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元是否相同;
如果该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元相同,确定所述目标计算图是否存在回溯路径,所述回溯路径为以该下级节点为起点以该计算节点为终点的路径,并且所述回溯路径中每个节点为下一节点的下级节点,并且所述回溯路径中不包括该下级节点与该计算节点之间的边;
如果所述目标计算图中存在回溯路径,且所述回溯路径中存在与该计算节点和该下级节点对应于不同异构计算单元的计算节点,在该计算节点的拓扑关系中删除该计算节点与该下级节点之间的连接关系;
所述子图划分模块根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
根据该计算节点的拓扑关系中该计算节点的所有上级节点对应的优选异构计算单元是否相同,以及该计算节点的拓扑关系中该计算节点的所有下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性。
在一种可能的实施例中,所述子图划分模块针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图起点;
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元各不相同,则确定该计算节点位于单节点子图;
如果该计算节点的各上级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图内部。
在一种可能的实施例中,所述子图划分模块根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图,包括:
将每个位于单节点子图的计算节点分别划分至一个子图;
针对每个位于子图起点的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分至同一子图;并且针对每个被划分至该同一子图的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分该同一子图。
在一种可能的实施例中,在所述根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图之后,所述子图划分模块还用于:
针对每两个存在相同计算节点的子图,合并该两个子图。
本发明实施例还提供了一种异构平台,如图6所示,包括:
存储器601,用于存放计算机程序;
处理器602,用于执行存储器601上所存放的程序时,实现如下步骤:
获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中执行该计算节点的运算时性能最优的异构计算单元;
针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。
上述异构平台提到存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一计算图执行方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一计算图执行方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、异构平台、计算机程序产品、计算机可读存储介质而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (11)
1.一种计算图执行方法,其特征在于,应用于异构平台,所述异构平台包括多个异构计算单元,所述方法包括:
获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中执行该计算节点的运算时性能最优的异构计算单元;
针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。
2.根据权利要求1所述的方法,其特征在于,所述目标计算图中的计算节点被预先按照以下方式划分为多个子图:
针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元;
根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,所述位置属性用于表示计算节点在将被划分至的子图中的位置;
根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图。
3.根据权利要求2所述的方法,其特征在于,所述针对所述目标计算图中的每个计算节点,确定该计算节点对应的优选异构计算单元,包括:
确定总成本最低的分配方式,所述总成本为在按照分配方式所表示的计算节点与异构计算单元对应关系,将所述目标计算图中的每个计算节点分配至该计算节点对应的异构计算单元进行运算的情况下,完成所述目标计算图的运算的预估耗时和/或预估占用的平台资源;
针对所述目标计算图中的每个计算节点,将所述分配方式中该计算节点对应的异构计算单元确定为该计算节点对应的优选异构计算单元。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标计算图中各节点对应的优选异构计算单元以及各计算节点之间的连接关系,确定所述目标计算节点中每个计算节点的位置属性,包括:
针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,其中,所述上级节点为输出为该计算节点输入的计算节点,所述下级节点为输入为该计算节点输出的节点。
5.根据权利要求4所述的方法,其特征在于,在所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性之前,所述方法还包括:
针对该计算节点的每个下级节点,确定该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元是否相同;
如果该下级节点对应的优选异构计算单元与该计算节点对应的优选异构计算单元相同,确定所述目标计算图是否存在回溯路径,所述回溯路径为以该下级节点为起点以该计算节点为终点的路径,并且所述回溯路径中每个节点为下一节点的下级节点,并且所述回溯路径中不包括该下级节点与该计算节点之间的边;
如果所述目标计算图中存在回溯路径,且所述回溯路径中存在与该计算节点和该下级节点对应于不同异构计算单元的计算节点,在该计算节点的拓扑关系中删除该计算节点与该下级节点之间的连接关系;
所述根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
根据该计算节点的拓扑关系中该计算节点的所有上级节点对应的优选异构计算单元是否相同,以及该计算节点的拓扑关系中该计算节点的所有下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性。
6.根据权利要求4所述的方法,其特征在于,所述针对所述目标计算图中的每个计算节点,根据该计算节点的各上级节点对应的优选异构计算单元是否相同以及该计算节点的各下级节点对应的优选异构计算单元是否相同,确定该计算节点的位置属性,包括:
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图起点;
如果该计算节点的各上级节点对应的优选异构计算单元各不相同,且该计算节点的各下级节点对应的优选异构计算单元各不相同,则确定该计算节点位于单节点子图;
如果该计算节点的各上级节点对应的优选异构计算单元中存在相同的异构计算单元,则确定该计算节点位于子图内部。
7.根据权利要求6所述的方法,其特征在于,所述根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图,包括:
将每个位于单节点子图的计算节点分别划分至一个子图;
针对每个位于子图起点的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分至同一子图;并且针对每个被划分至该同一子图的计算节点,将该计算节点的所有位于子图内部且与该计算节点对应相同的优选异构计算单元的下游节点划分该同一子图。
8.根据权利要求2所述的方法,其特征在于,在所述根据所述目标计算图中各计算节点的位置信息所表示的位置,将所述目标计算图划分为多个子图之后,所述方法还包括:
针对每两个存在相同计算节点的子图,合并该两个子图。
9.一种计算图执行装置,其特征在于,应用于异构平台,所述异构平台包括多个异构计算单元,所述装置包括:
图获取模块,用于获取目标计算图,其中,所述目标计算图中的计算节点被按照各计算节点对应的优选异构计算单元划分为多个子图,每个子图中包括的计算节点对应的优选异构计算单元相同,计算节点对应的优选异构计算单元为所述多个异构计算单元中进行该计算节点的运算时性能最优的异构计算单元;
分布式计算模块,用于针对所述目标计算图中的每个子图,将该子图分配至该子图所包括的计算节点对应的优选异构计算单元进行运算,得到所述目标计算图的运算结果。
10.一种异构平台,其特征在于,所述异构平台包括多个异构计算单元、处理器、存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437738.4A CN113051080A (zh) | 2021-04-22 | 2021-04-22 | 一种计算图执行方法、装置及异构平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437738.4A CN113051080A (zh) | 2021-04-22 | 2021-04-22 | 一种计算图执行方法、装置及异构平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051080A true CN113051080A (zh) | 2021-06-29 |
Family
ID=76520280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110437738.4A Pending CN113051080A (zh) | 2021-04-22 | 2021-04-22 | 一种计算图执行方法、装置及异构平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051080A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024022046A1 (zh) * | 2022-07-28 | 2024-02-01 | 华为技术有限公司 | 一种深度学习系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303762A1 (en) * | 2018-03-30 | 2019-10-03 | Xilinx, Inc. | Methods of optimization of computational graphs of neural networks |
US20200218969A1 (en) * | 2019-01-08 | 2020-07-09 | Apple Inc. | Scheduling heterogenous execution on heterogeneous hardware |
CN111666152A (zh) * | 2020-05-18 | 2020-09-15 | 中国电子科技集团公司电子科学研究院 | 面向异构计算平台的任务调度方法、设备及存储介质 |
CN111860820A (zh) * | 2020-07-31 | 2020-10-30 | 北京灵汐科技有限公司 | 神经网络算子的划分方法、装置及划分设备 |
US20210073169A1 (en) * | 2019-09-09 | 2021-03-11 | Shanghai Denglin Technologies Co., Ltd. | On-chip heterogeneous ai processor |
-
2021
- 2021-04-22 CN CN202110437738.4A patent/CN113051080A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303762A1 (en) * | 2018-03-30 | 2019-10-03 | Xilinx, Inc. | Methods of optimization of computational graphs of neural networks |
US20200218969A1 (en) * | 2019-01-08 | 2020-07-09 | Apple Inc. | Scheduling heterogenous execution on heterogeneous hardware |
US20210073169A1 (en) * | 2019-09-09 | 2021-03-11 | Shanghai Denglin Technologies Co., Ltd. | On-chip heterogeneous ai processor |
CN111666152A (zh) * | 2020-05-18 | 2020-09-15 | 中国电子科技集团公司电子科学研究院 | 面向异构计算平台的任务调度方法、设备及存储介质 |
CN111860820A (zh) * | 2020-07-31 | 2020-10-30 | 北京灵汐科技有限公司 | 神经网络算子的划分方法、装置及划分设备 |
Non-Patent Citations (1)
Title |
---|
杨平平等: "异构信号处理平台中层次性流水线调度算法", 《计算机工程》, pages 89 - 95 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024022046A1 (zh) * | 2022-07-28 | 2024-02-01 | 华为技术有限公司 | 一种深度学习系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11018979B2 (en) | System and method for network slicing for service-oriented networks | |
CN110264326B (zh) | 识别异常账户集合和风险账户集合的方法、装置及设备 | |
US10754709B2 (en) | Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis | |
US10218808B2 (en) | Scripting distributed, parallel programs | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US8856060B2 (en) | Creating stream processing flows from sets of rules | |
US9405855B2 (en) | Processing diff-queries on property graphs | |
EP4369180A2 (en) | Callpath finder | |
US8903824B2 (en) | Vertex-proximity query processing | |
US9805140B2 (en) | Striping of directed graphs and nodes with improved functionality | |
US9400767B2 (en) | Subgraph-based distributed graph processing | |
US9262501B2 (en) | Method, apparatus, and computer-readable medium for optimized data subsetting | |
CN114139022B (zh) | 子图抽取方法和装置 | |
CN115269204A (zh) | 一种用于神经网络编译的内存优化方法及装置 | |
CN116467061A (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
CN111159577A (zh) | 一种社群划分方法、装置、存储介质及电子装置 | |
CN113051080A (zh) | 一种计算图执行方法、装置及异构平台 | |
US10324845B1 (en) | Automatic placement of cache operations for complex in-memory dataflows | |
CN113850675A (zh) | 用于企业交易关系数据的信息处理方法和装置 | |
CN111078415A (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN113691403B (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN113342500B (zh) | 任务执行方法、装置、设备及存储介质 | |
US11099860B2 (en) | Runtime adjustment of configuration models for consistency preservation | |
CN111736848B (zh) | 包冲突定位方法、装置、电子设备及可读存储介质 | |
CN114329058A (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 |