【技术实现步骤摘要】
一种分布式计算图修改的方法和设备
本领域涉及计算机领域,并且更具体地涉及一种分布式计算图修改的方法和设备。
技术介绍
深度学习计算过程在Tensorflow、Pytorch等深度学习框架中可用计算图表示,为了使深度学习大模型能够在GPU(图形处理器)上训练,我们需要对原来的计算图进行修改。但是随着使用GPU数量的增大,修改计算图的成本也线性增加,如果GPU数量非常大,这带来的耗时将会非常大。比如通常的做法就是对每一个GPU上的计算图进行制定修改策略和实施修改,且每次训练之前都要重复这样的过程,这给模型训练带来了很多不必要的耗时。当前的一种技术方案是对每一个GPU上的计算图逐一进行制定修改策略,其过程包括计算图拓扑层信息提取和数据搬运策略模拟,在运行时间上,一般需要几分钟,因此在多GPU时,运行时间可达几十分钟,数小时,甚至更长时间。但是由于每个GPU上的计算图很相似,在对每个GPU上的计算图逐一制定修改策略时,存在很大的重复性;并且随着使用GPU数量的增加,其制定计算图策略的时间将会线性增长,如果GPU数量达到数千个 ...
【技术保护点】
1.一种分布式计算图修改的方法,其特征在于,包括以下步骤:/n响应于分布式计算图需要做修改模拟,建立非分布式计算图并模拟得到所述非分布式计算图的修改策略;/n获取待修改的多GPU分布式计算图,并判断分层_版本号文件是否存在;/n响应于分层_版本号文件存在,基于所述修改策略将所述多GPU分布式计算图进行修改。/n
【技术特征摘要】
1.一种分布式计算图修改的方法,其特征在于,包括以下步骤:
响应于分布式计算图需要做修改模拟,建立非分布式计算图并模拟得到所述非分布式计算图的修改策略;
获取待修改的多GPU分布式计算图,并判断分层_版本号文件是否存在;
响应于分层_版本号文件存在,基于所述修改策略将所述多GPU分布式计算图进行修改。
2.根据权利要求1所述的方法,其特征在于,建立非分布式计算图并模拟得到所述非分布式计算图的修改策略包括:
建立计算图拓扑层,并找出每一层可增加控制边的运算,并将其保存在计算图_版本号文件中;
判断所述计算图拓扑层是否需要分层;
响应于需要分层,将需要分层建立控制边的信息写在分层_版本号文件中,且重新建立分层后的计算图拓扑层,并找出每一拓扑层可增加控制边的运算,并将所述运算重写在计算图_版本号文件中;
响应于不需要分层,将数据搬运策略写在搬运策略_版本号文件里。
3.根据权利要求1所述的方法,其特征在于,所述修改策略包括计算图分层修改、计算图数据搬运修改和计算图数据搬运顺序修改。
4.根据权利要求1所述的方法,其特征在于,响应于分层_版本号文件存在,基于所述修改策略将所述多GPU分布式计算图进行修改包括:
判断tower_0是否在分层_版本号文件中的含有被增加控制边的运算中;
响应于所述tower_0不在所述运算中且所述运算与变量相关,判断所述tower_0是否在控制边的名字中;
响应于tower_0不在控制边的名字中,收集控制边,将控制边放在控制边集合中;
响应于tower_0在控制边的名字中,将控制边名字中的tower_0换为tower_${gpu_ind},其中gpu_ind为GPU序号,将计算图中以tower_${gpu_ind}命名的运算收集在控制边集合中以建立从控制边集合到运算的控制边。
5.根据权利要求4所述的方法,其特征在于,响应于分层_版本号文件存在,基于所述修改策略将所述多GPU分布式计算图进行修改还包括:
响应于tower_0在所述运算中,将所述运算中tower_0换为tower_${gpu_ind},其中gpu_ind为GPU序号,并判断计算图中是否有以tower_${gpu_ind}命名的运算运算_gpu;
响应于计算图中有以tower_${gpu_ind}命名的运算op_gpu,将每一个控制边名字中的tower_0换为tower_${gpu_ind},将计算图中以tower_${gpu_ind}命名的运算放在控制边集合_gpu中以建立从控制边集合_gpu到运算_gpu的控制边。
6.根据权利要求1所述的方法,其特征在于,响应于分层_版本号文件存在,基于所述修改策略将所述多GPU分布式计算图进行修改包括:
判断搬运策略_版本号文件中的当前搬运操作是否为空;
响应于当前搬运操作不为空,对当前拓扑层进行数据搬运的计算图修改;
响...
【专利技术属性】
技术研发人员:赵涟水,吴韶华,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。