计算图的并行执行方法和设备技术

技术编号:20944083 阅读:26 留言:0更新日期:2019-04-24 02:14
提供了一种计算图的并行执行方法和设备。所述方法包括:构建与计算任务对应的计算图,其中,计算图包括运算节点、数据节点以及连接运算节点与数据节点之间的边;根据计算任务来确定计算图的并行执行方式,其中,并行执行方式为以下方式之一或以下方式之中的至少两种方式的组合:运算节点内并行执行、运算节点间并行执行、计算图间并行执行;以及在多个线程中根据确定的并行执行方式来执行所述计算图,其中,运算节点内并行执行是指计算图中的至少一个单独运算节点通过不同的线程来并行执行;运算节点间并行执行是指计算图中的不同运算节点通过不同的线程来并行执行;计算图间并行执行是指计算图及其至少一个副本通过不同的线程来并行执行。

Parallel Execution Method and Equipment of Computing Graph

A parallel execution method and device for computational graphs are provided. The method includes: constructing a computational graph corresponding to a computational task, in which the computational graph includes an operation node, a data node and an edge connecting the operation node and the data node; determining the parallel execution mode of the computational graph according to the computational task, in which the parallel execution mode is a combination of at least two modes of one or more of the following: union within the operation node Line execution, parallel execution between computing nodes, parallel execution between computing graphs; and execution of the computing graphs in multiple threads in accordance with the determined parallel execution mode, where parallel execution within computing nodes refers to the parallel execution of at least one single computing node in the computing graphs through different threads; parallel execution between computing nodes refers to the common operation of different computing nodes in the computing graphs. Parallel execution occurs through different threads; parallel execution between computational graphs refers to the parallel execution of computational graphs and at least one copy of them through different threads.

