本发明涉及计算机科学,尤其涉及一种计算图的自动划分方法。
背景技术:
1、计算图划分是计算机科学领域中的一项重要技术,旨在优化计算任务的执行效率和资源利用率。通过将复杂的计算图分解为更小的子图,计算图划分使得多个计算单元(如多核处理器、gpu等)可以并行执行,从而加速整个计算过程。在深度学习中,计算图划分可用于加速神经网络的训练和推理过程。神经网络通常包含大量的计算操作,通过将计算图划分为适当的子图,可以在多个gpu上并行计算,从而显著提升训练速度。
2、当前,开源的深度学习编译器和优化器tvm(tensor virtual machine)提供了一种计算图划分方式,即流水线(pipeline)机制,该方法通过手动划分,将计算图划分为不同子图,并分配到不同的设备或者不同核之间。
3、但是,tvm中的流水线机制默认的划分方法需要使用者观察计算图以手动进行划分,导致使用难度增大,且划分效果不理想,达不到相应的加速效果。
技术实现思路
1、鉴于现有技术的上述缺点、不足,本发明提供一种计算图的自动划分方法,其解决了现有的划分方法需要使用者观察计算图以手动进行划分,导致使用难度增大,且划分效果不理想,达不到相应的加速效果技术问题。
2、为了达到上述目的,本发明采用的主要技术方案包括:
3、本发明实施例提供一种计算图的自动划分方法,包括:
4、s1、获取计算图中的分支信息;
5、s2、针对计算图进行转换处理,得到转换后的计算图;
6、s3、根据计算图中的分支信息,针对转换后的计算图进行划分,得到多个子图节点集合。
7、优选地,所述s1具体包括:
8、s11、获取计算图中符合预先设定条件的每一节点的基础量,以及计算图中节点之间的依赖关系;
9、其中,基础量包括:节点名称、节点类型、常量、数据类型和数据布局;
10、s12、基于符合预先设定条件的节点的基础量,确定计算图中分支的结束节点;
11、s13、基于符合预先设定条件的节点的基础量和计算图中的分支结束节点,确定计算图中的分支开始节点;
12、s14、基于计算图中的分支结束节点和分支开始节点,获取计算图中的分支信息。
13、优选地,所述s11具体包括:
14、s11-1:读取计算图中任一行数据,判断该行数据所对应的节点是否为神经网络类型,若是,则记录该节点的名称,并将该节点作为符合预先设定条件的节点;
15、s11-2,读取该节点的内部参数,并针对内部参数,依次判断各个任一内部参数是否为节点,若是,则将该节点作为该内部参数所属的节点的子节点,并转到s11-3,否则转到s11-4;
16、s11-3:则判断该内部参数是否为神经网络类型节点,若是,则记录该内部参数的名称,并读取该内部参数的内部参数,并返回s11-2;
17、s11-4:若该内部参数不是节点,则判断该内部参数是否为常量类型,若是,则记录该内部参数的名称到预先设定的参数储存表,并将该内部参数中的常量、数据类型和数据布局,分别存入预先设置的常量表、数据类型表和数据布局表中;
18、s11-5:重复步骤s11-1至s11-4,直至计算图中每一行数据读取完毕,从而获取符合预先设定条件的每一节点的基础量,以及确定节点所对应的子节点。
19、优选地,所述s12具体包括:
20、基于符合预先设定条件的节点的基础量,将名称为指定名称的节点作为计算图中分支的结束节点。
21、优选地,所述指定名称包括add和concat。
22、优选地,所述s13具体包括:
23、s131、从计算图中分支的结束节点开始,采用后序遍历的方法,遍历该分支的结束节点的每一分支,获取该分支中每一节点的名称;
24、s132、若该分支中除该分支的结束节点外其他节点的名称不是所述指定名称,则将该分支中第一节点作为该分支的开始节点;
25、其中,第一节点为没有子节点的节点。
26、优选地,所述s13还包括:
27、s133、若该分支中除该分支的结束节点外其他节点的名称为所述指定名称,则将该分支中除该分支的结束节点外的每一具有指定名称的节点作为该分支的结束节点的子结束节点;
28、s134、针对该分支的结束节点的任一子结束节点,从该子结束节点开始采用后序遍历的方法,遍历该子结束节点的任一分支,并将该分支中的第一节点作为开始节点,以及将该子结束节点的该分支中的每一节点的名称组成第一数组;
29、s135、从该子结束节点开始采用后序遍历的方法,遍历该子结束节点的其他任一分支,获取该分支中每一节点的名称,并依次判断该分支中除子结束节点之外其他节点的名称是否存在所述第一数组中,若存在,则将该分支中除子结束节点之外第一个存在所述第一数组中的节点名称所对应的节点作为与子开始节点。
30、优选地,所述s14具体包括:
31、分别针对计算图中的分支结束节点、分支开始节点、子分支结束节点、子分支开始节点,标记相应的特异性标识,得到计算图中的分支信息;
32、其中,分支信息包括计算图中的分支结束节点以及相应的特异性标识、分支开始节点以及相应的特异性标识、子分支结束节点以及相应的特异性标识、子分支开始节点以及相应的特异性标识。
33、优选地,所述s2具体包括:
34、使用tvm中的anormal计算图形式对计算图进行转换处理,得到转换后的计算图。
35、优选地,所述方法还包括:
36、s4、针对每一子图节点集合以及计算图中节点之间的依赖关系,构建出与该子图节点集合所对应的子图;
37、其中,子图节点集合包括对转换后的计算图所划分出的多个节点。
38、本发明的有益效果是:本发明的一种计算图的自动划分方法,由于采用计算图中的分支信息,针对转换后的计算图进行划分,得到多个子图节点集合,相对于现有技术而言,其可以不依赖人工手动划分,能够实现自动划分,提高了工作效率。
1.一种计算图的自动划分方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述s1具体包括:
3.根据权要求2所述的方法,其特征在于,所述s11具体包括:
4.根据权利要求3所述的方法,其特征在于,所述s12具体包括:
5.根据权利要求4所述的方法,其特征在于,所述指定名称包括add和concat。
6.根据权利要求5所述的方法,其特征在于,所述s13具体包括:
7.根据权利要求6所述的方法,其特征在于,所述s13还包括:
8.根据权利要求7所述的方法,其特征在于,所述s14具体包括:
9.根据权利要求8所述的方法,其特征在于,所述s2具体包括:
10.根据权利要求9所述的方法,其特征在于,所述方法还包括: