CN116896586A - 数据通信优化方法、装置以及系统 - Google Patents
数据通信优化方法、装置以及系统 Download PDFInfo
- Publication number
- CN116896586A CN116896586A CN202310602704.5A CN202310602704A CN116896586A CN 116896586 A CN116896586 A CN 116896586A CN 202310602704 A CN202310602704 A CN 202310602704A CN 116896586 A CN116896586 A CN 116896586A
- Authority
- CN
- China
- Prior art keywords
- communication
- data
- algorithm
- data processing
- target
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 746
- 238000005457 optimization Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 165
- 238000012549 training Methods 0.000 claims abstract description 77
- 238000010801 machine learning Methods 0.000 claims description 13
- 230000006978 adaptation Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 7
- 238000013136 deep learning model Methods 0.000 abstract description 23
- 230000008569 process Effects 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000750 progressive effect Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 208000024780 Urticaria Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 101150042618 comm2 gene Proteins 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例提供数据通信优化方法、装置以及系统,其中,该方法包括:确定数据处理请求;根据目标集合通信算法,确定待处理数据的数据处理通信量、以及对应的通信组选择阈值;根据数据处理通信量、以及通信组选择阈值,从至少两个通信组中确定目标通信组;该方法通过根据数据处理请求中携带的待处理数据的数据处理通信量、以及通信组选择阈值,从多个通信组中选择目标通信组,可以实现根据数据处理通信量的不同,根据对应的通信组选择阈值,选择其合适的目标通信组进行数据处理,使得该数据通信优化方法应用于深度学习模型的分布式训练场景中,可以极大的提高其模型训练过程中的通信性能以及模型训练效率。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据通信优化方法。
背景技术
深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助,它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。在分布式训练中,用于训练模型的工作负载会在多个微型处理器之间进行拆分和共享,这些处理器称为工作器节点,这些工作器节点并行工作以加速模型训练。
在人工智能领域,深度学习模型分布式训练的性能主要受制于不同的网络环境以及通信算法,不同的网络环境以及通信算法主要为不同的网络介质或通信协议,比如,无限带宽(IB,InfiniBand)网络的远程直接内存访问(RDMA,Remote Direct Memory Access)通信,传输控制协议/网络协议(tcp/ip,Transmission Control Protocol/InternetProtocol)网络的套接字(socket)通信,具体的,通信性能指标主要为传输信息的有效性和可靠性。有效性是指在传输一定的信息量所消耗的信道资源的多少,有效性指标包括信道的带宽和时延;带宽在大数据量场景下为主要的因素,时延主要在小数据量场景下更加敏感,在数据量不同的情况下,通信性能表现不同。
而在一个具体的分布式训练过程中,存在多次通信,往往每次通信的数据量大小不同,而针对大小不同的通信数据量,都采用相同的通信处理方式,这样就无法保证全局通信较优,造成了在一个具体的分布式训练过程中,通信性能较差,模型训练的训练效率较低的问题。
发明内容
有鉴于此,本说明书实施例提供了一种数据通信优化方法。本说明书一个或者多个实施例同时涉及一种数据通信优化装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据通信优化方法,包括:
确定数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值;
根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述集合通信算法对应;
根据所述目标通信组,执行所述数据处理请求。
根据本说明书实施例的第二方面,提供了一种数据通信优化装置,包括:
请求确定模块,被配置为确定数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
数据确定模块,被配置为根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值;
通信组确定模块,被配置为根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述集合通信算法对应;
请求执行模块,被配置为根据所述目标通信组,执行所述数据处理请求。
根据本说明书实施例的第三方面,提供了一种数据通信优化系统,包括适配节点、算法节点、预测节点、调度节点,其中:
所述适配节点,被配置为确定从网络节点发送的数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
所述算法节点,被配置为确定所述目标集合通信算法,根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量;
所述调度节点,被配置为根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述目标集合通信算法对应,且所述至少两个通信组、以及所述通信组选择阈值在所述预测节点确定;
所述调度节点,还被配置为根据所述目标通信组,执行所述数据处理请求。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据通信优化方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据通信优化方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据通信优化方法的步骤。
本说明书一个实施例提供的数据通信优化方法,包括通过确定数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的集合通信算法;根据所述集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值;根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述集合通信算法对应;根据所述目标通信组,执行所述数据处理请求。
具体的,该方法通过根据数据处理请求中携带的待处理数据的数据处理通信量、以及通信组选择阈值,从多个通信组中选择目标通信组,可以实现根据数据处理通信量的不同,根据对应的通信组选择阈值,选择其合适的目标通信组进行数据处理,使得该数据通信优化方法应用于深度学习模型的分布式训练场景中,可以极大的提高其模型训练过程中的通信性能以及模型训练效率。
附图说明
图1是本说明书一个实施例提供的一种数据通信优化方法的具体场景示意图;
图2是本说明书一个实施例提供的一种数据通信优化方法的流程图;
图3是本说明书一个实施例提供的一种数据通信优化方法的具体处理过程流程图;
图4是本说明书一个实施例提供的一种数据通信优化系统的架构图;
图5是本说明书一个实施例提供的一种数据通信优化装置的结构示意图;
图6是本说明书一个实施例提供的一种数据通信优化系统的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
此外,需要说明的是,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
CPU(Central Processing Unit,中央处理器):作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元;目前在推荐、广告、搜索等领域中应用CPU集群进行人工智能训练任务,能够保证较高的性价比。
GPU(Graphics Processing Unit,图形处理器):又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器,目前普遍用于人工智能加速。
IAAS(Infrastructure As A Service,基础设施即服务):提供计算、存储网络等基础设施的云服务。
LL128(Low Latency,低延迟):低延迟协议,每传递128B(即Byte,字节),有8B为符号位,120B为数据位。
较优解:可行域的所有设计空间中,解A对应的目标函数都优于其他任何可行解。
Pareto(Pareto Optimality)帕累托较优解:现实中多目标函数基本上是一个混沌实现,是不可能存在全局较优解的,所以才提出了帕累托较优解;对于解A来说,在变量空间中,找不到其他的解能够优于解A(是指两个目标函数都优于A对应的函数值)。
API(Application Programming Interface,应用程序编程接口):是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
Comm(Com manager,通信管理模块):表示具体的某个通信库类对象的实例化,这里会涉及到低延迟优化协议LL128以及带宽优化协议simple等,其中,simple(SIP forInstant Messaging and Presence Leveraging Extensions)是一个基于sip(sessioninitialization Protocol,会话初始协议)协议的即时消息通信协议族。
Bw(Band width,带宽):是指在固定的时间可传输的资料数量,亦即在传输管道中可以传递数据的能力。
Lat(Latency,延迟):从客户端完成一个IO所花费的时间,其中,IO即输入Input/输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程。
Comm_bw:带宽优化通信组,为simple协议做带宽优选的通信组构建。
Comm_lat:延迟优化通信组,为LL128协议做延迟优选的通信组构建。
通信性能指标主要为传输信息的有效性和可靠性。有效性是指在传输一定的信息量所消耗的信道资源的多少,信道的资源包括信道的带宽和时延;带宽在大数据量场景下为主要的因素,时延主要在小数据量场景下更加敏感,不同的数据量下,通信性能表现不同;对此,业界存在的原始通信库也增加了低延迟优化和带宽优化两种不同的算法。然而,原始通信库一次只能使用一个特定算法,在一个具体的分布式训练过程中往往单次的通信量大小不同,均采用特定算法进行分布式训练,就无法保证分布式训练的性能较优。因此,如何在不同的机型、网络拓扑下,实现全局统一的延迟、带宽pareto较优的分布式训练较优算法成为了一个挑战。
具体实施时,本说明书实施例的上述问题可以抽象为一个多目标函数问题:
即Min(Perf(S1_AlgoType1,Comm1)+Perf(S2_AlgoType2,Comm2)+Perf(Sn_AlgoTypen,Commn),n in{1:N};
其中,N表示一次训练迭代所涉及到的通信次数。
Size表示通信量大小,一次训练的过程中涉及到任意大小的多个通信量。
AlgoType表示具体的某个集合通信算法,如allreduce、allgather等。
Min表示最小值。
Perf(performance,性能)方法名,表示性能统计结果。
Perf(S1_AlgoType1,Comm1)表示统计集合通信算法1对应的通信量1,选择的通信组1对应的性能;同理,Perf(S2_AlgoType2,Comm2)以及Perf(Sn_AlgoTypen,Commn)的具体解释类似。
n in{1:N}表示n从1到N。
基于该多目标函数问题,本说明书实施例提供了一种数据通信优化方法,具体的,该方法通过根据数据处理请求中携带的待处理数据的数据处理通信量、以及通信组选择阈值,从多个通信组中选择目标通信组,可以实现根据数据处理通信量的不同,根据对应的通信组选择阈值,选择其合适的目标通信组进行数据处理,使得该数据通信优化方法应用于深度学习模型的分布式训练场景中,可以极大的提高其模型训练过程中的通信性能以及模型训练效率。
本说明书实施例提供的数据通信优化方法的理论基础,可以来自pareto较优解的简化求解方式,例如,pareto较优解只需要找到一个相对较优的解集合混合协议栈的通信组(Comm_hybridPayload),结合多通信组无额外性能(overhead)的经验基础,本说明书实施例提供的数据通信优化方法,只需要简化为求解指定带宽敏感和延迟敏感两类通信组Comms即可,具体实现公式如下所述:
Min(Perf(SN_AlgoTypeN,Comm_hybridPayload)=Min(Perf(Sm_AlgoTypem,Comm_bw)+Min(Perf(Sn_AlgoTypen,Comm_lat)
m+n=N
其中,Perf(SN_AlgoTypeN,Comm_hybridPayload表示统计集合通信算法N对应的通信量N,执行混合协议栈的通信组对应的性能;Perf(Sm_AlgoTypem,Comm_bw)表示统计集合通信算法m对应的通信量m,选择带宽优化通信组对应的性能;同理,Perf(Sn_AlgoTypen,Comm_lat)表示统计集合通信算法n对应的通信量n,选择延迟优化通信组对应的性能。
m表示选择带宽优化通信组的次数,n表示选择延迟优化通信组的次数,N表示一次训练迭代所涉及到的通信次数为选择带宽优化通信组的次数,以及选择延迟优化通信组的次数之和。
在本说明书中,提供了一种数据通信优化方法,本说明书同时涉及一种数据通信优化装置,一种数据通信优化系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种数据通信优化方法应用于深度学习模型的分布式训练的具体场景示意图。
图1中包括客户端102和服务端104,其中,客户端102可以理解为笔记本电脑、台式电脑、平板电脑等,服务端104可以理解为物理服务器或者云服务器;为了便于理解,以下实施例均以客户端102为台式电脑,服务端104为物理服务器为例进行详细介绍。
具体实施时,客户端102向服务端104发送数据处理请求,其中,该数据处理请求可以理解为针对目标深度学习模型(例如图像分类模型、文本识别模型)的模型训练请求,并且该数据处理请求中会携带有训练该目标深度学习模型对应的训练数据。
服务端104在接收到该数据处理请求之后,根据其部署的数据通信优化系统,确定执行该数据处理请求的目标通信组,根据该目标通信组执行该数据处理请求,以通过较优的通信性能实现对该目标深度学习模型的高效分布式训练;其中,该数据通信优化系统包括适配节点、算法节点、调度节点、预测节点、网络节点,且每个节点提供不同的通信功能,各个节点可以理解为一个设备中的软件单元。
实际应用中,服务端104在对该目标深度学习模型进行分布式训练后,即可将训练后的该目标深度学习模型返回至客户端102。
下述结合附图2,对所述数据通信优化方法进行进一步说明。其中,图2示出了本说明书一个实施例提供的一种数据通信优化方法的流程图,具体包括以下步骤。
步骤202:确定数据处理请求。
其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法。
本说明书实施例提供的一种或多种数据通信优化方法应用于数据通信优化系统,且该数据通信优化方法可以应用于深度学习模型的分布式训练中,以提高其通信性能以及训练效率;当然,实际应用中,该数据通信优化方法不仅仅可以应用于深度学习模型的分布式训练的场景,在任意可适用场景中,均可以适配;例如其他的分布式场景:数据读写分布式场景、数据存储分布式场景等。
具体的,该数据通信优化方法的具体应用场景不同,数据处理请求也不同;例如,该数据通信优化方法应用于深度学习模型的分布式训练场景的情况下,该数据处理请求则可以理解为,针对深度学习模型的模型训练请求;若该数据通信优化方法应用于数据读写分布式场景的情况下,该数据处理请求则可以理解为,数据读写请求。
为了便于理解,以下实施例均以该数据通信优化方法应用于深度学习模型的分布式训练场景,该数据处理请求则为,针对深度学习模型的模型训练请求为例,进行详细介绍。
那么,确定数据处理请求,则可以理解为,确定针对目标机器学习模型的模型训练请求。
其中,该目标机器学习模型可以理解为上述的深度学习模型。
而在该数据处理请求为针对目标机器学习模型的模型训练请求的情况下,该待处理数据可以理解为,该目标机器学习模型的训练数据,如训练样本以及训练样本对应的训练标签;该待处理数据对应的目标集合通信算法包括但不限于归约(allreduce)、收集(allgather)、发送(send)或者接收(recv)等集合通信算法,其中,集合通信算法可以理解为数据在不同节点进行数据传输的处理方式,具体的,分布式训练通常在计算集群上进行,集群的每个节点分别执行一部分计算。不同节点的计算之间有数据依赖和共享,需要将数据在不同节点间传输。因此,分布式训练的通信大多基于集合通信算法。
步骤204:根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值。
其中,待处理数据的数据处理通信量,可以理解为,根据该目标集合通信算法对该待处理数据进行数据处理时确定的通信量;通信组选择阈值可以理解为,与该目标集合通信算法对应的、预先计算的通信组选择阈值。
那么,在确定数据处理请求之后,即可以根据该数据处理请求中携带的目标集合通信算法,对该待处理数据进行数据处理,确定该待处理数据的数据处理通信量,并确定与该目标集合通信算法对应的通信组选择阈值。
具体实施时,在接收或者获取数据处理请求之后,获取与该数据处理请求对应的原始通信库的调用链路,以便后续可以根据该调用链路调用该原始通信库中的原始集合通信算法,通过原始通信库的symbol特点,实现完全无感的原始集合通信算法劫持,从而实现后续可以从劫持的原始集合通信算法中确定目标集合通信算法。具体实现方式如下所述:
所述确定数据处理请求之后,所述根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值之前,还包括:
获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法,其中,所述目标集合通信算法为所述原始集合通信算法中的任意一种。
其中,原始通信库可以理解为nccl通信库,能实现集合(Collective)通信和点对点通信,关注与GPU间的通信,该原始通信库中包括但不限于归约(allreduce)、收集(allgather)、发送(send)或者接收(recv)等集合通信算法;数据处理请求对应的原始通信库可以理解为原始仅可以使用某种特定集合通信算法对数据处理请求进行处理的通信库;那么,调用链路可以理解为调用nccl通信库的链路。
以原始通信库为nccl通信库为例,获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法,可以理解为,获取与数据处理请求对应的nccl通信库的调用链路,根据该调用链路调用nccl通信库中的原始集合通信算法。例如,劫持nccl通信库的调用通信入口进行初始化,插入该数据通信优化方法应用的数据通信优化系统的分布式训练加速引擎以优化代码。
本说明书一个或多个实施例中,在获取与该数据处理请求对应的原始通信库的调用链路,根据该调用链路调用原始通信库中的原始集合通信算法之后,可以根据原始集合通信算法构建多个通信组,其中,不同通信组中的通信协议不同,处理待处理数据时,根据不同通信组的执行,执行数据处理请求时的通信性能和训练效率不同;因此,构建多个通信组可以便于后续根据不同的待处理数据的数据处理通信量,选择不同的通信组实现较优的数据处理。具体实现方式如下所述:
所述获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法之后,还包括:
在确定存在集合通信算法性能表的情况下,调用所述集合通信算法性能表,并根据所述集合通信算法性能表构建至少两个通信组,其中,所述至少两个通信组中各通信组的通信协议不同。
其中,集合通信算法性能表可以理解为一个哈希表,哈希表存储的是由键(key)和值(value)组成的数据,集合通信算法性能表中的键涉及待处理数据的通信量、集合通信算法类型、数据类型、通信组类型,值为具体的通信性能。
具体的,可以以公式perf_map[nNode_mPerNode_Msg_bw]=xxx,构建集合通信算法性能表,其中,nNode_mPerNode_Msg_bw为键,表示node个GPU节点,每个节点有mPerNode个GPUs,msg表示当前通信量的大小,bw表示通信组为带宽优化类型,当然,bw可以改为lat表示通信组为延迟优化类型,xxx为值,表示性能数据。
比如,Perf_map[nNode_mPerNode_Msg_allreduce_bw]=100;
Perf_map[nNode_mPerNode_Msg_allreduce_lat]=200;即针对某一目标通信量通过allreduce算法执行带宽优化通信组的性能为100;针对某一目标通信量通过allreduce算法执行延迟优化通信组的性能为200。
以集合通信算法包括allreduce、allgather为例,结合上述公式perf_map[nNode_mPerNode_Msg_bw]=xxx构建的、与该集合通信算法对应的集合通信算法性能表可以如下所示:
Perf_map[nNode_mPerNode_Msg_allreduce_bw]=xxx;
Perf_map[nNode_mPerNode_Msg_allreduce_lat]=xxx;
Perf_map[nNode_mPerNode_Msg_allgather_bw]=xxx;
Perf_map[nNode_mPerNode_Msg_allgather_lat]=xxx;
根据上述公式可知,构建的通信集合算法性能表中,可以体现allreduce算法对应的bw、lat通信组的性能,以及allgather算法对应的bw、lat通信组的性能。
当然,实际应用中,若存在其他的集合通信算法的情况下,均可以结合上述公式,确定并更新该集合通信算法性能表。
通信组可以理解为具体的某个通信库类对象的实例化,例如,所述至少两个通信组,包括:
带宽优化通信组和延迟优化通信组。
那么,在至少两个通信组为延迟优化通信组以及带宽优化通信组的情况下,延迟优化通信组会涉及到低延迟优化协议LL128,以及带宽优化通信组会涉及带宽优化协议simple等,其中,带宽优化通信组是针对带宽进行通信优化的通信组,延迟优化通信组是针对延迟进行通信优化的通信组。
其中,带宽优化通信组为nccl的simple协议做带宽优化的通信组构建,延迟优化通信组为nccl的LL128协议做延迟优化的通信组构建。
具体的,构建至少两个通信组的具体构建过程为,根据数据处理请求中待处理数据的各类参数,如通信量大小、集合通信算法等,提供该集合通信算法性能表中的键,根据该集合通信算法性能表的键获取到该集合通信算法性能表的值,根据该集合通信算法性能表中的键和值构建至少两个通信组,其中,集合通信算法性能表中的键涉及待处理数据的通信量、集合通信算法类型、数据类型、通信组类型,值为具体的通信性能。
具体的,可以根据perf_map[nNode_mPerNode_Msg]=xxx为例,nNode_mPerNode_Msg为键,表示node个GPU节点,每个节点有mPerNode个GPUs,msg表示当前通信量的大小,xxx为值,表示性能数据。
本说明书一个或多个实施例中,若不存在集合通信算法性能表的情况下,是需要根据待处理数据构建该原始集合通信算法对应的多个通信组的,以便后续可以通过从多个通信组中选择合适的目标通信组进行较优的数据处理。具体实现方式如下所述:
所述获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法之后,还包括:
在确定不存在集合通信算法性能表的情况下,根据所述待处理数据构建所述原始集合通信算法对应的至少两个通信组,其中,所述至少两个通信组中各通信组的通信协议不同。
实际应用中,如果不存在集合通信算法性能表,随机构建原始集合通信算法对应的至少两个通信组,即在nccl接收到的数据处理请求中的执行参数下进行多个通信组的构建,其中,执行参数可以包括数据处理请求中的待处理数据。
例如,仍以原始集合通信算法包括但不限于allreduce、allgather、send或者recv等原始集合通信算法为例;根据待处理数据分别构建allreduce、allgather、send或者recv等原始集合通信算法对应的带宽优化通信组和延迟优化通信组。
本说明书一个或多个实施例中,在确定不存在集合通信算法性能表的情况下,根据待处理数据构建至少两个通信组之后,还需要通过待处理数据的数据类型,通过预先压测(Pre-check即进行性能统计)的方式,合理且准确的构建集合通信算法性能表,以便于后续可以根据该集合通信算法性能表确定每个集合通信算法对应的通信组选择阈值。具体实现方式如下所述:
所述根据所述待处理数据构建至少两个通信组之后,还包括:
确定所述待处理数据的数据类型,以及所述数据类型对应的预设通信量集合;
依次从所述预设通信量集合中确定目标通信量,根据所述原始集合通信算法对应的至少两个通信组对所述目标通信量进行执行处理,确定所述原始集合通信算法对应的至少两个通信组的执行性能集合,根据所述执行性能集合构建集合通信算法性能表。
其中,待处理数据的数据类型可以理解为字符型,浮点型等数据类型;那么该数据类型对应的预设通信量集合可以理解为,预设的字符型预设通信量集合或者浮点型预设通信量集合,此外,任意一种数据类型对应的预设通信量集合中的通信量均可以理解为从8字节到512兆中的任意大小,例如,预设通信量集合为:8字节、9字节...512兆等。
目标通信量可以理解为预设通信量集合中的任意一个通信量,例如8字节或者9字节等。以目标通信量为8字节以及9字节,至少两个通信组为第一通信组和第二通信组为例,依次从所述预设通信量集合中确定目标通信量,根据所述原始集合通信算法对应的至少两个通信组对所述目标通信量进行执行处理,确定所述原始集合通信算法对应的至少两个通信组的执行性能集合,可以理解为,从预设通信量集合中确定目标通信量8字节,将目标通信量8字节进行原始集合通信算法对应的第一通信组、第二通信组的执行,确定原始集合通信算法对应的第一通信组的第一执行性能、第二通信组对应的第二执行性能;同理,从预设通信量集合中确定目标通信量9字节,通过上述方式,原始集合通信算法对应的第一通信组的第三执行性能、第二通信组对应的第四执行性能;通过第一执行性能、第二执行性能、第三执行性能、第四执行性能确定执行性能集合。
其中,执行性能集合包括原始集合通信算法对应各通信组的执行性能,以上述集合通信算法性能表的结构如Perf_map[nNode_mPerNode_Msg_allreduce_bw]=xxx为例,比如从预设通信量集合中确定目标通信量8字节,将目标通信量8字节进行原始集合通信算法对应的第一通信组的执行,确定原始集合通信算法对应的第一通信组的第一执行性能,可以理解为从预设通信量集合中确定目标通信量8字节,将目标通信量8字节进行allreduce算法对应的带宽优化通信组的执行,确定第一执行性能为XXX,即可根据上述信息构建集合通信算法性能表。
实际应用中,获取当前通信场景中数据处理请求中待处理数据的数据类型,如果存在多种类型则需进行遍历实现。
例如,所述待处理数据的数据类型有两种,浮点型和字符型,则需要先针对浮点型的数据类型进行构建集合通信算法性能表的遍历循环,再针对字符型的数据类型进行构建集合通信算法性能表的遍历循环;从预设通信量集合进行循环,在预设通信量集合中的预设通信量超出预设通信量集合范围的情况下,跳出循环;否则,在预设通信量集合中的预设通信量位于预设通信量集合范围内的情况下,模拟当前的数据类型的特定数据量,进行指定集合通信算法的带宽优化通信组以及延迟优化通信组的执行,统计对应的性能,确定执行性能集合,进行集合通信算法性能表的构建或者更新;具体的遍历实现可以参见上述举例。
那么,在确定集合通信算法性能表之后,即可根据该集合通信算法性能表,确定每个原始集合通信算法对应的通信组选择阈值,以实现后续从原始集合通信算法中确定的目标集合通信算法,明确其对应的通信组选择阈值,以根据该通信组选择阈值选择合适的目标通信组进行后续数据处理。具体实现方式如下所述:
根据所述集合通信算法性能表,确定所述原始集合通信算法对应的通信组选择阈值。
其中,通信组选择阈值可以理解为与每个原始集合通信算法对应的至少两个通信组的通信性能边界值,例如原始集合通信算法为allreduce、allgather、send和recv等,对应的至少两个通信组为带宽优化通信组和延迟优化通信组。
实际应用中,集合通信算法性能表中存储不同集合通信算法的通信组选择阈值,可以根据每个原始集合通信算法确定该原始集合通信算法对应的通信组选择阈值比如,allreduce算法通信组选择阈值为64兆、收集算法通信组选择阈值为45兆、发送算法通信组选择阈值为78兆以及接收算法通信组选择阈值为54兆。
基于此,通过本说明书实施例的数据通信优化方法,能够构建出至少两个通信组以及构建集合通信算法性能表,确定通信选择阈值以便于后续根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组。
步骤206:根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组。
其中,目标通信组可以理解为至少两个通信组中的任意一个通信组,即当数据处理请求通过该目标通信组进行通信时的通信性能、会优于该数据处理请求通过至少两个通信组中的其他通信组进行通信时的通信性能。
本说明书一个或多个实施例中,在确定数据处理通信量以及通信组选择阈值的情况下,可以根据该通信组选择阈值、快速的从至少两个通信组中确定与该数据处理通信量对应的目标通信组。具体实现方式如下所述:
所述根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,包括:
将所述数据处理通信量与所述通信组选择阈值进行比较,根据比较结果从至少两个通信组中确定目标通信组。
以通信组选择阈值为64兆、至少两个通信组包括带宽优化通信组和延迟优化通信组为例,比较所述数据处理通信量、与所述通信组选择阈值,根据比较结果从至少两个通信组中确定目标通信组进行详细介绍。
具体的,比较数据处理通信量、与通信组选择阈值,在数据处理通信量为128兆的情况下,可以确定数据处理通信量128兆大于通信组选择阈值64兆,此时,根据比较结果可以从带宽优化通信组和延迟优化通信组中确定带宽优化通信组为目标通信组。
本说明书实施例提供的该数据通信优化方法中,在确定数据处理通信量以及通信组选择阈值的情况下,可以根据该通信组选择阈值、快速的从至少两个通信组中确定与该数据处理通信量对应的目标通信组。
步骤208:根据所述目标通信组,执行所述数据处理请求。
本说明书一个或多个实施例中,仍以数据处理请求为针对目标机器学习模型的模型训练请求为例,根据所述目标通信组,执行所述数据处理请求的具体实现方式如下所述:
所述根据所述目标通信组,执行所述数据处理请求,包括:
根据所述目标通信组,执行所述针对目标机器学习模型的模型训练请求。
本说明书实施例提供的数据通信优化方法,在应用于深度学习模型的分布式训练场景的情况下,可以根据选择的目标通信组,执行针对目标机器学习模型的模型训练请求,以提高模型训练过程中的通信性能以及模型训练效率。
结合上述实施例的详细介绍,对数据通信优化方法以具体实例进行整体说明:例如数据处理请求中携带的目标集合通信算法为allreduce算法,确定存在集合通信算法性能表,调用该集合通信算法性能表,构建带宽优化通信组和延迟优化通信组,规约算法确定出的待处理数据的数据处理通信量为100兆,对应的通信组选择阈值为64兆,待处理数据的数据处理通信量大于通信组选择阈值,因此选择带宽优化通信组为目标通信组,调用与目标通信组对应的通信组对象,执行数据处理请求(即进行目标深度学习模型的分布式模型训练),然后将训练后的目标深度学习模型返回至客户端。
本说明书实施例提供的数据通信优化方法,通过根据数据处理请求中携带的待处理数据的数据处理通信量、以及通信组选择阈值,从多个通信组中选择目标通信组,可以实现根据数据处理通信量的不同,根据对应的通信组选择阈值,选择其合适的目标通信组进行数据处理,使得该数据通信优化方法应用于深度学习模型的分布式训练场景中,可以极大的提高其模型训练过程中的通信性能以及模型训练效率。
参见图3,图3示出了根据本说明书一个实施例提供的一种数据通信优化方法的具体处理过程流程图。
步骤302:输入待交付的python代码。
其中,python代码为用户侧的代码,例如python代码为人工智能训练场景的代码,即上述实施例中的待处理数据。
步骤304:API劫持。
具体的,API劫持可以理解为劫持nccl通信库的ncclCommInitRankFunc初始化symbol,插入该数据通信优化方法应用的数据通信优化系统的分布式训练加速引擎以优化代码。
步骤306:判断是否存在Cache,若是,则执行步骤308,若否,则执行步骤312。
其中,Cache主要保存当前集群的规模下的集合通信算法性能表,表结构如下所示,存储不同集合通信算法对应的通信组选择阈值(msg_gate)的通信量:
allreduce_msg_gate=msg_gate1;
allgather_msg_gate=msg_gate2;
send_msg_gate=msg_gate3;
recv_msg_gate=msg_gate4;
以第一个公式allreduce_msg_gate=msg_gate1为例具体说明本公式的具体含义,其他公式的具体含义与第一个公式的具体含义类似。左值allreduce_msg_gate表示,对应Allreduce算法的通信组选择阈值,右值就是具体的阈值通信量。
步骤308:Loadcache。
其中,Loadcache可以理解为在确定存在Cache的情况下,调用集合通信算法性能表;具体的,该集合通信算法性能表的具体解释可以参见上述实施例的介绍,在此不再赘述。
步骤310:构建通信组。
具体地,构建通信组可以理解为上述实施例中,根据调用的集合通信算法性能表构建通信组的具体实现方式。
步骤312:构建通信组。
具体的,在确定不存在Cache的情况下,构建通信组;表述该构建通信组的具体实现方式与上述实施例中的在确定不存在集合通信算法性能表的情况下,构建通信组的具体实现方式相同。
步骤314:Pre-check。
具体执行Pre-check进入步骤31402-步骤步骤31412。
步骤31402:获取数据类型。
具体的,获取数据类型可以理解为上述实施例中的获取待处理数据的数据类型。
步骤31404:判断某个数据类型对应的预设通信量是否>512兆(即msg>512兆),若是,则执行步骤31406,若否,则执行步骤31408。
其中,msg(message,消息)可以理解为上述实施例中待处理数据的数据类型对应的预设通信量。
步骤31406:跳出循环。
具体的,在确定某个数据类型对应的预设通信量大于512兆的情况下,跳出循环,结束Pre-check的执行。
步骤31408:带宽优化通信组以及延迟优化通信组执行。
具体的,在某个数据类型对应的预设通信量小于512兆的情况下,进行带宽优化通信组以及延迟优化通信组的执行以统计性能。
步骤31410:Perf_time[msg,type,allreduce]。
其中,Perf_time可以理解为上述实施例中的集合通信算法性能表中的性能时间的统计,type(类型)可以理解为待处理数据的数据类型。
具体的,Perf_time[msg,type,allreduce]可以理解为根据待处理数据的数据类型、某个数据类型对应的预设通信量以及集合通信算法统计通信性能。
步骤31412:msg*=2。
具体的,该公式可以理解为将某个数据类型对应的预设通信量大小翻倍,即将翻倍后的某个数据类型对应的预设通信量返回步骤31404,继续进行循环以完成Pre-check的执行。
此外,Pre-check可以理解为上述实施例中,构建集合通信算法性能表的具体实现过程。
步骤316:构建性能表。
其中,该性能表则可以理解为集合通信算法性能表。
具体的,构建性能表可以理解为上述实施例中,构建集合通信算法性能表的具体实现结果。
步骤318:通信量阈值。
其中,通信量阈值可以理解为上述实施例中的通信组选择阈值。
步骤320:启动训练。
步骤322:执行集合通信算法。
具体的,执行集合通信算法可以理解为,确定目标集合通信算法,并根据该目标集合通信算法执行后续的模型训练过程。
步骤324:获取通信量。
具体的,获取通信量可以理解为,上述实施例中确定待处理数据的数据处理通信量以及待处理数据的数据类型。
步骤326:判断通信量是否大于通信量阈值,若是,则执行步骤328,若否,则执行步骤330。
步骤328:Comm_bw选择。
具体的,在确定数据处理通信量大于该通信量阈值的情况下,选择带宽优化通信组即Comm_bw。
步骤330:Comm_lat选择。
具体的,在确定数据处理通信量小于该通信量阈值的情况下,选择延迟优化通信组即Comm_lat。
步骤332:通信执行。
具体的,通信执行可以理解为上述实施例中根据目标通信组(如带宽优化通信组或者延迟优化通信组),执行模型训练。
步骤334:结束。
具体的,结束可以理解为,结束训练循环。
本说明书实施例提供的数据通信优化方法,针对带宽延迟在不同数据量下的性能表现,实现了带宽优化通信组和延迟优化通信组的多通信组并存的优化方法,保证一次训练的复杂工作量能够达到多目标较优解,在面对不同通信数据量的情况下,可以选择其合适的通信组进行通信,提高通信性能以及模型训练的训练效率。
与上述方法实施例相对应,本说明书还提供了数据通信优化装置实施例,图4示出了本说明书一个实施例提供的一种数据通信优化装置的结构示意图。如图4所示,该装置包括:
请求确定模块402,被配置为确定数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
数据确定模块404,被配置为根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值;
通信组确定模块406,被配置为根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述集合通信算法对应;
请求执行模块408,被配置为根据所述目标通信组,执行所述数据处理请求。
可选地,所述装置,还包括:
算法调用模块,被配置为:
获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法,其中,所述目标集合通信算法为所述原始集合通信算法中的任意一种。
可选地,所述装置,还包括:
通信组构建模块,被配置为:
在确定存在集合通信算法性能表的情况下,调用所述集合通信算法性能表,并根据所述集合通信算法性能表构建至少两个通信组,其中,所述至少两个通信组中各通信组的通信协议不同。
在确定不存在集合通信算法性能表的情况下,根据所述待处理数据构建所述原始集合通信算法对应的至少两个通信组,其中,所述至少两个通信组中各通信组的通信协议不同。
可选地,所述装置,还包括:
性能统计模块,被配置为:
确定所述待处理数据的数据类型,以及所述数据类型对应的预设通信量集合;
依次从所述预设通信量集合中确定目标通信量,根据所述原始集合通信算法对应的至少两个通信组对所述目标通信量进行执行处理,确定所述原始集合通信算法对应的至少两个通信组的执行性能集合;
根据所述执行性能集合构建集合通信算法性能表。
可选地,所述装置,还包括:
阈值确定模块,被配置为:
根据所述集合通信算法性能表,确定所述原始集合通信算法对应的通信组选择阈值。
可选地,所述通信组确定模块406,进一步被配置为:
将所述数据处理通信量与所述通信组选择阈值进行比较,根据比较结果从至少两个通信组中确定目标通信组。
可选地,所述通信组确定模块406,进一步被配置为:
所述至少两个通信组,包括:
带宽优化通信组和延迟优化通信组。
可选地,所述通信组确定模块402,进一步被配置为:
确定针对目标机器学习模型的模型训练请求;
相应地,所述请求执行模块408,进一步被配置为:
根据所述目标通信组,执行所述针对目标机器学习模型的模型训练请求。
本说明书实施例提供的数据通信优化装置,通过根据数据处理请求中携带的待处理数据的数据处理通信量、以及通信组选择阈值,从多个通信组中选择目标通信组,可以实现根据数据处理通信量的不同,根据对应的通信组选择阈值,选择其合适的目标通信组进行数据处理,使得该数据通信优化装置应用于深度学习模型的分布式训练场景中,可以极大的提高其模型训练过程中的通信性能以及模型训练效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据通信优化装置实施例而言,由于其基本相似于数据通信优化方法实施例,所以描述的比较简单,相关之处参见数据通信优化方法实施例的部分说明即可。
与上述方法实施例相对应,本说明书还提供了数据通信优化系统实施例,图5示出了本说明书一个实施例提供的一种数据通信优化系统的结构示意图。如图5所示,该系统包括:适配节点、算法节点、预测节点、调度节点,其中:
所述适配节点502,被配置为确定从所述网络节点发送的数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
所述算法节点504,被配置为确定所述目标集合通信算法,根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量;
所述调度节点506,被配置为根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述目标集合通信算法对应,且所述至少两个通信组、以及所述通信组选择阈值在所述预测节点608确定;
所述调度节点506,还被配置为根据所述目标通信组,执行所述数据处理请求。
本说明书实施例提供的数据通信优化系统,通过根据数据处理请求中携带的待处理数据的数据处理通信量、以及通信组选择阈值,从多个通信组中选择目标通信组,可以实现根据数据处理通信量的不同,根据对应的通信组选择阈值,选择其合适的目标通信组进行数据处理,使得该数据通信优化系统应用于深度学习模型的分布式训练场景中,可以极大的提高其模型训练过程中的通信性能以及模型训练效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据通信优化系统实施例而言,由于其基本相似于数据通信优化方法实施例,所以描述的比较简单,相关之处参见数据通信优化方法实施例的部分说明即可。
参见图6,图6示出了本说明书一个实施例提供的一种数据通信优化系统的架构图。
本说明书一个实施例提供的一种数据通信优化系统的具体架构可以分为5层,从上向下依次是适配层602、算法层604、调度层606、预测层608、网络层610:
适配层602:主要为用户接口侧实现,具有统一的通信加速框架,统一的通信加速框架具体包含第一组件、第二组件、第三组件三大组件,可以通过一行代码注册到开源的python机器学习库的后端,快速适配。
第一组件:主要为python侧的集合通信算法接口,如通信组的创建和销毁,最终会调用底层的第二组件接口,用于截获python对原始通信库的调用链路;
第二组件:主要为c++侧实现的通信组后端代码,包括allreduce等不同的集合通信算法的定义,用于取代原始通信库的原生集合通信算法侧的调用实现;
第三组件:主要为nccl接口的网络侧接口实现,包括套接字、直接内存访问通信接口的实现,用于取代原始通信库的原生通信侧接口实现。
算法层604:主要为第二组件后端实现的集合通信算法,这一层会根据用户的实际调用,调用到底层的原始通信库实现;此外这一层还需要实现不同的通信量截获,用于下一层的通信组选择。
调度层606:主要为选择comm_bw带宽优化的通信组、comm_lat延迟优化的通信组、msg_gate通信组选择阈值,选择逻辑主要依据预测层实测结果进行区分,通信量size<通信组选择阈值,则选择延迟优化的通信组作为目标通信组执行对应的集合通信算法,否则选择带宽优化的通信组作为目标通信组执行对应的集合通信算法:
Comm_bw为simple协议做带宽优化的通信组构建;
Comm_lat为LL128协议做延迟优化的通信组构建;
多个通信组的存在只会额外占用20兆显存的额外开销,其他资源不会有额外的占用,所以如果同一时间只存在一个通信组真正进行通信的话,性能上其他通信组不调用不会有影响,这一细节使得本说明书实施例提供的数据通信优化方法对应的多通信组方案成为较优。
预测层608:主要针对网络层的原始通信库的接口进行劫持,比如劫持对原始通信库的接口函数进行Pre-check的执行;Pre-check的功能主要是针对既定的数据量进行预先通信压测,在原始通信库接收到的执行参数下进行多个通信组的构建,执行并记录具体的性能指标更新到全局的性能统计表。
网络层610:这一层主要是原始通信库的实现,具体的会有套接字通信或直接内存访问通信,这一层会有一些原生数据类型的API暴露,比如原始工作量会从开源的python机器学习库等人工智能框架侧调用初始的接口函数初始化进行通信组的构建。
将本说明书一个实施例提供的一种数据通信优化系统的架构图与本说明书一个实施例提供的一种数据通信优化方法的具体处理过程流程图结合说明本说明书一个实施例。
在适配层中,输入待交付的python代码,确定数据处理请求,通过统一的通信加速框架中具体包含的第一组件、第二组件、第三组件三大组件,快速适配,实现获取与数据处理请求对应的原始通信库的调用链路,根据调用链路调用所述原始通信库中的原始集合通信算法。
在预测层中,进行API劫持,判断是否存在Cache,如果在确定存在集合通信算法性能表的情况下,Loadcache,构建通信组;如果在确定不存在集合通信算法性能表的情况下,执行Pre-check,构建性能表,主要针对网络层的原始通信库的接口进行劫持,比如劫持对原始通信库的接口函数进行Pre-check的执行;Pre-check的功能主要是针对既定的数据量进行预先通信压测,在原始通信库接收到的执行参数下进行多个comms通信组的构建,执行并记录具体的性能指标更新到全局的性能统计表。
在调度层中,根据目标集合通信算法,确定待处理数据的数据处理通信量、以及对应的通信组选择阈值;根据数据处理通信量、以及通信组选择阈值,从至少两个通信组中确定目标通信组,主要为选择带宽优化的通信组、延迟优化的通信组、通信组选择阈值,选择逻辑主要依据预测层实测结果进行区分。
在算法层中,执行集合通信算法,获取通信量,在算法层中会根据用户的实际调用,调用到底层的原始通信库的实现;此外这一层还需要实现不同的通信量截获。
将本说明书一个实施例提供的一种数据通信优化系统的架构图与本说明书一个实施例提供的一种数据通信优化方法的具体处理过程流程图结合说明本说明书一个实施例,基于多通信组对性能的无损效应,充分利用带宽、延迟的通信特点,实现出本说明书实施例提供的数据通信优化方法对应的基于多通信组的带宽延迟混合优化方案,本说明书实施例提供的数据通信优化方法本质上为一种混合有效载重的协议栈实现,从而达到分布式训练在特定集群网络下的较优性能。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据通信优化方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于计算设备实施例而言,由于其基本相似于数据通信优化方法实施例,所以描述的比较简单,相关之处参见数据通信优化方法实施例的部分说明即可。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据通信优化方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于计算机可读存储介质实施例而言,由于其基本相似于数据通信优化方法实施例,所以描述的比较简单,相关之处参见数据通信优化方法实施例的部分说明即可。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据通信优化方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于计算机程序实施例而言,由于其基本相似于数据通信优化方法实施例,所以描述的比较简单,相关之处参见数据通信优化方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (13)
1.一种数据通信优化方法,包括:
确定数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值;
根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述目标集合通信算法对应;
根据所述目标通信组,执行所述数据处理请求。
2.根据权利要求1所述的数据通信优化方法,所述确定数据处理请求之后,所述根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值之前,还包括:
获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法,其中,所述目标集合通信算法为所述原始集合通信算法中的任意一种。
3.根据权利要求2所述的数据通信优化方法,所述获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法之后,还包括:
在确定存在集合通信算法性能表的情况下,调用所述集合通信算法性能表,并根据所述集合通信算法性能表构建至少两个通信组,其中,所述至少两个通信组中各通信组的通信协议不同。
4.根据权利要求2所述的数据通信优化方法,所述获取与所述数据处理请求对应的原始通信库的调用链路,根据所述调用链路调用所述原始通信库中的原始集合通信算法之后,还包括:
在确定不存在集合通信算法性能表的情况下,根据所述待处理数据构建所述原始集合通信算法对应的至少两个通信组,其中,所述至少两个通信组中各通信组的通信协议不同。
5.根据权利要求4所述的数据通信优化方法,所述根据所述待处理数据构建至少两个通信组之后,还包括:
确定所述待处理数据的数据类型,以及所述数据类型对应的预设通信量集合;
依次从所述预设通信量集合中确定目标通信量,根据所述原始集合通信算法对应的至少两个通信组对所述目标通信量进行执行处理,确定所述原始集合通信算法对应的至少两个通信组的执行性能集合;
根据所述执行性能集合构建集合通信算法性能表。
6.根据权利要求3或5所述的数据通信优化方法,还包括:
根据所述集合通信算法性能表,确定所述原始集合通信算法对应的通信组选择阈值。
7.根据权利要求1所述的数据通信优化方法,所述根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,包括:
将所述数据处理通信量与所述通信组选择阈值进行比较,根据比较结果从至少两个通信组中确定目标通信组。
8.根据权利要求1所述的数据通信优化方法,所述至少两个通信组,包括:
带宽优化通信组和延迟优化通信组。
9.根据权利要求1所述的数据通信优化方法,所述确定数据处理请求,包括:
确定针对目标机器学习模型的模型训练请求;
相应地,所述根据所述目标通信组,执行所述数据处理请求,包括:
根据所述目标通信组,执行所述针对目标机器学习模型的模型训练请求。
10.一种数据通信优化装置,包括:
请求确定模块,被配置为确定数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
数据确定模块,被配置为根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量、以及对应的通信组选择阈值;
通信组确定模块,被配置为根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述集合通信算法对应;
请求执行模块,被配置为根据所述目标通信组,执行所述数据处理请求。
11.一种数据通信优化系统,包括适配节点、算法节点、预测节点、调度节点,其中:
所述适配节点,被配置为确定从网络节点发送的数据处理请求,其中,所述数据处理请求中携带有待处理数据、以及与所述待处理数据对应的目标集合通信算法;
所述算法节点,被配置为确定所述目标集合通信算法,根据所述目标集合通信算法,确定所述待处理数据的数据处理通信量;
所述调度节点,被配置为根据所述数据处理通信量、以及所述通信组选择阈值,从至少两个通信组中确定目标通信组,其中,所述至少两个通信组与所述目标集合通信算法对应,且所述至少两个通信组、以及所述通信组选择阈值在所述预测节点确定;
所述调度节点,还被配置为根据所述目标通信组,执行所述数据处理请求。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述数据通信优化方法的步骤。
13.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述数据通信优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310602704.5A CN116896586A (zh) | 2023-05-24 | 2023-05-24 | 数据通信优化方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310602704.5A CN116896586A (zh) | 2023-05-24 | 2023-05-24 | 数据通信优化方法、装置以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116896586A true CN116896586A (zh) | 2023-10-17 |
Family
ID=88309948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310602704.5A Pending CN116896586A (zh) | 2023-05-24 | 2023-05-24 | 数据通信优化方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116896586A (zh) |
-
2023
- 2023-05-24 CN CN202310602704.5A patent/CN116896586A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8266274B2 (en) | Method and apparatus for data processing | |
CN108429701B (zh) | 网络加速系统 | |
CN109426574A (zh) | 分布式计算系统,分布式计算系统中数据传输方法和装置 | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
CN106209506A (zh) | 一种虚拟化深度包检测流量分析方法及系统 | |
CN112508573B (zh) | 一种交易数据处理方法、装置以及计算机设备 | |
CN113835902B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN104702592A (zh) | 流媒体下载方法和装置 | |
CN109309728A (zh) | 一种数据处理方法以及相关装置 | |
US20200195564A1 (en) | Data transmission boosting device | |
CN114610475A (zh) | 一种智能资源编排模型的训练方法 | |
CN111224831A (zh) | 用于生成话单的方法和系统 | |
CN109918054B (zh) | 一种基于形式化规范的服务总线微内核框架设计方法 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112711683A (zh) | 数据比对方法、装置及计算机设备 | |
CN116896586A (zh) | 数据通信优化方法、装置以及系统 | |
CN116055403A (zh) | 报文数据的传输方法、装置和服务器 | |
CN115580667A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN113271336B (zh) | 基于dpdk的机器人中间件dds数据传输方法、电子设备及计算机可读存储介质 | |
CN107707383B (zh) | 放通处理方法、装置、第一网元及第二网元 | |
CN112383443A (zh) | 运行于rdma通信环境的并行应用通信性能预测方法 | |
US11086822B1 (en) | Application-based compression | |
US20230021063A1 (en) | Method and apparatus for transmitting mobile edge computing application | |
CN115996203B (zh) | 网络流量分域方法、装置、设备和存储介质 | |
CN115277558B (zh) | 报文发送方法、装置、计算机存储介质及电子设备 |
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 |