【技术实现步骤摘要】
计算图的并行执行方法和设备
本专利技术涉及数据的并行处理领域,更具体地讲,涉及一种计算图的并行执行方法和设备。
技术介绍
计算图是一种通用的计算过程表示方法,普遍应用在各类数据处理平台上,它的表示方法容易理解,且灵活性很高,可以通过组合简单的操作来实现复杂的逻辑。作为示例,计算图可应用于神经网络,神经网络是机器学习模型,其使用一个或多个模型层来为接收到的输入生成输出,例如一个或多个分类。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层(即网络的下一个隐藏层或输出层)的输入。网络的每一层根据该层的相应参数集的当前值从接收到的输入生成输出。现有的计算图的定义包括节点和有向边。以神经网络的应用为例,每个计算图的节点表示神经网络所进行的相应运算,作为根据神经网络的输入来确定神经网络输出的运算,每个计算图的有向边将前一个节点连接至后一个节点,表示前节点的输出作为后节点的输入。图2A和图2B是分别示出现有的执行计算图的并行时存在限制的情况的示意图。计算图执行时,现有的计算图的执行具有两级并行度,一是节点间的并行度,二是节点内部的并行度。节点间的并行度取决于计算图的节点间依赖情况,如果依赖比较多,则此并行度受限。参照图2A,图2A中示出的计算图存在两个节点共享输出(例如,共享输出位置)的情况,例如,在如图2A所示的节点共享输出的计算图中,节点A和节点B的输出都是节点C的输入,但是如果它们的输出是同一份数据,则会产生写冲突。因此,执行该计算图时节点A和节点B两个节点不能并行计算。故,图2A所示的计算图节点间完全无法并行,只能串行执行,此时节点间并行带来的线程通信开销反而会减慢整体执行速度。节点内部并行则需要节点开始前和结束后对改节点的并行线程做一次同步操作,同步操作的开销随着该并行度增大而增大。因此节点内并行取决于计算图的节点本身的计算与同步操作的开销之间的关系,只有在节点本身的计算远大于同步操作的开销时才有优势。而对于比较轻的计算节点,节点内并行反而会变慢,因此节点内并行的并行度也会受限。例如,如图2B所示的计算图,该计算图有大量的轻量级节点,具体包括节点A、节点B……节点N,但所有节点的计算都依次依赖前一个节点,此种情况下,节点内并行和节点间并行这两级并行度都无法发挥作用。综上所述,现有技术的计算图的并行执行所采用的节点间的并行度和节点内部的并行度均是受限的。
技术实现思路
本专利技术的目的在于提供一种计算图的并行执行方法的设备,以解决现有的计算图的并行执行存在限制的问题。本专利技术的一方面提供了一种计算图的并行执行方法,其特征在于,包括:构建与计算任务对应的计算图,其中,所述计算图包括运算节点、数据节点以及连接运算节点与数据节点之间的边;根据计算任务来确定计算图的并行执行方式,其中,所述并行执行方式为以下方式之一或以下方式之中的至少两种方式的组合:运算节点内并行执行、运算节点间并行执行、计算图间并行执行;以及在多个线程中根据确定的并行执行方式来执行所述计算图,其中,运算节点内并行执行是指计算图中的至少一个单独运算节点通过不同的线程来并行执行;运算节点间并行执行是指计算图中的不同运算节点通过不同的线程来并行执行;计算图间并行执行是指计算图及其至少一个副本通过不同的线程来并行执行。可选地,根据计算任务来确定计算图的并行执行方式的步骤可以包括:根据计算任务在运算节点内并行执行、运算节点间并行执行和/或计算图间并行执行方面的时间代价来确定计算图的并行执行方式。可选地,可以根据计算任务的同步运算情况来确定时间代价。可选地,根据计算任务的类型来确定计算图的并行执行方式的步骤包括:在所述计算任务涉及异步计算的情况下,将计算图间并行执行方式确定为所述计算图的并行执行方式;和/或,在所述计算任务涉及同步计算且计算图包括同步运算节点的情况下,将运算节点间并行执行和运算节点内并行执行的组合确定为所述计算图的并行执行方式;和/或,在所述计算任务涉及同步计算且计算图不包括同步运算节点的情况下,将运算节点间并行执行和计算图间并行执行的组合确定为所述计算图的并行执行方式。可选地,所述异步计算可以是指异步训练神经网络;和/或,所述同步计算可以是指同步训练神经网络;和/或,所述同步运算节点可以是指批归一化节点。可选地,在计算图中声明数据节点的操作数据的存储位置为所述操作数据在内存空间的相对索引,并且,在多个线程中根据确定的并行执行方式来执行所述计算图的步骤可以包括:为每个线程分配相应的内存空间,根据所述多个线程各自的内存空间的起始地址以及所述相对索引,来在所述多个线程中并行执行所述计算图。可选地,根据所述多个线程各自的内存空间的起始地址以及所述相对索引,来在所述多个线程中并行执行所述计算图的步骤可以包括:利用每个线程根据对应的内存空间的起始地址以及所述相对索引来确定对应的计算图所包括的所述至少一个数据节点的操作数据的内存地址;利用所述多个线程根据各自确定的内存地址来执行各自的计算图。本专利技术的另一方面提供了一种用于执行计算图的并行的设备,其特征在于,包括:计算图构建单元,构建与计算任务对应的计算图,其中,所述计算图包括运算节点、数据节点以及连接运算节点与数据节点之间的边;并行方式确定单元,根据计算任务来确定计算图的并行执行方式,其中,所述并行执行方式为以下方式之一或以下方式之中的至少两种方式的组合:运算节点内并行执行、运算节点间并行执行、计算图间并行执行;以及执行单元,在多个线程中根据确定的并行执行方式来执行所述计算图,其中,运算节点内并行执行是指计算图中的至少一个单独运算节点通过不同的线程来并行执行;运算节点间并行执行是指计算图中的不同运算节点通过不同的线程来并行执行;计算图间并行执行是指计算图及其至少一个副本通过不同的线程来并行执行。可选地,并行方式确定单元可以根据计算任务在运算节点内并行执行、运算节点间并行执行和/或计算图间并行执行方面的时间代价来确定计算图的并行执行方式。可选地,并行方式确定单元可以根据计算任务的同步运算情况来确定时间代价。可选地,所述并行方式确定单元可以在所述计算任务涉及异步计算的情况下,将计算图间并行执行方式确定为所述计算图的并行执行方式;和/或可以在所述计算任务涉及同步计算且计算图包括同步运算节点的情况下,将运算节点间并行执行和运算节点内并行执行的组合确定为所述计算图的并行执行方式;和/或可以在所述计算任务涉及同步计算且计算图不包括同步运算节点的情况下,将运算节点间并行执行和计算图间并行执行的组合确定为所述计算图的并行执行方式。可选地,所述异步计算可以是指异步训练神经网络;和/或,所述同步计算可以是指同步训练神经网络;和/或,所述同步运算节点可以是指批归一化节点。可选地,所述计算图构建单元在计算图中声明数据节点的操作数据的存储位置为所述操作数据在内存空间的相对索引,并为每个线程分配相应的内存空间;并且,所述执行单元根据所述多个线程各自的内存空间的起始地址以及所述相对索引,来在所述多个线程中并行执行所述计算图。可选地,所述执行单元可以利用每个线程根据对应的内存空间的起始地址以及所述相对索引来确定对应的计算图所包括的所述至少一个数据节点的操作数据的内存地址;以及利用所述多个线程根据各自确本文档来自技高网
...

