本公开的实施例涉及人工智能,尤其涉及一种数据搬运方法、分布式训练系统、电子设备和存储介质。
背景技术:
1、随着技术的发展,人工智能(artificial intelligence,ai)技术在多个领域得到了广泛的应用。深度学习(deep learning)是人工智能技术的重要技术之一,基于人工神经网络的深度学习技术已经在诸如物体分类、文本处理、图像搜索以及人机对话等领域取得了巨大进展。
2、随着问题复杂性的增加,神经网络的深度和规模也不断提升。然而,图形处理器(graphics processing unit,gpu)、张量处理器(tensor processing unit,tpu)、现场可编程门阵列(field programmable gate array,fpga)等ai加速器的存储容量的增速远低于神经网络规模的增长,导致其难以满足大规模深度神经网络模型的训练需求。
技术实现思路
1、本公开至少一实施例提供一种数据搬运方法,所述数据搬运方法包括:获取待训练的目标模型的模型结构和所述目标模型在分布式训练系统中的并行策略,其中,所述分布式训练系统包括至少一个计算节点,所述至少一个计算节点中的每个计算节点包括至少一个主机和至少一个设备;根据所述模型结构和所述并行策略获取主机内存仿真结果、设备内存仿真结果和运行时信息;根据所述主机内存仿真结果、所述设备内存仿真结果和所述运行时信息生成目标数据的搬移策略;以及基于所述搬移策略发送所述目标数据对应的转移指令和预取指令到所述分布式训练系统中,其中,所述转移指令用于在每个计算节点中将所述目标数据从所述至少一个设备中搬运到所述至少一个主机中,所述预取指令用于在每个计算节点中将所述目标数据从所述至少一个主机中搬运到所述至少一个设备中。
2、例如,在本公开至少一实施例提供的数据搬运方法中,所述获取主机内存仿真结果、设备内存仿真结果,包括:根据所述模型结构中张量的大小和所述分布式训练系统的拓扑配置信息获取不同并行策略下的每个计算节点上的所述主机内存仿真结果;根据所述模型结构和所述并行策略获取在减少使用重计算或不使用重计算时的所述设备内存仿真结果。
3、例如,在本公开至少一实施例提供的数据搬运方法中,所述运行时信息包括所述目标模型中的多个算子的执行时间。
4、例如,在本公开至少一实施例提供的数据搬运方法中,所述根据所述主机内存仿真结果、所述设备内存仿真结果和所述运行时信息生成目标数据的搬移策略,包括:根据所述多个算子的执行时间确定执行所述第一算子的第一时刻;根据所述主机内存仿真结果和所述设备内存仿真结果确定需要搬运的目标数据,其中,所述目标数据包括执行所述第一算子前需要从所述至少一个主机搬运到所述至少一个设备的第一数据或执行完所述第一算子后需要从所述至少一个设备搬运到所述至少一个主机的第二数据;基于所述第一数据的数据量和通信带宽确定所述第一数据的通信时间;基于所述第一数据的所述通信时间确定将所述第一数据从所述至少一个主机搬运到所述至少一个设备的第二时刻,其中,所述第一时刻与所述第二时刻之间的间隔时间大于或等于所述通信时间。
5、例如,在本公开至少一实施例提供的数据搬运方法中,所述目标模型的多个层被拆分为多个阶段,所述多个阶段分别分布在所述至少一个计算节点的多个设备中,所述多个阶段中的每个阶段包括多个微批次数据,每个阶段中的所述多个微批次数据按照前向计算和反向计算交叉执行的方式参与训练。
6、例如,在本公开至少一实施例提供的数据搬运方法中,所述搬移策略包括对所述多个微批次数据对应的目标数据的异步搬移策略,其中,所述异步搬移策略包括:在每个微批次数据完成所述前向计算后,将所述前向计算后得到的目标数据从所述每个微批次数据所在的设备中搬运到所述至少一个主机中;以及在对每个微批次数据进行所述反向计算时,提前将下一次反向计算所需的目标数据从所述至少一个主机中搬运到所述每个微批次数据所在的设备中。
7、例如,在本公开至少一实施例提供的数据搬运方法中,所述搬移策略包括对所述多个层对应的目标数据的异步搬移策略,其中,所述异步搬移策略包括:在对后一个层进行所述前向计算时,将前一个层完成所述前向计算后得到的目标数据从所述前一个层所在的设备中搬运到所述至少一个主机中;以及在对前一个层进行反向计算时,提前将后一个层进行反向计算所需的目标数据从所述至少一个主机中搬运到所述后一个层所在的设备中。
8、例如,在本公开至少一实施例提供的数据搬运方法中,所述并行策略包括将所述目标模型以混合并行模式被拆分到所述分布式训练系统中进行训练的策略。
9、例如,在本公开至少一实施例提供的数据搬运方法中,所述混合并行模式包括数据并行模式、流水线并行模式和张量并行模式。
10、例如,在本公开至少一实施例提供的数据搬运方法中,所述目标数据包括激活值和模型状态参数,所述模型状态参数包括梯度、优化器参数、模型参数中的至少一个。
11、本公开至少一实施例还提供一种分布式训练系统,所述分布式训练系统包括至少一个计算节点、输入单元、分析单元、生成单元和输出单元,所述至少一个计算节点中的每个计算节点包括至少一个主机和至少一个设备;所述输入单元配置为获取待训练的目标模型的模型结构和所述目标模型在所述分布式训练系统中的并行策略;所述分析单元配置为根据所述模型结构和所述并行策略获取主机内存仿真结果、设备内存仿真结果和运行时信息;生成单元,配置为根据所述主机内存仿真结果、所述设备内存仿真结果和所述运行时信息生成目标数据的搬移策略;所述输出单元配置为基于所述搬移策略发送所述目标数据对应的转移指令和预取指令到所述至少一个计算节点中,其中,所述转移指令用于在每个计算节点中将所述目标数据从所述至少一个设备中搬运到所述至少一个主机中,所述预取指令用于在每个计算节点中将所述目标数据从所述至少一个主机中搬运到所述至少一个设备中。
12、本公开至少一实施例还提供一种电子设备,包括:至少一个存储器,非瞬时性地存储有计算机可执行指令;至少一个处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现本公开任一实施例所述的数据搬运方法。
13、本公开至少一实施例还提供一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被至少一个处理器执行时实现本公开任一实施例所述的数据搬运方法。
14、本公开至少一实施例还提供一种计算机程序产品,所述计算机程序产品包括用于实现本公开任一实施例所述的数据搬运方法的程序代码。
1.一种数据搬运方法,包括:
2.根据权利要求1所述的数据搬运方法,其中,所述获取主机内存仿真结果、设备内存仿真结果,包括:
3.根据权利要求1所述的数据搬运方法,其中,所述运行时信息包括所述目标模型中的多个算子的执行时间。
4.根据权利要求3所述的数据搬运方法,其中,所述根据所述主机内存仿真结果、所述设备内存仿真结果和所述运行时信息生成目标数据的搬移策略,包括:
5.根据权利要求1所述的数据搬运方法,其中,所述目标模型的多个层被拆分为多个阶段,所述多个阶段分别分布在所述至少一个计算节点的多个设备中,所述多个阶段中的每个阶段包括多个微批次数据,每个阶段中的所述多个微批次数据按照前向计算和反向计算交叉执行的方式参与训练。
6. 根据权利要求5所述的数据搬运方法,其中,所述搬移策略包括对所述多个微批次数据对应的目标数据的异步搬移策略,其中,所述异步搬移策略包括:
7. 根据权利要求5所述的数据搬运方法,其中,所述搬移策略包括对所述多个层对应的目标数据的异步搬移策略,其中,所述异步搬移策略包括:
8.根据权利要求1-7任一项所述的数据搬运方法,其中,所述并行策略包括将所述目标模型以混合并行模式被拆分到所述分布式训练系统中进行训练的策略。
9.根据权利要求8所述的数据搬运方法,其中,所述混合并行模式包括数据并行模式、流水线并行模式和张量并行模式。
10.根据权利要求1-7任一项所述的数据搬运方法,其中,所述目标数据包括激活值和模型状态参数,所述模型状态参数包括梯度、优化器参数、模型参数中的至少一个。
11.一种分布式训练系统,包括:
12.一种电子设备,包括:
13.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,
14.一种计算机程序产品,所述计算机程序产品包括用于实现权利要求1-10中任一项所述的数据搬运方法的程序代码。
