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

一种自动化测试方法、装置,主机及存储介质与流程

2022-09-14 18:57:16 来源:中国专利 TAG:


1.本技术涉及自动化测试技术领域,具体而言,涉及一种自动化测试方法、装置,主机及存储介质。


背景技术:

2.gpu(graphics processing unit,图形处理器)是一种专门在计算机、工作站、游戏设备、服务器上进行图像运算的处理器。目前,gpu已经应用到各个领域,而如何使用大量gpu快速处理海量数据成为研究者们越来越关注的问题。gpu direct rdma(remote direct memory access,远程直接内存访问)是一种多机gpu通信的新技术,然而,在此技术下,工作人员在对gpu进行传输性能测试时,需要人为的进行ip配置、测试用例的导入、导出检测结果等繁琐的流程。该方式需要耗费大量的人力,且测试效率低。


技术实现要素:

3.本技术实施例的目的在于提供一种自动化测试方法、装置,主机及存储介质,以减少对于多机gpu通信传输性能测试的人工干预,提高测试效率。
4.本发明是这样实现的:
5.第一方面,本技术实施例提供一种自动化测试方法,应用于通信系统中的主机,所述通信系统中包括至少一个与主机通信连接的计算机设备,所述方法包括:所述主机的控制器在接收到用户发起的测试指令后,执行传输业务脚本,将业务任务下发至所述主机的目标图形处理器;所述目标图形处理器在接收到所述业务任务后,执行通信测试脚本,将所述业务任务对应的处理数据基于所配置的传输方式传输至所述计算机设备中的图形处理器中,所述处理数据通过所述主机的网卡配置的rdma传输协议进行传输;所述控制器在接收到所述计算机设备的处理结果后,输出整个通信测试回路的测试结果。
6.在本技术实施例中,通过预先配置的传输业务脚本以及通信测试脚本,使得主机能够自动的测试自身与其他计算机设备之间的图形处理器的通信传输性能,进而减少人工干预,提高测试效率。并且,传输业务脚本可以配置不同的业务任务,通信测试脚本可以配置不同的传输方式,以便于后续工作人员能够多方面地验证图形处理器跨机通信下的通信传输性能。
7.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述目标图形处理器在接收到所述业务任务后,执行通信测试脚本,将所述业务任务对应的处理数据基于所配置的传输方式传输至所述计算机设备中的图形处理器中,包括:所述目标图形处理器在接收到所述业务任务后,执行所述通信测试脚本,将所述业务任务对应的处理数据传输至所述主机的其他图形处理器中,以使所述主机的其他图形处理器在进行业务处理后,将处理后的处理数据传输至所述计算机设备中的图形处理器中。
8.在本技术实施例中,通信测试脚本配置的传输对象还包括主机自身的其他图形处理器,以实现对自身包括多图形处理器的应用场景下的通信传输性能的自动测试。
9.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述通信测试脚本中配置有指定的多个图形处理器参加协作以及传输能力等级;其中,所述传输能力等级表征数据传输速率的快慢。
10.在本技术实施例中,通信测试脚本中配置有指定的多个图形处理器参加协作以及传输能力等级,以通过所配置的参数来测试在不同传输条件下的通信传输性能,进而实现多方面地验证图形处理器跨机通信下的通信传输性能。
11.结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述目标图形处理器执行所述通信测试脚本之前,所述方法还包括:所述目标图形处理器执行检测脚本,检测自身的状态性能是否达标;当所述状态性能未达标时,基于所述检测脚本所配置的调优方式进行调优,直至所述状态性能达标。
12.由于图形处理器的自身状态性能对测试结果的影响较大,因此,在本技术实施例中,目标图形处理器会先执行检测脚本,检测自身的状态性能是否达标;且当状态性能未达标时,基于检测脚本所配置的调优方式进行调优,通过该方式,一来可以保证所测试的图形处理器在性能上得到提升,使得其符合测试标准,二来通过自动化的检测与调优方式,减少人工干预,提高测试效率,三来,测试的结果可以与图形处理器的状态性能所对应,以便于从图形处理器自身的状态性能的角度验证图形处理器跨机通信下的通信传输性能。
13.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述检测脚本所配置的调优方式包括修改bios选项和/或设置使能模式。
14.在本技术实施例中,通过自动地修改bios选项和/或设置使能模式,以使图形处理器在性能上得到稳定提升。
15.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述修改bios选项包括:开启超线程选项和/或关闭ecc自动纠错选项。
16.在本技术实施例中,通过开启超线程选项,可以释放更多的虚拟核心,通过关闭ecc自动纠错选项,可以使得图形处理器之间的数据流动更快。
17.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述通信测试脚本为基于nccl和openmpi编写的shell脚本。
18.其中,nccl为基于cuda实现的多机通信库,openmpi用于实现多机通信,进而通过基于nccl和openmpi编写的shell脚本可以使得基于该脚本的测试中,处理数据达到无损传输,利用cuda也可以使得算力得到显著提升。
19.第二方面,本技术实施例提供一种自动化测试装置,应用于通信系统中的主机,所述通信系统中包括至少一个与主机通信连接的计算机设备,所述装置包括:传输业务模块,用于在接收到用户发起的测试指令后,执行传输业务脚本,将业务任务下发至所述主机的目标图形处理器;通信测试模块,用于在接收到所述业务任务后,执行通信测试脚本,将所述业务任务对应的处理数据基于所配置的传输方式传输至所述计算机设备中的图形处理器中,所述处理数据通过所述主机的网卡配置的rdma传输协议进行传输;输出模块,用于在接收到所述计算机设备的处理结果后,输出整个通信测试回路的测试结果。
20.第三方面,本技术实施例提供一种主机,包括:控制器和目标图形处理器,所述处理器和所述目标图形处理器连接;所述控制器用于在接收到用户发起的测试指令后,执行传输业务脚本,将业务任务下发至所述主机的目标图形处理器;所述目标图形处理器用于
在接收到所述业务任务后,执行通信测试脚本,将所述业务任务对应的处理数据基于所配置的传输方式传输至计算机设备中的图形处理器中,所述处理数据通过所述主机的网卡配置的rdma传输协议进行传输;所述控制器还用于在接收到所述计算机设备的处理结果后,输出整个通信测试回路的测试结果。
21.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
附图说明
22.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
23.图1为本技术实施例提供的一种通信系统的模块框图。
24.图2为本技术实施例提供的一种自动化测试方法的步骤流程图。
25.图3为本技术实施例提供的又一种通信系统的模块框图。
26.图4为本技术实施例提供的又一种自动化测试方法的步骤流程图。
27.图5为本技术实施例提供的一种自动化测试装置的模块框图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
29.本技术实施例提供一种通信系统,该系统包括主机和计算机设备。主机与计算机设备之间通信连接。
30.需要说明的是,主机可以和计算机设备为相同的设备,也可以是不同的设备。具体的,主机和计算机设备可以是个人计算机或者服务器、本技术不作限定。如,主机为计算机、计算机设备为服务器,当然,也可以是主机和计算机设备均为计算机。相应的,该系统中计算机设备还可以为多个,本技术也不作限定。
31.如图1所示,通信系统可以包括主机server1和计算机设备server2,主机server1和计算机设备server2之间通信连接。当然,通信系统还可以包括三个、四个计算机设备,本技术不作限定。
32.主机server1和计算机设备server2均包括至少一个控制器、至少一个图形处理器以及网卡。控制器、图形处理器以及网卡直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接,通讯总线可以是但不限于pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)。
33.于本身申请实施例中,控制器可以是cpu(central processing unit,中央处理器)、图形处理器可以是gpu。主机server1和计算机设备server2之间可以通过网卡以实现通信连接。
34.在主机server1和计算机设备server2中,cpu配置有对应的系统内存,gpu配置有
对应的gpu存储器。
35.当然,在其他实施例中。处理器也可以是其他通用处理器,例如,可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
36.于本技术实施例中,主机server1和计算机设备server2的gpu可以通过gpu direct rdma实现gpu跨机通信。
37.需要说明的是,图1所示的通信系统的结构仅为示意,本技术实施例提供的通信系统还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。
38.请参阅图2,图2为本技术实施例提供的自动化测试方法的步骤流程图,该方法应用于图1所示的通信系统中的主机。需要说明的是,本技术实施例提供的自动化测试方法不以图2及以下所示的顺序为限制,该方法包括:步骤s101-步骤s103。
39.步骤s101:主机的控制器在接收到用户发起的测试指令后,执行传输业务脚本,将业务任务下发至主机的目标图形处理器。
40.需要说明的是,用户在发起测试指令之前,需要先进行系统环境的搭建。
41.一实施例中,该方法结合cuda(compute unified device architecture,通用并行计算平台)实现,在主机上下载并安装cuda后,将环境变量添加到主机的系统中。比如,本技术实施例中,可以利用nccl(nvidia collective multi-gpu communication library,集合通信库)中的传输方式实现跨机图形处理器之间的通信。nccl为基于cuda实现的多机通信库。示例性的,后续的测试中,若是采用nccl中的all reduce方式实现跨机图形处理器之间的通信,在环境变量为all reduce接口地址;若是采用nccl中的broadcast方式实现跨机图形处理器之间的通信,在环境变量为broadcast接口地址。当然,通信系统中的其他计算机设备也可以完成上述系统环境的搭建。
42.一实施例中,通信系统中通过配置openmpi(消息传递库)实现多机(不同计算机设备)、多线程(多个图形处理器同时传输)连通。openmpi是mpi(信息传递接口)接口常用的实现之一。
43.一实施例中,为了实现gpu direct rdma加速多机通信,网卡采用infiniband(ib)网卡作为跨机图形处理器之间的通信桥梁。
44.当然,用户还需要预先编写好测试脚本,并导入到主机中,于本技术实施例中,测试脚本包括传输业务脚本以及通信测试脚本。传输业务脚本用于实现业务任务的下发。通信测试脚本用于实现处理数据通过图形处理器的跨机传输。
45.一实施例中,通信测试脚本为基于nccl和openmpi编写的shell脚本。由于nccl为基于cuda实现的多机通信库,openmpi可以用于实现多机通信,通过基于nccl和openmpi编写的shell脚本可以使得基于该脚本的测试中,处理数据达到无损传输,利用cuda也可以使得算力得到显著提升。
46.当然,在其他实施例中,通信测试脚本也可以为expect脚本,本技术不作限定。
47.在完成上述系统环境的搭建后,用户可以向主机发起测试指令。主机的控制器在接收到用户发起的测试指令后,执行传输业务脚本,将业务任务下发至主机的目标图形处
理器。
48.传输业务脚本中配置有需要运行的业务任务的主程式。业务任务可以是图像处理任务,比如图像的解析、图像的渲染、图像的分割等等,对于业务任务,本技术不作限定。需要说明的是,传输业务脚本中可以预先配置有指定的图形处理器作为上述目标图形处理器。即,通过传输业务脚本以实现控制器将业务任务下发至主机中指定的图形处理器。
49.步骤s102:目标图形处理器在接收到业务任务后,执行通信测试脚本,将业务对应的处理数据基于所配置的传输方式传输至计算机设备中的图形处理器中,其中,处理数据通过主机的网卡配置的rdma传输协议进行传输。
50.即,目标图形处理器在接收到业务任务后,执行通信测试脚本,比如通过调用nccl的all reduce接口发起本次数据通信,然后通过网卡所配置的rdma协议及openmpi的mpi协议将处理数据发送至其他计算机设备中的图形处理器中。
51.以图1为例,主机server1的gpu通过调用nccl的all reduce接口的通信方式,将处理数据直接从gpu存储器中的处理数据发送到主机server1的网卡中,主机server1的网卡通过rdma协议及openmpi的mpi协议将处理数据发送至计算机设备server2的gpu中。
52.可选地,上述步骤s102还可以具体包括:目标图形处理器在接收到业务任务后,执行通信测试脚本,将业务任务对应的处理数据传输至主机的其他图形处理器中,以使主机的其他图形处理器在进行业务处理后,将处理后的处理数据传输至计算机设备中的图形处理器中。
53.也即,目标图形处理器用于在接收到业务任务后,执行通信测试脚本,并将业务对应的处理数据基于通信测试脚本所配置的传输方式先传输至自身设备中的其他图形处理器,然后再由传输至的自身的最后一个图形处理器,将处理后的处理数据传输至计算机设备中的图形处理器中。
54.需要说明的是,当传输方式为all reduce方式时,目标图形处理器先将处理数据依次传输至自身设备的其他图形处理器中。即,目标图形处理器将处理数据先传输至自身设备的其他图形处理器,然后再由自身设备的其他图形处理器将处理数据通过网卡所配置的rdma协议及openmpi的mpi协议将处理数据发送至其他计算机设备中的图形处理器中。即,处理数据依次经过计算机设备自身的图形处理器,然后由最后一个图形处理器将其传输至网卡,由网卡发送至其他计算机设备中的图形处理器中。
55.以图3为例,当传输方式为all reduce方式时,目标图形处理器gpu1先将处理数据传输gpu2中,然后由gpu2执行通信测试脚本,将处理数据发送至网卡1,由网卡1将处理数据发送至其他计算机设备server2中的gpu3中。
56.可见,在本技术实施例中,通信测试脚本配置的传输对象还包括主机自身的其他图形处理器,以实现对自身包括多图形处理器的应用场景下的通信传输性能的自动测试。
57.可选地,通信测试脚本中配置有指定的多个图形处理器参加协作以及传输能力等级。其中,传输能力等级表征数据传输速率的快慢。
58.也即,通信测试脚本中可以配置指定的需要参与业务任务的图形处理器,比如通信测试脚本中可以配置gpu2、gpu3和gpu4(如图3所示)为参加协作的图形处理器,进而使得gpu2、gpu3和gpu4参与到业务任务中。具体的,可以通过配置cuda_visiable_device指定参与通信的图形处理器。
59.上述的传输等级用以微调通信过程中的设备实际发挥的性能,以及对后续通信传输性能的验证。比如,配置的传输等级越高,表征当前需要数据传输速率越高。后续可以根据测试结果来判断是否符合所配置的传输等级。
60.在本技术实施例中,通信测试脚本中配置有指定的多个图形处理器参与协作以及传输等级,以通过所配置的参数来测试在不同传输条件下的通信传输性能,进而实现多方面地验证图形处理器跨机通信下的通信传输性能。
61.步骤s103:控制器在接收到计算机设备的处理结果后,输出整个通信测试回路的测试结果。
62.上述的测试结果包括但不限于通信带宽、通信延迟。
63.在一实施例中,控制器还可以在接收中断请求后,再输出整个通信测试回路的测试结果。
64.综上,在本技术实施例中,通过预先配置的传输业务脚本以及通信测试脚本,使得主机能够自动的测试自身与其他计算机设备之间的图形处理器的通信传输性能,进而减少人工干预,提高测试效率。并且,传输业务脚本可以配置不同的业务任务,通信测试脚本可以配置不同的传输方式,以便于后续工作人员能够多方面地验证图形处理器跨机通信下的通信传输性能。
65.可选地,在上述步骤s102目标图形处理器执行通信测试脚本之前,该方法还包括:目标图形处理器执行检测脚本,检测自身的状态性能是否达标;当状态性能未达标时,基于检测脚本所配置的调优方式进行调优,直至状态性能达标。
66.也即,目标图形处理器执行检测脚本,首先检测自身的状态性能是否达标。若达标,则直接执行步骤s102的动作,若未达标,则基于检测脚本所配置的调优方式进行调优,在调优后,再次确定自身的状态性能是否达标。需要说明的是,只有在自身的状态性能达标后,才执行步骤s102的动作。
67.可选地,检测脚本所配置的调优方式包括修改bios(basic input output system,基本输入输出系统)选项和/或设置使能模式。
68.在本技术实施例中,通过自动地修改bios选项和/或设置使能模式,以使图形处理器在性能上得到稳定提升。
69.具体的,上述修改bios选项可以包括:开启超线程选项和/或关闭ecc(error correcting code,错误检测和纠正)自动纠错选项。
70.需要说明的是,通过开启超线程选项,可以释放更多的虚拟核心,通过关闭ecc自动纠错选项,可以使得图形处理器之间的数据流动更快。
71.需要说明的是,检测脚本可以同时配置多种调优方式,在每次调优时,同时采用多种调优方式进行调优。当然,检测脚本也可以同时配置多种调优方式,但是在每次调优时,仅采用其中的一种调优方式进行调优。
72.示例性的,当目标图形处理器在执行检测脚本,检测自身的状态性能未达标时,可以采用检测脚本配置的多种调优方式中的任意一种调优方式进行调优,然后再次检测自身的状态性能是否达标,若是自身的状态性能仍未达标,再从检测脚本配置的多种调优方式中的剩余的调优方式中选择一种调优方式进行调优。上述的选择方式可以是随机选择,也可以是按照配置的顺序进行依次选择,本技术不作限定。
73.其中,检测脚本还被配置为确定调优方式是否生效。
74.对于修改bios选项的操作是否生效,可以直接通过管理界面确定bios选项是否生效。针对开启超线程选项,可以通过linux(一种操作系统)下htop指令确定cpu的核心数是否是物理核心的两倍来确认调优是否生效。
75.对于使能模式是否生效,可以通过监控工具进行判断,如在linux下输入指令nvidia-smi,通过返回弹窗中persistence mode是否为enable来确认调优是否生效。
76.综上,由于图形处理器的自身状态性能对测试结果的影响较大,因此,在本技术实施例中,目标图形处理器会先执行检测脚本,检测自身的状态性能是否达标;且当状态性能未达标时,基于检测脚本所配置的调优方式进行调优,通过该方式,一来可以保证所测试的图形处理器在性能上得到提升,使得其符合测试标准,二来通过自动化的检测与调优方式,减少人工干预,提高测试效率,三来,测试的结果可以与图形处理器的状态性能所对应,以便于从图形处理器自身的状态性能的角度验证图形处理器跨机通信下的通信传输性能。
77.请参阅图4,图4为本技术实施例提供的自动化测试方法的完整流程,具体包括:用户在发起测试指令后,主机中的目标图形处理器首先执行检测脚本,检测自身的状态性能是否达标;当状态性能未达标时,基于检测脚本所配置的调优方式进行调优,直至状态性能达标。比如,目标图形处理器依次执行开启超线程选项、设置使能模式及关闭ecc自动纠错选项。当状态性能达标时,主机的控制器执行传输业务脚本,将业务任务下发至主机的目标图形处理器;目标图形处理器在接收到业务任务后,执行通信测试脚本,将业务任务对应的处理数据传输至主机的其他图形处理器中,以使主机的其他图形处理器在进行业务处理后,将处理后的处理数据传输至计算机设备中的图形处理器中;最后,主机的控制器在接收到计算机设备的处理结果后,输出整个通信测试回路的测试结果。
78.请参阅图5,基于同一发明构思,本技术实施例还提供一种自动化测试装置200,该装置包括:
79.传输业务模块210,用于在接收到用户发起的测试指令后,执行传输业务脚本,将业务任务下发至所述主机的目标图形处理器。
80.通信测试模块220,用于在接收到所述业务任务后,执行通信测试脚本,将所述业务任务对应的处理数据基于所配置的传输方式传输至所述计算机设备中的图形处理器中,所述处理数据通过所述主机的网卡配置的rdma传输协议进行传输。
81.输出模块230,用于在接收到所述计算机设备的处理结果后,输出整个通信测试回路的测试结果。
82.可选地,通信测试模块220还具体用于在接收到所述业务任务后,执行所述通信测试脚本,将所述业务任务对应的处理数据传输至所述主机的其他图形处理器中,以使所述主机的其他图形处理器在进行业务处理后,将处理后的处理数据传输至所述计算机设备中的图形处理器中。
83.可选地,所述通信测试脚本中配置有指定的多个图形处理器参加协作以及传输能力等级;其中,所述传输能力等级表征数据传输速率的快慢。
84.可选地,该装置还包括:检测模块。
85.检测模块用于在所述目标图形处理器执行所述通信测试脚本之前,执行检测脚本,检测自身的状态性能是否达标;当所述状态性能未达标时,基于所述检测脚本所配置的
调优方式进行调优,直至所述状态性能达标。
86.可选地,所述检测脚本所配置的调优方式包括修改bios选项和/或设置使能模式。
87.可选地,所述修改bios选项包括:开启超线程选项和/或关闭ecc自动纠错选项。
88.可选地,所述通信测试脚本为基于nccl和openmpi编写的shell脚本。
89.需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
90.基于同一发明构思,本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
91.该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
92.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
93.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
94.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
95.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
96.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献