CN114285766B - 一种网络带宽检测方法、装置、电子设备和存储介质 - Google Patents
一种网络带宽检测方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114285766B CN114285766B CN202110959512.0A CN202110959512A CN114285766B CN 114285766 B CN114285766 B CN 114285766B CN 202110959512 A CN202110959512 A CN 202110959512A CN 114285766 B CN114285766 B CN 114285766B
- Authority
- CN
- China
- Prior art keywords
- network bandwidth
- data transmission
- algorithm
- data packet
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种网络带宽检测方法、装置、电子设备和存储介质,所述方法包括:确定多个图形处理器间的目标通信链路和多个图形处理器间的目标数据传输算法。在多个图形处理器对深度学习模型进行训练的过程中,确定多个图形处理器中基于所述目标数据传输算法,在目标通信链路上传输数据的目标图形处理器。对目标图形处理器间的网络带宽进行检测,得到网络带宽状态,并根据网络带宽状态,调整多个图形处理器间的数据传输任务。该方法可以检测图形处理器间的网络带宽,以及网络带宽对应的网络带宽状态,得到当前的带宽利用情况,从而对数据传输任务进行精准控制。
Description
技术领域
本申请涉及模型训练技术领域,尤其涉及一种网络带宽检测方法、装置、电子设备和存储介质。
背景技术
在多个计算设备上部署深度学习模型是训练大规模复杂模型的一种方式,随着对训练速度和训练频率的要求越来越高,在模型训练中常常需要多个图形处理器并行进行训练,因此需要考虑多个图形处理器之间的通信性能,相关技术中,通常只能检测中央处理器间的网络带宽,并不能准确的测量图形处理器间的网络带宽,因此不能准确分析出图形处理器通信的带宽利用情况,从而导致数据传输任务控制的精准性低。
发明内容
本申请提供了一种网络带宽检测方法、装置、电子设备和存储介质,可以提高图形处理器间的网络带宽检测的准确性,从而提高数据传输任务控制的精准性。
一方面,本申请提供了一种网络带宽检测方法,所述方法包括:
基于当前通信环境信息,确定多个图形处理器间的目标通信链路;
基于当前算法调用接口,确定所述多个图形处理器间的目标数据传输算法;
在所述多个图形处理器中对深度学习模型进行训练的过程中,确定所述多个图形处理器中基于所述目标数据传输算法,在所述目标通信链路上传输数据的目标图形处理器;
对所述目标图形处理器间的网络带宽进行检测,得到网络带宽状态;
根据所述网络带宽状态,调整所述多个图形处理器间的数据传输任务。
另一方面提供了一种网络带宽检测装置,所述装置包括:
通信链路确定模块,用于基于当前通信环境信息,确定多个图形处理器间的目标通信链路;
数据传输算法确定模块,用于基于当前算法调用接口,确定所述多个图形处理器间的目标数据传输算法;
目标图像处理器确定模块,用于在所述多个图形处理器中对深度学习模型进行训练的过程中,确定所述多个图形处理器中基于所述目标数据传输算法,在所述目标通信链路上传输数据的目标图形处理器;
网络带宽状态确定模块,用于对所述目标图形处理器间的网络带宽进行检测,得到网络带宽状态;
数据传输任务调整模块,用于根据所述网络带宽状态,调整所述多个图形处理器间的数据传输任务。
另一方面提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述所述的一种网络带宽检测方法。
另一方面提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述所述的一种网络带宽检测方法。
另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述网络带宽检测方法。
本申请提供的一种网络带宽检测方法、装置、电子设备和存储介质,该方法包括:确定多个图形处理器间的目标通信链路和多个图形处理器间的目标数据传输算法。在多个图形处理器对深度学习模型进行训练的过程中,确定多个图形处理器中基于所述目标数据传输算法,在目标通信链路上传输数据的目标图形处理器。对目标图形处理器间的网络带宽进行检测,得到网络带宽状态,并根据网络带宽状态,调整多个图形处理器间的数据传输任务。该方法可以检测图形处理器间的网络带宽,以及网络带宽对应的网络带宽状态,得到当前的带宽利用情况,该方法可以提高图形处理器间的网络带宽检测的准确性,从而对数据传输任务进行精准控制。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络带宽检测方法的应用场景示意图;
图2为本申请实施例提供的一种网络带宽检测方法的流程图;
图3为本申请实施例提供的一种网络带宽检测方法中主机间通信的示意图;
图4为本申请实施例提供的一种网络带宽检测方法中allgather流量模型所执行的数据传输方式示意图;
图5为本申请实施例提供的一种网络带宽检测方法中allreduce流量模型所执行的数据传输示意图;
图6为本申请实施例提供的一种网络带宽检测方法中新增数据传输算法的流程图;
图7为本申请实施例提供的一种网络带宽检测方法中得到网络带宽状态的流程图;
图8为本申请实施例提供的一种网络带宽检测方法中获得推荐项目的方法的流程图;
图9为本申请实施例提供的一种网络带宽检测方法中不同数据包对应的网络带宽的示意图;
图10为本申请实施例提供的一种网络带宽检测方法中计算预设网络带宽的流程图;
图11为本申请实施例提供的一种网络带宽检测装置的示意图;
图12为本申请实施例提供的一种用于实现本申请实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
首先对以下术语进行解释:
图形处理器:graphics processing unit,缩写为GPU,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
NCCL:Nvidia Collective multi-GPU Communication Library,是英伟达的多图形处理器多卡通信框架。
请参见图1,其显示了本申请实施例提供的一种网络带宽检测方法的应用场景示意图,所述应用场景包括模型训练服务器110和通信检测应用120,通信检测应用120基于当前通信环境信息,确定模型训练服务器110中多个图形处理器间的目标通信链路,通信检测应用120基于当前算法调用接口,确定模型训练服务器110中多个图形处理器间的目标数据传输算法。在模型训练服务器110的多个图形处理器对深度学习模型进行训练的过程中,通信检测应用120确定多个图形处理器中基于所述目标数据传输算法,在目标通信链路上传输数据的目标图形处理器。通信检测应用120对目标图形处理器间的网络带宽进行检测,得到网络带宽状态,并根据网络带宽状态,调整多个图形处理器间的数据传输任务。
在本申请实施例中,模型训练服务器110可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。模型训练服务器110可以包括有网络通信单元、处理器和存储器等等。具体的,模型训练服务器110可以用于基于图形处理器执行深度学习模型训练任务。
请参见图2,其显示了一种网络带宽检测方法,可应用于服务器侧,该方法包括:
S210.基于当前通信环境信息,确定多个图形处理器间的目标通信链路;
在一些实施例中,通信链路表征支持两个图形处理器间的数据传输的路径,通信环境信息可以为通信环境变量,通过检测当前环境变量,可以确定当前环境变量对应的通信链路,将当前环境变量对应的通信链路作为目标通信链路。
在一些实施例中,基于当前通信环境信息,确定多个图形处理器间的目标通信链路包括:
从第一预设映射关系中获取与当前通信环境信息匹配的通信链路,第一预设映射关系为通信环境信息和通信链路间的对应关系;
将匹配的通信链路作为目标通信链路。
在一些实施例中,第一预设映射关系为通信环境信息和通信链路间的对应关系,即通信环境变量和通信链路间的对应关系,通信链路可以为基于各种通信协议传输数据的数据通信链路或基于硬件传输数据的物理通信链路,数据通信链路可以为传输控制协议(Transmission Control Protocol,TCP)的通信链路,基于TCP可以通过套接字(socket)单元,在图形处理器之间通过数据通信链路进行网络通信。物理通信链路可以为远程直接数据存取(Remote Direct Memory Access,RDMA)的通信链路,如图3所示为主机间通信的示意图,基于RDMA可以在主机之间存在物理通信链路的情况下,从一个主机的主机内核直接访问另一个主机的主机内核。基于RDMA通信时,每个主机中存在两条数据传输路径,其中一条为从应用软件到用户态驱动到RDMA网卡,另一条为从应用软件传输到用户态驱动,从用户态驱动传输到操作系统内核,从操作系统内核传输到主机内核,再从主机内核传输到RDMA网卡,均不需要中央处理器(CPU)的参与。
在一些实施例中,通信环境变量可以为NCCL_SOCKET_IFNAME或NCCL_IB_DISABLE,其中,NCCL_SOCKET_IFNAME表示存在套接字,也就是可以基于网络传输协议进行通信,即可以确定此时的通信链路为经过数据通信链路进行通信。NCCL_IB指示支持TCP协议进行通信,NCCL_IB_DISABLE指示TCP协议通信不可用,即可以确定此时的通信链路为经过物理通信链路进行通信,可以直接在两个主机之间进行通信。
检测当前通信环境信息,可以根据当前通信环境信息确定目标通信链路,从而可以使得网络带宽检测支持多种通信链路,用户可以根据自己的需求设置通信链路,并检测使用该设置的通信链路对应的网络带宽,增加了网络带宽检测的适用性。
S220.基于当前算法调用接口,确定多个图形处理器间的目标数据传输算法;
在一些实施例中,目标数据传输算法表征确定两个图形处理器间的数据传输规则的算法,通过检测当前算法调用接口,可以确定当前算法调用接口对应的数据传输算法,将当前算法调用接口对应的数据传输算法作为目标数据传输算法。
在一些实施例中,基于当前算法调用接口,确定多个图形处理器间进行数据传输的目标数据传输算法包括:
从第二预设映射关系中获取与当前算法调用接口匹配的数据传输算法,第二预设映射关系为算法调用接口和数据传输算法间的对应关系;
将匹配的数据传输算法作为目标数据传输算法。
在一些实施例中,第二预设映射关系为算法调用接口和数据传输算法间的对应关系,对比当前算法调用接口和第二预设映射关系中的算法调用接口,从而可以确定与当前算法调用接口匹配的数据传输算法,将匹配的数据传输算法作为目标数据传输算法。数据传输算法包括allgather、allreduce、broadcast等不同流量模型。算法调用接口为封装了数据传输算法的函数接口,可以包括ncclBcast、ncclAllReduce、ncclAllGather等,分别与broadcast、allreduce、allgather等流量模型对应。在检测到ncclAllReduce函数接口时,则可以将ncclAllReduce函数接口对应的allreduce流量模型作为目标数据传输算法。
如图4所示为allgather流量模型所执行的数据传输方式示意图,在图形处理器包括GPU0,GPU1和GPU2的情况下,基于allgather流量模型,将GPU0中的数据传输到GPU1和GPU2中,将GPU1中的数据传输到GPU0和GPU2中,将GPU2中的数据传输到GPU0和GPU1中,在数据传输结束后,每个GPU中都具有全部的数据。如图5所示为allreduce流量模型所执行的数据传输示意图,在图形处理器包括GPU0,GPU1,GPU2和GPU3,且每个GPU中包括两个数据包的情况下,基于allreduce流量模型,GPU0通过信息传递接口(MPI)接收GPU1,GPU2和GPU3分别发送的数据,将GPU0中的第一个数据包与GPU1,GPU2和GPU3中的第一个数据包相加,将GPU0中的第二个数据包与GPU1,GPU2和GPU3中的第二个数据包相加。
通过封装算法调用接口,基于算法调用接口调用对应的数据传输算法进行数据传输,从而可以使得网络带宽检测支持多种数据传输算法,用户可以根据自己的需求设置数据传输算法,并检测使用该设置的数据传输算法时的网络带宽,从而增加了网络带宽检测的适用性。
在一些实施例中,请参见图6,该方法还包括:
S610.获取新增数据传输算法;
S620.确定新增数据传输算法对应的新增算法调用接口;
S630.根据新增数据传输算法和新增算法调用接口,更新第二预设映射关系。
在一些实施例中,在网络带宽检测方法中增加新的数据传输算法时,可以获取新增数据传输算法,对新增数据传输算法进行函数封装,得到新增数据传输算法对应的新增算法调用接口,根据新增数据传输算法和新增算法调用接口,更新预存储的第二预设映射关系。
在对网络带宽检测,并获取到新增算法调用接口时,可以从更新后的第二预设映射关系中,确定新增算法调用接口对应的新增数据传输算法,将新增数据传输算法作为目标数据传输算法。
新增数据传输算法时,需要增加新增数据传输算法对应的算法调用接口,使得用户可以根据自己的需求扩展数据传输算法,提高了网络带宽检测的可扩展性。
S230.在多个图形处理器中对深度学习模型进行训练的过程中,确定多个图形处理器中基于目标数据传输算法,在目标通信链路上传输数据的目标图形处理器;
在一些实施例中,在多个图形处理器中可以对深度学习模型进行训练,并在训练过程中,确定当前进行数据传输的图形处理器之间的网络带宽。数据传输时可以为多组数据并行传输,当前进行数据传输的图形处理器,也就是目标图像处理器至少为两个,每两个目标图像处理器进行一组数据传输。
S240.对目标图形处理器间的网络带宽进行检测,得到网络带宽状态;
在一些实施例中,在数据传输的过程中,目标图形处理器是基于目标数据传输算法,在目标通信链路上进行数据传输,所以可以调用与目标数据传输算法对应的当前算法调用接口,对基于当前算法调用接口传输的数据进行检测,得到目标图像处理器间的网络带宽,根据目标图像处理器间的网络带宽,则可以确定网络带宽状态。网络带宽状态用于指示网络带宽的带宽利用情况。
相关技术中,带宽检测可以检测点对点通信模式下的中央处理器(CPU)间的带宽,而目标数据传输算法可以执行多对多的通信模式。且在多个图形处理器中对深度学习模型进行训练的过程中,例如在数据通信链路上传输数据时,是将深度学习模型拷贝到主存储器中,再通过中央处理器进行数据传输,并在梯度通信时,通过图形处理器和中央处理器一起进行数据传输。此外,在多个图形处理器中对深度学习模型进行训练的过程中还可以采用物理通信链路进行数据传输,在物理通信链路上传输数据时,不需要中央处理器参与。因此,相关技术中应用的带宽检测方法不能实现对图形处理器进行网络带宽检测。
在一些实施例中,请参见图7,对目标图形处理器间的网络带宽进行检测,得到网络带宽状态包括:
S710.对目标图形处理器间传输的预设数据包进行解析,得到预设数据包对应的预设数据传输量;
S720.调用当前算法调用接口,对预设数据包的传输状态进行检测,得到预设数据传输量对应的数据传输时间;
S730.根据预设数据传输量和数据传输时间,得到预设数据包对应的网络带宽;
S740.将预设数据包对应的网络带宽与预设网络带宽进行比对,确定网络带宽状态。
在一些实施例中,对目标图形处理器间传输的预设数据包进行解析,可以得到预设数据包对应的预设数据传输量以及数据包的类型,分配预设数据包的缓存区。基于预设的循环调用算法,不断调用当前算法调用接口,对预设数据包的传输状态进行实时检测,可以确定预设数据包的传输开始状态和传输结束状态,根据传输开始状态和传输结束状态之间的时间差,可以得到预设数据传输量对应的数据传输时间。将预设数据传输量除以数据传输时间,可以得到当前传输的预设数据包对应的网络带宽。可以计算多个预设数据包对应的网络带宽,对多个预设数据包对应的网络带宽进行平均,得到网络带宽平均值。再将网络带宽平均值和预设网络带宽进行比对,确定网络带宽状态。
在一些实施例中,预设网络带宽为网络带宽的最大值,在预设数据包对应的网络带宽小于预设网络带宽时,可以生成指示当前带宽利用情况未达到最大利用情况的网络带宽状态,在预设数据包对应的网络带宽等于预设网络带宽时,可以生成指示当前带宽利用情况达到最大利用情况的网络带宽状态。例如,在预设数据包为680MB的情况下,不断调用当前算法调用接口,检测四个预设数据包对应的数据传输时间,得到四个数据传输时间,四个数据传输时间分别为126919μs,125281μs,125404μs和125519μs,因此得到四个预设数据包分别对应的网络带宽,分别为5.232115GB/s,5.300546GB/s,5.295381GB/s和5.290508GB/s。预设网络带宽为6GB/s时,可以确定此时预设数据包对应的网络带宽小于预设网络带宽,生成指示当前带宽利用情况未达到最大利用情况的网络带宽状态。
通过当前传输中的数据包对应的数据传输时间和数据传输量,检测网络带宽以及网络带宽对应的网络带宽状态,获取当前的带宽利用情况,可以提高网络带宽检测的及时性,从而提高了网络带宽状态的准确性。
S250.根据网络带宽状态,调整多个图形处理器间的数据传输任务。
在一些实施例中,网络带宽状态指示当前带宽利用情况未达到最大利用情况时,可以增加至少一组目标图像处理器,并行执行数据传输任务,网络带宽状态指示当前带宽利用情况达到最大利用情况时,可以减少至少一组当前正在执行数据传输任务的目标图像处理器。
在一些实施例中,请参见图8,该方法还包括:
S810.获取预设图形处理器间每一次进行数据传输时的当前数据包,当前数据包为基于预设的数据量递增算法确定的数据包;
S820.获取当前数据包对应的当前数据传输量;
S830.确定当前数据包对应的当前数据传输时间;
S840.根据当前数据传输量和当前数据传输时间,得到当前数据包对应的网络带宽;
S850.将每个当前数据包对应的网络带宽与每个当前数据包的上一个数据包对应的网络带宽进行比对;
S860.将每个当前数据包对应的网络带宽与每个当前数据包的下一个数据包对应的网络带宽进行比对;
S870.在当前数据包对应的网络带宽大于上一个数据包对应的网络带宽,且当前数据包对应的网络带宽大于下一个数据包对应的网络带宽的情况下,将当前数据包对应的网络带宽确定为预设网络带宽。
在一些实施例中,基于自动带宽检测模式,可以确定预设网络带宽。获取预设图形处理器间传输的初始数据包,对初始数据包进行解析,得到初始数据包对应的数据传输量。循环调用当前算法调用接口,对初始数据包的传输开始状态和传输结束状态进行检测,得到初始数据包对应的数据传输时间。将初始数据包对应的数据传输量除以初始数据包对应的数据传输时间,可以得到初始数据包对应的网络带宽,即第一个网络带宽。
基于预设的数据量递增算法,更新初始数据包对应的数据传输量,得到第二个数据包。循环调用当前算法调用接口,对第二个数据包的传输开始状态和传输结束状态进行检测,得到第二个数据包对应的数据传输时间。将第二个数据包对应的数据传输量除以第二个数据包对应的数据传输时间,可以得到初始数据包对应的网络带宽,即第二个网络带宽。
基于预设的数据量递增算法,更新第二个数据包对应的数据传输量,得到第三个数据包。循环调用当前算法调用接口,对第三个数据包的传输开始状态和传输结束状态进行检测,得到第三个数据包对应的数据传输时间。将第三个数据包对应的数据传输量除以第三个数据包对应的数据传输时间,可以得到初始数据包对应的网络带宽,即第三个网络带宽。
对比第二个网络带宽和第一个网络带宽,并对比第二个网络带宽和第三个网络带宽,在第二个网络带宽大于第一个网络带宽且第二个网络带宽小于第三个网络带宽的情况下,重复基于预设的数据量递增算法,更新当前数据包并计算当前数据包对应的网络带宽的步骤。
以此类推,从第二个数据包开始,在每次计算得到当前数据包对应的网络带宽时,将每个当前数据包对应的网络带宽与每个当前数据包的上一个数据包对应的网络带宽进行比对,并将每个当前数据包对应的网络带宽与每个当前数据包的下一个数据包对应的网络带宽进行比对。
在当前数据包对应的网络带宽大于上一个数据包对应的网络带宽且当前数据包对应的网络带宽小于下一个数据包对应的网络带宽的情况下,说明网络带宽还持续增长,因此可以更新当前数据包,重复计算更新后的当前数据包对应的网络带宽的步骤。也可能存在当前数据包对应的网络带宽小于上一个数据包对应的网络带宽且当前数据包对应的网络带宽小于下一个数据包对应的网络带宽的情况下,此时说明网络带宽还有可能增长,因此也可以更新当前数据包,重复计算更新后的当前数据包对应的网络带宽的步骤。
在当前数据包对应的网络带宽大于上一个数据包对应的网络带宽,且当前数据包对应的网络带宽大于下一个数据包对应的网络带宽的情况下,说明网络带宽已经达到最大值,也就是说,在这种情况下当前数据包对应的网络带宽就是网络带宽的最大值,因此,将当前数据包对应的网络带宽确定为预设网络带宽。
在一些实施例中,由于对数据包进行带宽检测时,每个数据包对应的网络带宽可能存在波动,从而在网络带宽未达到峰值时出现网络带宽最大值的情况,因此可以在当前数据包对应的网络带宽大于上一个数据包对应的网络带宽,且当前数据包对应的网络带宽大于下一个数据包对应的网络带宽时,将当前数据包作为目标数据包,还需要获取至少两次目标数据包对应的网络带宽,将每一次目标数据包对应的网络带宽进行比对,将其中的最大值确定为预设网络带宽。
在一些实施例中,请参见图9,初始数据包对应的数据传输量可以设置为0MB。对初始数据包的传输开始状态和传输结束状态进行检测,得到初始数据包对应的数据传输时间为1454μs,计算得到初始数据包对应的第一个网络带宽为0.335749GB/s。以指数递增的方式更新初始数据包对应的数据传输量,得到第二个数据包,第二个数据包中的数据传输量为1MB。检测得到第二个数据包对应的数据传输时间为2602μs,计算得到第二个数据包对应的第二个网络带宽为0.375183GB/s。继续进行计算可得,第三个数据包对应的数据传输量为2MB,对应的数据传输时间为5646μs,第三个网络带宽为0.345919GB/s。对比第二个网络带宽和第一个网络带宽,并对比第二个网络带宽和第三个网络带宽,可以得到第二个网络带宽大于第一个网络带宽,且第二个网络带宽大于第三个网络带宽,将第二个数据包作为第一个目标数据包,第二个网络带宽作为第一个目标数据包对应的网络带宽。继续进行计算,得到第四个数据包对应的数据传输量为4MB,对应的数据传输时间为5682μs,第四个网络带宽为0.687467GB/s,对比第三个网络带宽和第二个网络带宽,并对比第三个网络带宽和第四个网络带宽,可以得到第三个网络带宽小于第二个网络带宽,则继续进行计算。
以此类推,第五个数据包对应的数据传输量是8MB,对应的数据传输时间为10667μs,第六个网络带宽为0.732383GB/s。第六个数据包对应的数据传输量为16MB,对应的数据传输时间为20965μs,第六个网络带宽为0.745283GB/s。第七个数据包对应的数据传输量为32MB,对应的数据传输时间为42646μs,第六个网络带宽为0.732764GB/s。对比第六个网络带宽和第五个网络带宽,并对比第六个网络带宽和第七个网络带宽,可以得到第六个网络带宽大于第五个网络带宽,且第六个网络带宽大于第七个网络带宽,则将第六个数据包作为第二个目标数据包,第六个网络带宽作为第二个目标数据包对应的网络带宽,对比第二个网络带宽和第六个网络带宽,可以确定第六个网络带宽大于第二个网络带宽,因此可以将第六个网络带宽作为预设网络带宽。
通过逐渐增大数据传输量的方式,确定带宽利用最大化时对应的预设网络带宽,可以自动执行预设网络带宽的检测,人工干预少,从而提高了预设网络带宽的准确性。
在一些实施例中,该方法还包括:
基于预设网络带宽,确定多个图形处理器间的并行训练状态;
基于训练任务并行状态,调整深度学习模型的训练任务。
在一些实施例中,基于预设网络带宽,可以确定多个图形处理器中可以并行传输数据的图形处理器的数目,并可以确定并行进行数据传输时每个图形处理器对应的网络带宽,根据并行传输数据的图形处理器的数目和每个图形处理器对应的网络带宽,确定多个图形处理器间的并行训练状态,并行训练状态可以为多机训练加速比,通过多机训练加速比,可以确定是否可以对增加并行传输数据的图形处理器,是否可以对图形处理器的性能进行优化或是否可以对通信性能进行优化等,从而调整深度学习模型的训练任务。
在一些实施例中,可以通过采用混合精度训练或者算子融合的方式优化图形处理器的性能,可以通过进行梯度融合的方式优化通信性能。
基于预设网络带宽,对深度学习模型训练或数据传输进行优化,从而提高了深度学习模型训练的效率以及数据传输效率。
在一些实施例中,请参见图10,如图10所示为进行网络带宽检测时的网络结构示意图。基于信息传递接口启动网络带宽检测功能,获取当前通信环境信息和当前算法调用接口,根据当前通信环境信息确定目标通信链路,根据当前算法调用接口确定目标数据传输算法。在图形处理器执行深度学习训练时,确定基于目标数据传输算法,在目标通信链路上进行通信的对目标图形处理器在数据传输时对应的网络带宽进行检测,输出实时检测到的网络带宽,根据实时检测到的网络带宽,得到网络带宽状态,并根据网络带宽状态,调整多个图形处理器间的数据传输任务。可以对用户显示通信参数,目标数据传输算法以及实时检测的网络带宽,用户再基于实时检测的网络带宽,确定网络带宽状态。
本申请实施例提供了一种网络带宽检测方法,该方法包括:确定多个图形处理器间的目标通信链路和多个图形处理器间的目标数据传输算法。在多个图形处理器对深度学习模型进行训练的过程中,确定多个图形处理器中基于目标数据传输算法,在目标通信链路上传输数据的目标图形处理器。对目标图形处理器间的网络带宽进行检测,得到网络带宽状态,并根据网络带宽状态,调整多个图形处理器间的数据传输任务。该方法可以检测图形处理器间的网络带宽,以及网络带宽对应的网络带宽状态,得到当前的带宽利用情况,从而根据带宽利用情况,对数据传输任务进行精准控制。
本申请实施例还提供了一种网络带宽检测装置,请参见图11,该装置包括:
通信链路确定模块1110,用于基于当前通信环境信息,确定多个图形处理器间的目标通信链路;
数据传输算法确定模块1120,用于基于当前算法调用接口,确定多个图形处理器间的目标数据传输算法;
目标图像处理器确定模块1130,用于在多个图形处理器中对深度学习模型进行训练的过程中,确定多个图形处理器中基于目标数据传输算法,在目标通信链路上传输数据的目标图形处理器;
网络带宽状态确定模块1140,用于对目标图形处理器间的网络带宽进行检测,得到网络带宽状态;
数据传输任务调整模块1150,用于根据网络带宽状态,调整多个图形处理器间的数据传输任务。
在一些实施例中,网络带宽状态确定模块1140包括:
数据包解析单元,用于对目标图形处理器间传输的预设数据包进行解析,得到预设数据包对应的预设数据传输量;
接口调用单元,用于调用当前算法调用接口,对预设数据传输量的传输状态进行检测,得到预设数据传输量对应的数据传输时间;
网络带宽确定单元,用于根据预设数据传输量和数据传输时间,得到预设数据包对应的网络带宽;
网络带宽状态确定单元,用于将预设数据包对应的网络带宽与预设网络带宽进行比对,确定网络带宽状态。
在一些实施例中,该装置还包括:
当前数据包确定单元,用于获取预设图形处理器间每一次进行数据传输时的当前数据包,当前数据包为基于预设的数据量递增算法确定的数据包;
当前数据传输量获取单元,用于获取当前数据包对应的当前数据传输量;
当前数据传输时间获取单元,用于确定当前数据传输量对应的当前数据传输时间;
当前网络带宽获取单元,用于根据当前数据传输量和当前数据传输时间,得到当前数据包对应的网络带宽;
第一带宽对比单元,用于将每个当前数据包对应的网络带宽与每个当前数据包的上一个数据包对应的网络带宽进行比对;
第二带宽对比单元,用于将每个当前数据包对应的网络带宽与每个当前数据包的下一个数据包对应的网络带宽进行比对;
预设网络带宽确定单元,用于在当前数据包对应的网络带宽小于上一个当前数据包对应的网络带宽,且当前数据包对应的网络带宽大于下一个当前数据包对应的网络带宽的情况下,将上一个当前数据包对应的网络带宽确定为预设网络带宽。
在一些实施例中,该装置还包括:
并行传输状态确定单元,用于基于预设网络带宽,确定多个图形处理器间的并行训练状态;
训练任务调整单元,用于基于并行训练状态,调整深度学习模型的训练任务。
在一些实施例中,通信链路确定模块包括:
目标通信链路确定单元,用于从第一预设映射关系中获取与当前通信环境信息匹配的通信链路,第一预设映射关系为通信环境信息和通信链路间的对应关系;将匹配的通信链路作为目标通信链路。
在一些实施例中,数据传输算法确定模块包括:
目标数据传输算法确定单元,用于从第二预设映射关系中获取与当前算法调用接口匹配的数据传输算法,第二预设映射关系为算法调用接口和数据传输算法间的对应关系;将匹配的数据传输算法作为目标数据传输算法。
在一些实施例中,该装置还包括:
新增算法获取单元,用于获取新增数据传输算法;
新增接口确定单元,用于确定新增数据传输算法对应的新增算法调用接口;
第二预设映射关系更新单元,用于根据新增数据传输算法和新增算法调用接口,更新第二预设映射关系。
上述实施例中提供的装置可执行本申请任意实施例所提供方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的一种网络带宽检测方法。
本实施例还提供了一种计算机可读存储介质,存储介质中存储有计算机可执行指令,计算机可执行指令由处理器加载并执行本实施例上述的一种网络带宽检测方法。
本实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述网络带宽检测的各种可选实现方式中提供的方法。
本实施例还提供了一种电子设备,该电子设备包括处理器和存储器,其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行本实施例上述的一种网络带宽检测方法。
设备可以为服务器,设备还可以参与构成本申请实施例所提供的装置或系统。如图12所示,服务器12可以包括一个或多个(图中采用1202a、1202b,……,1202n来示出)处理器1202(处理器1202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1204、以及用于通信功能的传输装置1206。除此以外,还可以包括:输入/输出接口(I/O接口)、网络接口。本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器12还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。
应当注意到的是上述一个或多个处理器1202和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到服务器12中的其他元件中的任意一个内。
存储器1204可用于存储应用软件的软件程序以及模块,如本申请实施例中的方法对应的程序指令/数据存储装置,处理器1202通过运行存储在存储器1204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种基于自注意力网络的时序行为捕捉框生成方法。存储器1204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1204可进一步包括相对于处理器1202远程设置的存储器,这些远程存储器可以通过网络连接至服务器12。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器12的通信供应商提供的无线网络。在一个实例中,传输装置1206包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。
本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤和顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或中断产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本实施例中所示出的结构,仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比示出的更多或更少的部件,或者组合某些部件,或者具有不同的部件的布置。应当理解到,本实施例中所揭露的方法、装置等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元模块的间接耦合或通信连接。
基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员还可以进一步意识到,结合本说明书所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种网络带宽检测方法,其特征在于,所述方法包括:
基于当前通信环境信息,确定多个图形处理器间的目标通信链路;
基于当前算法调用接口,确定所述多个图形处理器间的目标数据传输算法;
在所述多个图形处理器中对深度学习模型进行训练的过程中,确定所述多个图形处理器中基于所述目标数据传输算法,在所述目标通信链路上传输数据的目标图形处理器;
对所述目标图形处理器间的网络带宽进行检测,得到网络带宽状态;
根据所述网络带宽状态,调整所述多个图形处理器间的数据传输任务。
2.根据权利要求1所述的网络带宽检测方法,其特征在于,所述对所述目标图形处理器间的网络带宽进行检测,得到网络带宽状态包括:
对所述目标图形处理器间传输的预设数据包进行解析,得到所述预设数据包对应的预设数据传输量;
调用所述当前算法调用接口,对所述预设数据包的传输状态进行检测,得到所述预设数据包对应的数据传输时间;
根据所述预设数据传输量和所述数据传输时间,得到所述预设数据包对应的网络带宽;
将所述预设数据包对应的网络带宽与预设网络带宽进行比对,确定所述网络带宽状态。
3.根据权利要求2所述的网络带宽检测方法,其特征在于,所述方法还包括:
获取预设图形处理器间每一次进行数据传输时的当前数据包,所述当前数据包为基于预设的数据量递增算法确定的数据包;
获取所述当前数据包对应的当前数据传输量;
确定所述当前数据包对应的当前数据传输时间;
根据所述当前数据传输量和所述当前数据传输时间,得到所述当前数据包对应的网络带宽;
将每个当前数据包对应的网络带宽与所述每个当前数据包的上一个数据包对应的网络带宽进行比对;
将所述每个当前数据包对应的网络带宽与每个当前数据包的下一个数据包对应的网络带宽进行比对;
在所述当前数据包对应的网络带宽大于所述上一个数据包对应的网络带宽,且所述当前数据包对应的网络带宽大于所述下一个数据包对应的网络带宽的情况下,将所述当前数据包对应的网络带宽确定为所述预设网络带宽。
4.根据权利要求3所述的网络带宽检测方法,其特征在于,所述方法还包括:
基于所述预设网络带宽,确定所述多个图形处理器间的并行训练状态;
基于所述并行训练状态,调整所述深度学习模型的训练任务。
5.根据权利要求1所述的网络带宽检测方法,其特征在于,所述基于当前通信环境信息,确定多个图形处理器间的目标通信链路包括:
从第一预设映射关系中获取与所述当前通信环境信息匹配的通信链路,所述第一预设映射关系为通信环境信息和通信链路间的对应关系;
将所述匹配的通信链路作为所述目标通信链路。
6.根据权利要求1所述的一种网络带宽检测方法,其特征在于,所述基于当前算法调用接口,确定所述多个图形处理器间进行数据传输的目标数据传输算法包括:
从第二预设映射关系中获取与所述当前算法调用接口匹配的数据传输算法,所述第二预设映射关系为算法调用接口和数据传输算法间的对应关系;
将所述匹配的数据传输算法作为所述目标数据传输算法。
7.根据权利要求6所述的一种网络带宽检测方法,其特征在于,所述方法还包括:
获取新增数据传输算法;
确定所述新增数据传输算法对应的新增算法调用接口;
根据所述新增数据传输算法和所述新增算法调用接口,更新所述第二预设映射关系。
8.一种网络带宽检测装置,其特征在于,所述装置包括:
通信链路确定模块,用于基于当前通信环境信息,确定多个图形处理器间的目标通信链路;
数据传输算法确定模块,用于基于当前算法调用接口,确定所述多个图形处理器间的目标数据传输算法;
目标图像处理器确定模块,用于在所述多个图形处理器中对深度学习模型进行训练的过程中,确定所述多个图形处理器中基于所述目标数据传输算法,在所述目标通信链路上传输数据的目标图形处理器;
网络带宽状态确定模块,用于对所述目标图形处理器间的网络带宽进行检测,得到网络带宽状态;
数据传输任务调整模块,用于根据所述网络带宽状态,调整所述多个图形处理器间的数据传输任务。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-7任一项所述的一种网络带宽检测方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-7任一项所述的一种网络带宽检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110959512.0A CN114285766B (zh) | 2021-08-20 | 2021-08-20 | 一种网络带宽检测方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110959512.0A CN114285766B (zh) | 2021-08-20 | 2021-08-20 | 一种网络带宽检测方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114285766A CN114285766A (zh) | 2022-04-05 |
CN114285766B true CN114285766B (zh) | 2023-06-13 |
Family
ID=80868417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110959512.0A Active CN114285766B (zh) | 2021-08-20 | 2021-08-20 | 一种网络带宽检测方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114285766B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174429B (zh) * | 2022-05-25 | 2024-04-09 | 深信服科技股份有限公司 | 网络带宽检测方法、装置、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933430A (zh) * | 2019-03-08 | 2019-06-25 | 北京百度网讯科技有限公司 | 分配图形处理器的方法和装置 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110891000A (zh) * | 2019-11-07 | 2020-03-17 | 浪潮(北京)电子信息产业有限公司 | 一种gpu带宽性能的检测方法、系统及相关装置 |
CN112416672A (zh) * | 2020-11-12 | 2021-02-26 | 宁畅信息产业(北京)有限公司 | Pcie链路的稳定性测试方法、装置、计算机设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210020570A (ko) * | 2019-08-16 | 2021-02-24 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
-
2021
- 2021-08-20 CN CN202110959512.0A patent/CN114285766B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933430A (zh) * | 2019-03-08 | 2019-06-25 | 北京百度网讯科技有限公司 | 分配图形处理器的方法和装置 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110891000A (zh) * | 2019-11-07 | 2020-03-17 | 浪潮(北京)电子信息产业有限公司 | 一种gpu带宽性能的检测方法、系统及相关装置 |
CN112416672A (zh) * | 2020-11-12 | 2021-02-26 | 宁畅信息产业(北京)有限公司 | Pcie链路的稳定性测试方法、装置、计算机设备和介质 |
Non-Patent Citations (1)
Title |
---|
云基础设施中的GPU服务器性能评估;邱红飞;李先绪;黄春光;;移动通信(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114285766A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112784989B (zh) | 推理系统、推理方法、电子设备及计算机存储介质 | |
CN109858621B (zh) | 一种卷积神经网络加速器的调试装置、方法及存储介质 | |
US11489735B2 (en) | Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium | |
US11609793B2 (en) | Electronic apparatus determining GPUs in a network for effective data learning and method for controlling thereof | |
TWI470567B (zh) | 考慮耗時與耗電的卸載運算量的決策方法與運算系統 | |
CN106776455B (zh) | 一种单机多gpu通信的方法及装置 | |
CN110933695B (zh) | 波束故障恢复请求发送方法及终端设备 | |
CN114285766B (zh) | 一种网络带宽检测方法、装置、电子设备和存储介质 | |
CN113590403A (zh) | 压力测试方法、装置、系统、电子设备、存储介质及产品 | |
CN109214512B (zh) | 一种深度学习的参数交换方法、装置、服务器及存储介质 | |
US11356334B2 (en) | Communication efficient sparse-reduce in distributed machine learning | |
CN107544845B (zh) | Gpu资源调度方法及装置 | |
KR101571374B1 (ko) | 정보 관리 방법 및 장치 | |
CN116501684B (zh) | 一种服务器系统及其通信方法 | |
CN109840132A (zh) | 容器的编排方法、装置及存储介质 | |
CN107239407B (zh) | 一种内存的无线访问方法和装置 | |
CN110837395B (zh) | 多gpu并行训练的归一化处理方法、装置和系统 | |
CN111079909B (zh) | 运算方法、系统及相关产品 | |
Ekaireb et al. | ns3-fl: Simulating Federated Learning with ns-3 | |
CN114579311B (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
CN105915325A (zh) | 载波聚合中载波参数的设置方法、装置及移动终端 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN112948114B (zh) | 边缘计算方法和边缘计算平台 | |
CN114490374A (zh) | 应用的压力测试方法、电子设备、存储介质及程序产品 | |
US10333837B2 (en) | Virtual network switch system and method of constructing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |