一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分布式通信库的性能测试方法、装置、设备及介质与流程

2021-12-14 23:22:00 来源:中国专利 TAG:


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.图1是本发明实施例中的一种分布式通信库的性能测试方法的流程图;
42.图2是本发明实施例中的一种分布式通信库的性能测试方法的流程图;
43.图3是本发明实施例中的一种分布式通信库的性能测试装置的结构图;
44.图4是本发明实施例中的一种计算机设备的结构示意图。
具体实施方式
45.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
46.图1为本发明实施例提供的一种分布式通信库的性能测试方法的流程图,本实施例可适用于对分布式通信库的通信性能进行测试的情形,该方法可以由分布式通信库的性能测试装置来执行,该装置可以由软件和/或硬件来实现,并一般可以集成在具有数据处理功能的计算机设备中,例如,终端设备或者服务器中,具体包括如下步骤:
47.步骤110、根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布
训练的集群环境。
48.在本实施例中,所述拓扑结构可以为集群中包括的各个节点之间互相连接起来的通信结构,例如星型、环型、总线型、以及树型等结构,所述集群规模为集群支持管理的最大节点数。其中,所述集群规模越大,则对应的集群中可以管理的节点越多。
49.在此步骤中,可以根据预先设定的拓扑结构以及集群规模,配置与所述拓扑结构以及集群规模匹配的环境资源。具体的,所述环境资源可以包括硬件资源和软件资源。硬件资源可以包括与所述拓扑结构以及集群规模匹配的多个节点,各节点中包括的内存条、加速卡以及处理器等。软件资源可以包括各节点中部署的操作系统以及编译器等。
50.在配置完与所述拓扑结构以及集群规模匹配的环境资源后,可以检查各节点的工作状态是否正常,如果确定各节点的工作状态均正常,则可以认为所述集群环境构建完成。其中,所述节点的工作状态可以包括所述节点中部署的加速卡的运行状态、处理器的运行状态以及对应的网络环境等。
51.在一个具体的实施例中,可以通过rocm

smi命令查询各节点中图形处理器(graphics processing unit,gpu)的运行状态,通过lscpu命令查询各节点中中央处理器(central processing unit,cpu)的架构信息,通过top查询各节点中操作系统的运行情况,通过iostat命令查询各节点中磁盘和cpu的统计信息。
52.步骤120、通过所述集群环境中包括的全部节点,根据待测通信库,完成与所述深度学习模型对应的分布训练任务;各所述节点中部署至少一块加速卡。
53.在本实施例中,待测通信库用于集群环境中各节点之间,以及各节点与对应的加速卡之间进行通信。所述待测通信库包括但不仅限于开源的通信库horovod,以及深度学习框架pytorch中内置的通信库,例如多卡通信库(nvidia collective multi

gpu communication library,nccl)以及gloo通信库等。其中,所述深度学习模型包括但不仅限于图像分类模型、目标检测模型、以及姿态估计模型等。
54.在此步骤中,可以将与所述深度学习模型对应的训练任务分布至各个节点中,各个节点之间,以及各节点与对应的加速卡之间可以根据所述待测通信库进行通信,每个节点与对应的加速卡通过执行各自的训练任务,可以实现所述集群环境对所述深度学习模型进行分布训练。
55.步骤130、获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练结果数据,并根据所述训练结果数据,评估所述待测通信库针对所述集群环境,以及所述深度学习模型的通信性能。
56.在本实施例中,可选的,所述训练结果数据可以为集群环境在使用待测通信库下,对深度学习模型的训练耗时。如果训练耗时较长,则可以说明集群环境对深度学习模型的训练效率较低,也即,待测通信库针对所述集群环境,以及所述深度学习模型的通信性能也较差。
57.在一个具体的实施例中,可以计算标准耗时与所述训练耗时之间的差值,根据差值确定待测通信库针对所述集群环境,以及所述深度学习模型的通信性能。所述标准耗时可以为单个设备(所述设备中部署预设数量的加速卡)对深度学习模型的训练耗时。其中,如果所述差值大于预设阈值,则可以认为待测通信库针对所述集群环境,以及所述深度学习模型的通信性能较好。
58.在本实施例的一个实施方式中,可选的,所述集群环境可以基于非主流的加速计算环境(radeon open compute platform,rocm)构建,由此可以实现对通信库在非主流的异构计算环境中的通信性能进行测试。
59.本发明实施例的技术方案根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境,然后通过集群环境中包括的全部节点,根据待测通信库,完成与深度学习模型对应的分布训练任务,并获取集群环境在使用待测通信库下,对深度学习模型的训练结果数据,最后根据训练结果数据,评估待测通信库针对集群环境,以及深度学习模型的通信性能的技术手段,可以有效验证分布式通信库在异构计算环境中的适用性,便于用户根据性能测试结果选择与异构计算环境匹配的最优的分布式通信库,进而可以提高深度学习模型的训练效率。
60.图2为本发明实施例提供的一种分布式通信库的性能测试方法的流程图,如图2所示,本发明实施例提供的方法还可以包括:
61.步骤210、根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境。
62.步骤220、判断所述集群环境是否支持运行与所述待测通信库对应的目标程序,若是,执行步骤230,若否,执行步骤240

260。
63.在此步骤中,可选的,可以根据集群环境各节点中部署的编译器,对所述目标程序的代码文件进行编译,如果所述代码文件通过编译并能够正确运行,则可以认为所述集群环境支持运行与所述待测通信库对应的目标程序。
64.步骤230、根据所述目标程序的代码文件,部署集群环境中各节点之间,以及各节点与对应的加速卡之间的通信方式,以使所述集群环境中包括的全部节点,根据所述通信方式,完成与所述深度学习模型对应的分布训练任务。
65.步骤240、获取所述目标程序的代码文件,并利用预设的转码工具对所述代码文件进行转换,得到转码文件。
66.在本实施例中,如果所述集群环境不支持运行与所述待测通信库对应的目标程序,则需要将所述待测通信库的代码文件转换为与所述集群环境相适配的代码文件。
67.在一个具体的实施例中,如果所述集群环境基于rocm平台构建,且所述目标程序为cuda程序,则可以从cuda平台中获取所述目标程序的代码文件,然后采用预设的转码工具将代码文件中的cuda代码转换为适用于rocm平台的hip代码,得到转码文件。具体的,所述转码工具可以是hip工具中的hipify

perl。
68.步骤250、对所述转码文件进行编译,将通过编译并能够正确运行的所述转码文件迁移至所述集群环境。
69.在此步骤中,可以根据与转码文件对应的编译规则,对所述转码文件进行编译,并将通过编译并能够正确运行的所述转码文件迁移至所述集群环境。这样设置的好处在于,可以避免转码文件一旦在所述集群环境中运行错误,导致纠错难度较大的问题。
70.步骤260、根据所述转码文件,部署集群环境中各节点之间,以及各节点与对应的加速卡之间的通信方式,以使所述集群环境中包括的全部节点,根据所述通信方式,完成与所述深度学习模型对应的分布训练任务。
71.步骤270、通过所述集群环境中包括的全部节点,根据待测通信库,完成与所述深
度学习模型对应的分布训练任务;各所述节点中部署至少一块加速卡。
72.在此步骤中,可以将与所述深度学习模型对应的训练任务分布至各个节点中,各个节点之间,以及各节点与对应的加速卡之间可以根据所述待测通信库确定的通信方式进行通信,每个节点与对应的加速卡通过执行各自的训练任务,可以实现所述集群环境对所述深度学习模型进行分布训练。
73.在本发明实施例的一个实施方式中,通过所述集群环境中包括的全部节点,根据待测通信库,完成与所述深度学习模型对应的分布训练任务,包括:
74.步骤271、获取与所述深度学习模型对应的多个训练任务,根据所述集群环境的拓扑结构以及集群规模,将各所述训练任务分配至所述集群环境中对应的节点中;
75.在此步骤中,可选的,可以根据与所述深度学习模型对应的分布式学习框架(典型的,例如pytorch框架),获取与所述深度学习模型对应的多个训练任务,然后根据各训练任务之间的依赖关系,将各训练任务分配至所述集群环境中的主节点或者与主节点对应的从节点中。其中,如果对一个任务执行之前需要等待另外的一个任务的执行完成,则可以确定这两个任务之间具有依赖关系,也即,从节点对应的训练任务需要依赖主节点对应的训练任务。
76.步骤272、获取与所述深度学习模型对应的多个训练数据,根据所述集群环境的拓扑结构以及集群规模,将各所述训练数据分配至所述集群环境中对应的节点中;
77.在此步骤中,可以将与所述深度学习模型对应的多个训练数据,分配至集群环境中的主节点中,由主节点将所述多个训练数据分配至对应的各从节点中。
78.在一个具体的实施例中,假设所述深度学习模型为图像分类模型,则与所述深度学习模型对应的训练数据可以为图像样本数据;如果所述深度学习模型为语音识别模型,则与所述深度学习模型对应的训练数据可以为语音样本数据。
79.步骤273、通过所述集群环境中的至少一个主节点,以及与所述主节点对应的至少一个从节点,根据各节点对应的训练任务、训练数据,以及待测通信库,对所述深度学习模型进行训练,以完成与所述深度学习模型对应的分布训练任务。
80.在此步骤中,从节点执行完各自分配的训练任务后,可以将训练后的模型梯度返回给主节点,主节点接收到各从节点反馈的模型梯度后,可以对各模型梯度进行汇总处理,计算并更新模型梯度,然后将更新后的模型梯度反馈给对应的各从节点,以使各从节点继续执行各自分配的训练任务,对所述深度学习模型进行迭代训练,直至所述深度学习模型的收敛性满足预设要求。
81.在一个具体的实施例中,通过所述集群环境对所述深度学习模型进行训练的过程中,可以通过训练优化器(典型的,例如adam优化器)对模型参数进行更新。
82.在本实施例中,集群环境中的每个节点,以及各节点中部署的每块加速卡都携带唯一标识信息,由此集群中的各节点之间,以及各加速卡之间都可以根据所述标识信息进行有序地通信与信息同步。
83.步骤280、获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练结果数据,并根据所述训练结果数据,评估所述待测通信库针对所述集群环境,以及所述深度学习模型的通信性能。
84.在本发明实施例的一个实施方式中,获取所述集群环境在使用所述待测通信库
下,对所述深度学习模型的训练结果数据,包括:获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练过程中单位时间内处理的训练数据的数量;和/或,获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练耗时。
85.在一个具体的实施例中,假设所述深度学习模型为图像分类模型,则可以获取所述集群环境在单位时间内处理的图像样本数据的数量;如果所述深度学习模型为语音识别模型,则可以获取所述集群环境在单位时间内处理的语音样本数据的数量。其中,所述集群环境在单位时间内处理的训练数据的数量越多,则可以说明待测通信库针对所述集群环境,以及所述深度学习模型的通信性能越好。
86.本发明实施例的技术方案根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境,并判断集群环境是否支持运行与待测通信库对应的目标程序,若是,则根据目标程序的代码文件,部署集群环境中各节点之间,以及各节点与对应的加速卡之间的通信方式,若否,则获取目标程序的代码文件,并利用预设的转码工具对代码文件进行转换得到转码文件,然后对转码文件进行编译,将通过编译并能够正确运行的转码文件迁移至集群环境,并根据转码文件部署集群环境中各节点之间,以及各节点与对应的加速卡之间的通信方式,然后通过集群环境中包括的全部节点,根据待测通信库,完成与深度学习模型对应的分布训练任务,最后获取集群环境在使用待测通信库下,对深度学习模型的训练结果数据,并根据训练结果数据,评估待测通信库针对集群环境,以及深度学习模型的通信性能的技术手段,可以有效验证分布式通信库在异构计算环境中的适用性,便于用户根据性能测试结果选择与异构计算环境匹配的最优的分布式通信库,进而可以提高深度学习模型的训练效率。
87.在上述实施例的基础上,本实施例提供的分布式通信库的性能测试方法还包括:部署多个不同的集群环境,每种集群环境的拓扑结构以及集群规模均不同;通过各所述集群环境中包括的全部节点,根据不同的待测通信库,完成与多种深度学习模型对应的分布训练任务;获取各所述集群环境在使用各待测通信库下,对各深度学习模型的训练结果数据,并根据所述训练结果数据,衡量各所述待测通信库针对不同的集群环境,以及不同的深度学习模型之间的通信性能的差异。
88.在本实施例中,可以部署多个不同的集群环境,通过各集群环境中包括的全部节点,根据不同的待测通信库,完成与多种深度学习模型对应的分布训练任务。其中,不同的深度学习模型对应的训练网络中计算任务与通信任务之间的占比均不同。
89.在一个具体的实施例中,假设深度学习模型为图片分类模型,则该深度学习模型的训练任务中计算任务的数量可以小于通信任务的数量;假设深度学习模型为姿态估计模型,则该深度学习模型的训练任务中计算任务的数量可以大于通信任务的数量。
90.在本实施例中,通过各集群环境中包括的全部节点,根据不同的待测通信库,完成与多种深度学习模型对应的分布训练任务之后,可以获取各所述集群环境在使用各待测通信库下,对各深度学习模型的训练结果数据,并将所述训练结果数据与标准训练结果数据进行比较,根据比较结果,衡量各所述待测通信库针对不同的集群环境,以及不同的深度学习模型之间的通信性能的差异。
91.其中,所述标准训练结果数据可以为单个设备(所述设备中部署预设数量的加速卡)对深度学习模型的训练结果数据。
92.在本发明实施例的一个实施方式中,在根据所述训练结果数据,衡量各所述待测通信库针对不同的集群环境,以及不同的深度学习模型之间的通信性能的差异之后,还包括:根据各所述待测通信库针对不同的集群环境,以及不同的深度学习模型的通信性能,构建通信库性能查询表;响应于用户对通信库的推荐请求,根据所述推荐请求以及所述通信库性能查询表向用户推荐匹配的通信库;其中,所述推荐请求中包括待训练的目标深度学习模型,以及用于对目标深度学习模型进行分布训练的目标集群环境。
93.在一个具体的实施例中,所述通信库性能查询表中记录了不同通信库针对不同的集群环境,以及不同的训练网络的通信性能,不同的训练网络中计算任务与通信任务之间的占比均不同。表1是本实施例一种通信库性能查询表的示意图,如表1所示,以训练网络为resnet50、vgg16、inception_v3为例,所述通信库性能查询表中可以记录了不同的通信库(如horovod、nccl以及gloo)针对不同的集群环境,以及不同的训练网络的通信性能。其中,通过百分比的数值大小,来衡量不同通信性能的优劣,百分比数值越大,通信性能越优。
94.在检测到用户提出推荐请求之后,可以根据推荐请求中的目标深度学习模型,获取对应的目标训练网络,然后根据所述目标训练网络中计算任务与通信任务之间的占比,在通信库性能查询表中查找相同占比的训练网络,并根据所述训练网络以及目标集群环境,在通信库性能查询表中确定最优的通信库(也即,百分比最大的通信库),并将所述通信库推荐给用户。
95.表1
[0096][0097]
其中,表1中展示的通信库针对集群环境以及训练网络的通信性能的具体数值仅作为示例,本实施例对此并不进行限制。
[0098]
图3为本发明实施例提供的一种分布式通信库的性能测试装置的结构图,该装置
包括:环境部署模块310、训练模块320和性能评估模块330。
[0099]
其中,环境部署模块310,用于根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境;
[0100]
训练模块320,用于通过所述集群环境中包括的全部节点,根据待测通信库,完成与所述深度学习模型对应的分布训练任务;各所述节点中部署至少一块加速卡;
[0101]
性能评估模块330,用于获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练结果数据,并根据所述训练结果数据,评估所述待测通信库针对所述集群环境,以及所述深度学习模型的通信性能。
[0102]
本发明实施例的技术方案根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境,然后通过集群环境中包括的全部节点,根据待测通信库,完成与深度学习模型对应的分布训练任务,并获取集群环境在使用待测通信库下,对深度学习模型的训练结果数据,最后根据训练结果数据,评估待测通信库针对集群环境,以及深度学习模型的通信性能的技术手段,可以有效验证分布式通信库在异构计算环境中的适用性,便于用户根据性能测试结果选择与异构计算环境匹配的最优的分布式通信库,进而可以提高深度学习模型的训练效率。
[0103]
在上述各实施例的基础上,训练模块320,可以包括:
[0104]
通信库判断单元,用于判断所述集群环境是否支持运行与所述待测通信库对应的目标程序;
[0105]
第一通信方式确定单元,用于所述集群环境支持运行与所述待测通信库对应的目标程序时,根据所述目标程序的代码文件,部署集群环境中各节点之间,以及各节点与对应的加速卡之间的通信方式,以使所述集群环境中包括的全部节点,根据所述通信方式,完成与所述深度学习模型对应的分布训练任务;
[0106]
转码单元,用于所述集群环境不支持运行与所述待测通信库对应的目标程序时,获取所述目标程序的代码文件,并利用预设的转码工具对所述代码文件进行转换,得到转码文件;
[0107]
编译单元,用于对所述转码文件进行编译,将通过编译并能够正确运行的所述转码文件迁移至所述集群环境;
[0108]
第二通信方式确定单元,用于根据所述转码文件,部署集群环境中各节点之间,以及各节点与对应的加速卡之间的通信方式,以使所述集群环境中包括的全部节点,根据所述通信方式,完成与所述深度学习模型对应的分布训练任务;
[0109]
任务分配单元,用于获取与所述深度学习模型对应的多个训练任务,根据所述集群环境的拓扑结构以及集群规模,将各所述训练任务分配至所述集群环境中对应的节点中;
[0110]
数据分配单元,用于获取与所述深度学习模型对应的多个训练数据,根据所述集群环境的拓扑结构以及集群规模,将各所述训练数据分配至所述集群环境中对应的节点中;
[0111]
节点训练单元,用于通过所述集群环境中的至少一个主节点,以及与所述主节点对应的至少一个从节点,根据各节点对应的训练任务、训练数据,以及待测通信库,对所述深度学习模型进行训练,以完成与所述深度学习模型对应的分布训练任务。
[0112]
性能评估模块330,可以包括:
[0113]
数量获取单元,用于获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练过程中单位时间内处理的训练数据的数量;
[0114]
耗时获取单元,用于获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练耗时。
[0115]
所述分布式通信库的性能测试装置,还可以包括:
[0116]
多个集群部署模块,用于部署多个不同的集群环境,每种集群环境的拓扑结构以及集群规模均不同;
[0117]
多个集群训练模块,用于通过各所述集群环境中包括的全部节点,根据不同的待测通信库,完成与多种深度学习模型对应的分布训练任务;
[0118]
性能衡量模块,用于获取各所述集群环境在使用各待测通信库下,对各深度学习模型的训练结果数据,并根据所述训练结果数据,衡量各所述待测通信库针对不同的集群环境,以及不同的深度学习模型之间的通信性能的差异;
[0119]
所述性能衡量模块,还可以包括:
[0120]
查询表构建单元,用于根据各所述待测通信库针对不同的集群环境,以及不同的深度学习模型的通信性能,构建通信库性能查询表;
[0121]
通信库推荐单元,用于响应于用户对通信库的推荐请求,根据所述推荐请求以及所述通信库性能查询表向用户推荐匹配的通信库;
[0122]
其中,所述推荐请求中包括待训练的目标深度学习模型,以及用于对目标深度学习模型进行分布训练的目标集群环境。
[0123]
本发明实施例所提供的分布式通信库的性能测试装置可执行本发明任意实施例所提供的分布式通信库的性能测试方法,具备执行方法相应的功能模块和有益效果。
[0124]
图4为本发明实施例提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;计算机设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例中的一种分布式通信库的性能测试方法对应的程序指令/模块(例如,一种分布式通信库的性能测试装置中的环境部署模块310、训练模块320和性能评估模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的一种分布式通信库的性能测试方法。也即,该程序被处理器执行时实现:
[0125]
根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境;
[0126]
通过所述集群环境中包括的全部节点,根据待测通信库,完成与所述深度学习模型对应的分布训练任务;各所述节点中部署至少一块加速卡;
[0127]
获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练结果数据,并根据所述训练结果数据,评估所述待测通信库针对所述集群环境,以及所述深度学习模型的通信性能。
[0128]
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入,可以包括键盘和鼠标等。输出装置440可包括显示屏等显示设备。
[0129]
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述方法。当然,本发明实施例所提供的一种计算机可读存储介质,其可以执行本发明任意实施例所提供的一种分布式通信库的性能测试方法中的相关操作。也即,该程序被处理器执行时实现:
[0130]
根据预设的拓扑结构以及集群规模,构建用于对深度学习模型进行分布训练的集群环境;
[0131]
通过所述集群环境中包括的全部节点,根据待测通信库,完成与所述深度学习模型对应的分布训练任务;各所述节点中部署至少一块加速卡;
[0132]
获取所述集群环境在使用所述待测通信库下,对所述深度学习模型的训练结果数据,并根据所述训练结果数据,评估所述待测通信库针对所述集群环境,以及所述深度学习模型的通信性能。
[0133]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0134]
值得注意的是,上述一种分布式通信库的性能测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0135]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献