本说明书涉及机器学习领域,尤其涉及一种分布式模型编译系统、方法、装置、介质及设备。
背景技术:
1、随着机器学习的发展,深度学习成为了该领域下的一个新的研究方向。而无论是对模型的训练过程,还是应用模型执行业务的过程,都需要先对模型进行编译,确定可在硬件设备上运行的文件。这一过程一般伴随着巨大的资源消耗,尤其是对于深度神经网络来说,通常结构复杂、参数量大,对计算资源和存储资源的需求更大。因此为了提高深度学习的性能和效率,需要设计高效的模型编译系统。
2、现有技术在进行模型编译时,通过将模型编译为可在计算设备上运行的文件,再通过计算设备上运行编译好的文件。
3、但是,现有技术中在采用分布式机制进行模型的编译时,主节点与从节点的负载不均匀,导致分布式系统中资源利用率较低,主节点负载过大等问题。基于此,本说明书提供一种分布式模型编译系统。
技术实现思路
1、本说明书提供一种分布式模型编译系统、方法、装置、介质及设备,以部分的解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种分布式模型编译系统,所述系统包括主节点以及若干从节点,包括:
4、所述主节点,用于根据待编译模型的模型信息,确定所述待编译模型的逻辑计算图,并将所述逻辑计算图划分为各逻辑子计算图,以及针对每个逻辑子计算图,生成调度消息,并将该调度消息发送至从节点;接收各从节点返回的编译完成信息,确定所述待编译模型编译完毕,并根据编译完毕的模型执行目标业务;
5、针对每个从节点,用于接收所述主节点发送的调度消息,根据所述调度消息,从该从节点本地分配对应的计算资源,以基于分配的计算资源,对所述调度消息包含的逻辑子计算图进行编译,确定任务子计算图,根据所述任务子计算图向所述主节点发送编译完成信息。
6、可选地,所述主节点,用于根据接收到的编译请求,创建执行所述编译请求对应事件的事件执行体,并确定所述待编译模型的模型信息,以生成所述调度消息,并将所述调度消息发送至各从节点;通过所述事件执行体,接收各从节点返回的编译完成信息,确定编译得到的所述待编译模型,并执行目标业务。
7、可选地,所述主节点,用于通过所述事件执行体,确定各从节点的状态,根据各从节点的状态,将所述逻辑计算图划分为各逻辑子计算图。
8、可选地,所述主节点,用于通过所述事件执行体,当确定各从节点的状态后,创建会话控制执行体,并通过所述会话控制执行体,根据各从节点的状态,将所述逻辑计算图划分为各逻辑子计算图,并确定各从节点分别对应的逻辑子计算图。
9、可选地,所述主节点,用于通过所述会话控制执行体,针对每个逻辑子计算图,创建对应该逻辑子计算图的子图执行体,并确定子图执行体、逻辑子计算图以及从节点的对应关系;针对每个子图执行体,通过该子图执行体创建在从节点部署的设备执行体,并根据创建的设备执行体以及该子图执行体对应的逻辑子计算图,生成调度消息,并发送至该子图执行体对应的从节点。
10、可选地,所述从节点,用于根据接收到的调度消息,确定自身处理的逻辑子计算图以及设备执行体,并通过所述设备执行体根据所述从节点实时的状态、所述逻辑子计算图的输入张量以及所述逻辑子计算图的输出张量,从所述从节点本地分配对应的计算资源。
11、可选地,所述从节点,用于通过所述设备执行体,确定编译所述逻辑子计算图所需执行的各任务;根据确定出的各任务,确定至少一个计算流,并针对每个计算流,创建对应的计算流执行体,通过各计算流执行体,执行所述逻辑子计算图所需执行的各任务,完成对所述逻辑子计算图的编译,确定任务子计算图。
12、可选地,所述从节点,用于通过所述设备执行体,确定所述计算流执行体编译得到的任务子计算图,并将所述任务子计算图返回所述主节点中对应所述从节点的子图执行体;
13、所述主节点,用于通过各子图执行体,接收各从节点返回的任务子计算图,并根据各任务子计算图,确定编译完成的模型。
14、可选地,所述主节点,用于在将所述逻辑计算图划分为各逻辑子计算图之前,向所述系统中各从节点发送查询请求;根据各从节点返回的状态,确定用于编译逻辑子计算图的从节点;
15、所述从节点,用于接收所述主节点发送的查询请求,根据所述查询请求确定自身实时的状态,并返回所述主节点。
16、本说明书提供了一种分布式模型编译方法,所述方法应用于执行所述分布式模型编译方法的系统中的主节点,包括:
17、根据待编译模型的模型信息,确定所述待编译模型的逻辑计算图;
18、将所述逻辑计算图划分为各逻辑子计算图,以及针对每个逻辑子计算图,生成调度消息;
19、将该调度消息发送至所述系统的各从节点,使所述各从节点根据所述调度消息,从所述各从节点本地分配对应的计算资源,以基于分配的计算资源,对所述调度消息包含的逻辑子计算图进行编译,确定任务子计算图,根据所述任务子计算图向所述主节点发送编译完成信息;
20、接收所述各从节点返回的编译完成信息,确定所述待编译模型编译完毕,并根据编译完毕的模型执行目标业务。
21、可选地,根据待编译模型的模型信息,确定所述待编译模型的逻辑计算图,具体包括:
22、接收编译请求;
23、根据接收到的编译请求,创建执行所述编译请求对应事件的事件执行体;
24、通过所述事件执行体,根据所述编译请求确定待编译模型的模型信息,并根据所述待编译模型的模型信息,确定所述待编译模型的逻辑计算图;
25、将所述逻辑计算图划分为各逻辑子计算图,以及针对每个逻辑子计算图,生成调度消息,具体包括:
26、通过所述事件执行体,将所述逻辑计算图划分为各逻辑子计算图,以及针对每个逻辑子计算图,生成调度消息;
27、将该调度消息发送至所述系统的各从节点,具体包括:
28、通过所述事件执行体,将该调度消息发送至所述系统的各从节点;
29、接收所述各从节点返回的编译完成信息,确定所述待编译模型编译完毕,并根据编译完毕的模型执行目标业务,具体包括:
30、通过所述事件执行体,接收各从节点返回的编译完成信息,确定编译得到的所述待编译模型,并执行目标业务。
31、可选地,通过所述事件执行体,将所述逻辑计算图划分为各逻辑子计算图,以及针对每个逻辑子计算图,具体包括:
32、通过所述事件执行体,创建会话控制执行体;
33、根据各从节点的状态,将所述逻辑计算图划分为各逻辑子计算图。
34、可选地,根据各从节点的状态,将所述逻辑计算图划分为各逻辑子计算图,具体包括:
35、通过所述事件执行体,根据各从节点的状态,创建会话控制执行体;
36、通过所述会话控制执行体,根据各从节点的状态,将所述逻辑计算图划分为各逻辑子计算图,并确定各从节点分别对应的逻辑子计算图。
37、可选地,针对每个逻辑子计算图,生成调度消息,具体包括:
38、通过所述会话控制执行体,针对每个逻辑子计算图,创建对应该逻辑子计算图的子图执行体,并确定子图执行体、逻辑子计算图以及从节点的对应关系;
39、针对每个子图执行体,通过该子图执行体创建在从节点部署的设备执行体,并根据创建的设备执行体以及该子图执行体对应的逻辑子计算图,生成调度消息,并发送至该子图执行体对应的从节点。
40、可选地,接收各从节点返回的编译完成信息,确定编译得到的所述待编译模型,具体包括:
41、所述子图执行体,接收各从节点返回的任务子计算图;
42、通过所述会话控制执行体,根据各任务子计算图,确定编译完成的模型。
43、可选地,在将所述逻辑计算图划分为各逻辑子计算图之前,所述方法还包括:
44、向所述系统中各从节点发送查询请求,使各从节点根据所述查询请求确定自身实时的状态并返回;
45、根据各从节点返回的状态,确定用于编译逻辑子计算图的从节点。
46、本说明书提供了一种分布式模型编译方法,所述方法应用于执行所述分布式模型编译方法的系统中的从节点,包括:
47、接收所述系统的主节点发送的调度消息,所述调度消息为所述主节点根据逻辑子计算图生成的,所述逻辑子计算图为所述主节点对待编译模型的模型信息的逻辑计算图进行划分得到的;
48、根据所述调度消息,从所述从节点本地分配对应的计算资源;
49、基于分配的计算资源,对所述调度消息包含的逻辑子计算图进行编译,确定任务子计算图;
50、根据所述任务子计算图向所述主节点发送编译完成信息,使所述主节点在根据接收到的编译完成信息确定所述待编译模型编译完毕时,根据编译完毕的模型执行目标业务。
51、可选地,根据所述调度消息,从所述从节点本地分配对应的计算资源,具体包括:
52、根据接收到的调度消息,确定要处理的逻辑子计算图以及设备执行体;
53、通过所述设备执行体,根据所述从节点实时的状态、所述逻辑子计算图的输入张量以及所述逻辑子计算图的输出张量,从该从节点本地分配对应的计算资源。
54、可选地,基于分配的计算资源,对所述调度消息包含的逻辑子计算图进行编译,确定任务子计算图,具体包括:
55、通过所述设备执行体,确定编译所述逻辑子计算图所需执行的各任务;
56、根据确定出的各任务,确定至少一个计算流,并针对每个计算流,创建对应的计算流执行体;
57、通过各计算流执行体,执行所述逻辑子计算图所需执行的各任务,完成对所述逻辑子计算图的编译,确定任务子计算图。
58、可选地,根据所述任务子计算图向所述主节点发送编译完成信息,具体包括:
59、通过所述设备执行体,确定所述计算流执行体编译得到的任务子计算图;
60、将所述任务子计算图返回所述主节点中对应所述从节点的子图执行体;
61、所述主节点根据各从节点返回的任务子计算图,确定编译完成的模型。
62、本说明书提供了一种分布式模型编译装置,所述装置应用于执行分布式模型编译方法的系统中的主节点,包括:
63、确定模块,根据待编译模型的模型信息,确定所述待编译模型的逻辑计算图;
64、逻辑拆分模块,将所述逻辑计算图划分为各逻辑子计算图,以及针对每个逻辑子计算图,生成调度消息;
65、发送模块,将该调度消息发送至所述系统的各从节点,使所述各从节点根据所述调度消息,从所述各从节点本地分配对应的计算资源,以基于分配的计算资源,对所述调度消息包含的逻辑子计算图进行编译,确定任务子计算图,根据所述任务子计算图向所述主节点发送编译完成信息;
66、接收模块,接收所述各从节点返回的编译完成信息,确定所述待编译模型编译完毕,并根据编译完毕的模型执行目标业务。
67、本说明书提供了一种分布式模型编译装置,所述装置应用于执行分布式模型编译方法的系统中的从节点,包括:
68、接收模块,接收所述系统的主节点发送的调度消息,所述调度消息为所述主节点根据逻辑子计算图生成的,所述逻辑子计算图为所述主节点对待编译模型的模型信息的逻辑计算图进行划分得到的;
69、资源分配模块,根据所述调度消息,从所述从节点本地分配对应的计算资源;
70、编译模块,基于分配的计算资源,对所述调度消息包含的逻辑子计算图进行编译,确定任务子计算图;
71、发送模块,根据所述任务子计算图向所述主节点发送编译完成信息,使所述主节点在根据接收到的编译完成信息确定所述待编译模型编译完毕时,根据编译完毕的模型执行目标业务。
72、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述分布式模型编译方法。
73、本说明书提供了一种无人驾驶设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述分布式模型编译方法。
74、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
75、在本说明书提供的分布式模型编译系统中,主节点根据收到的编译请求,确定待编译的模型信息,再根据模型信息确定仅表示待编译模型的计算逻辑的逻辑计算图。同时,主节点向各个从节点发送查询请求,根据各从节点返回的信息,确定各个从节点的状态。主节点根据逻辑计算图和各个从节点的状态,将逻辑计算图划分为若干个逻辑子计算图。主节点再根据逻辑子计算图,生成调度消息,并将调度消息发送给对应的从节点。从节点根据收到的调度消息,确定要编译的逻辑子计算图,并对逻辑子计算图进行编译,得到可在计算设备上运行的任务子计算图。从节点完成对逻辑子计算图的编译后向主节点发送编译完成信息,该编译完成信息可包括编译好的任务子算图。主节点根据收到的编译完成信息确定模型是否编译完成。
76、从上述方法中可以看出,本分布式模型编译系统在进行模型编译时,从逻辑上将模型对应的计算图进行拆分,确定若干子图,之后各子图的编译过程不再由主节点执行,而是分配至各从节点进行,提高从节点计算资源利用率,减少主节点的负载。并且,由于可通过多个从节点并行对子图进行编译,模型编译效率可以大大提高。而且由于主节点不再执行全局计算图的编译,还可以减少从节点等待时间,更加充分的利用了主节点和从节点的计算资源和存储资源。