【技术保护点】
1.一种计算图的并行执行方法,其特征在于,包括:构建与计算任务对应的计算图,其中,所述计算图包括运算节点、数据节点以及连接运算节点与数据节点之间的边;根据计算任务来确定计算图的并行执行方式,其中,所述并行执行方式为以下方式之一或以下方式之中的至少两种方式的组合:运算节点内并行执行、运算节点间并行执行、计算图间并行执行;以及在多个线程中根据确定的并行执行方式来执行所述计算图,其中,运算节点内并行执行是指计算图中的至少一个单独运算节点通过不同的线程来并行执行;运算节点间并行执行是指计算图中的不同运算节点通过不同的线程来并行执行;计算图间并行执行是指计算图及其至少一个副本通过不同的线程来并行执行。

【技术特征摘要】
1.一种计算图的并行执行方法,其特征在于,包括:构建与计算任务对应的计算图,其中,所述计算图包括运算节点、数据节点以及连接运算节点与数据节点之间的边;根据计算任务来确定计算图的并行执行方式,其中,所述并行执行方式为以下方式之一或以下方式之中的至少两种方式的组合:运算节点内并行执行、运算节点间并行执行、计算图间并行执行;以及在多个线程中根据确定的并行执行方式来执行所述计算图,其中,运算节点内并行执行是指计算图中的至少一个单独运算节点通过不同的线程来并行执行;运算节点间并行执行是指计算图中的不同运算节点通过不同的线程来并行执行;计算图间并行执行是指计算图及其至少一个副本通过不同的线程来并行执行。2.根据权利要求1所述的并行执行方法,其中,所述根据计算任务来确定计算图的并行执行方式的步骤包括:根据计算任务在运算节点内并行执行、运算节点间并行执行和/或计算图间并行执行方面的时间代价来确定计算图的并行执行方式。3.根据权利要求2所述的并行执行方法,其中,根据计算任务的同步运算情况来确定时间代价。4.根据权利要求2所述的并行执行方法,其中,所述根据计算任务的类型来确定计算图的并行执行方式的步骤包括:在所述计算任务涉及异步计算的情况下,将计算图间并行执行方式确定为所述计算图的并行执行方式;和/或,在所述计算任务涉及同步计算且计算图包括同步运算节点的情况下,将运算节点间并行执行和运算节点内并行执行的组合确定为所述计算图的并行执行方式;和/或,在所述计算任务涉及同步计算且计算图不包括同步运算节点的情况下,将运算节点间并行执行和计算图间并行执行的组合确定为所述计算图的并行执行方式。5.根据权利要求4所述的并行执行方法,其中,所述异步计算是指异步训练神经网络;和/或,所述同步计算是指同步训练神经网络;和/或,所述同步运算节点是指批归一化节点。6.根据权利要求1所述的并行执行方法,其中,在计算图中声...

【专利技术属性】
技术研发人员:孙承根焦英翔
申请(专利权)人:第四范式北京技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1