CN113472597B - 分布式卷积神经网络细粒度的参数传输调度方法及装置 - Google Patents
分布式卷积神经网络细粒度的参数传输调度方法及装置 Download PDFInfo
- Publication number
- CN113472597B CN113472597B CN202110936232.8A CN202110936232A CN113472597B CN 113472597 B CN113472597 B CN 113472597B CN 202110936232 A CN202110936232 A CN 202110936232A CN 113472597 B CN113472597 B CN 113472597B
- Authority
- CN
- China
- Prior art keywords
- priority
- parameter
- mapping table
- execution time
- time
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Abstract
本发明实施例公开一种分布式卷积神经网络细粒度的参数传输调度方法及装置,包括:根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作‑优先级映射表,资源关联图为与每个操作相关联的资源标签的计算图,资源标签包括通信与计算;根据操作‑优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数‑优先级映射表;建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据标识信息生成通道‑优先级映射表;基于接收到的参数发送请求,分别查找参数‑优先级映射表和通道‑优先级映射表,根据参数的优先级分配相应优先级的网络流,将参数发送至网络设备中。
Description
技术领域
本发明涉及网络通信技术领域,具体而言,涉及一种分布式卷积神经网络细粒度的参数传输调度方法及装置。
背景技术
在近几年的发展中,由于机器学习(Machine Learning,ML)框架的灵活开发、越来越丰富的数据集以及逐渐完善的高性能计算,人工智能领域得以发展迅猛。随着机器学习模型愈发复杂,训练深度逐渐加深,导致训练模型的计算成本超出单个机器的负荷能力,因此分布式机器学习(Distributed Machine Learning,DML)成为短时间内完成大规模的模型训练的有效解决方案之一。卷积神经网络(Convolutional Neural Network,CNN)作为ML中的一种算法,主要用于图像特征提取,已经成功应用在图像识别和自然语言处理领域。随着网络模型的日益复杂和数据集的快速增长,算法模型和输入数据愈发复杂,分布式CNN中通信量也变得巨大。
在分布式CNN模型训练中,每次迭代都是计算节点先接收到更新后的参数,然后根据各自的训练数据子集来进行计算梯度。最后,聚集不同节点的梯度以更新模型参数。因此,随着DML集群规模的增长,通信可能成为制约分布式CNN模型训练速度的瓶颈。同时随着计算端硬件加速器的快速发展,如GPU和FPGAs,频繁的参数/梯度交换很容易使网络端成为瓶颈,从而降低DML的训练性能。
发明人发现在TensorFlow是一种用图来表示计算的平台。在数据并行模式下,每个工作节点都有一套完整的模型副本和部分数据子集,即数据集被分割成多个子集。每次迭代由参与的工作节点使用相同的计算图进行处理,每次迭代通常持续几毫秒到几秒钟。在每次迭代结束时,参数服务器会聚合所有节点的梯度来更新模型参数,在此过程中服务器会交换大量数据,这种通信开销对系统的吞吐量有很大影响,也限制了模型的可扩展性。因此,如何解决由于通信量巨大而限制模型训练速度慢、效率低、延迟高等问题,是目前亟需解决。
发明内容
本发明提供了一种分布式卷积神经网络细粒度的参数传输调度方法及装置,以实现基于优先级的流传输调度机制,通过细粒度的参数传输实现模型计算和通信的高度重叠,基于优先级的流传输机制,降低了突发流量对模型性能的影响。具体的技术方案如下:
第一方面,本发明实施例提供了一种分布式卷积神经网络细粒度的参数传输调度方法,所述方法包括:
根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;
根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;
建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;
基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中。
可选的,所述方法还包括:
根据每个操作的执行时间,计算所有操作的执行时间上限;
根据所述资源关联图中的资源标签,以及操作执行的并行性,计算操作执行时间下限;
根据所述操作执行时间上限、操作执行时间下限以及完成一个迭代的计划完成时间计算优先级的调度效率;
根据所述操作执行时间上限、操作执行时间下限量化所述计算图和参数优先级的性能收益。
可选的,计算所述操作执行时间上限时,采用下述公式:
其中,Ucomplete为操作执行时间上限,G是计算图,Time是每个操作的执行时间,op为每个操作;
计算所述操作执行时间下限时,采用下述公式:
其中,Lcomplete为操作执行时间下限,D为资源关联集,会参考所有的操作将资源标签分配给资源关联子集。
计算调度效率采用下述公式:
其中,E(G,Time,m)为调度效率,m为完成一个迭代的计划完成时间;
计算性能收益采用下述公式:
可选的,根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序包括:
判断网络属性是否满足预设传输条件;
若满足,则在获取所述计算图依赖关系后,确定与每个操作有依赖关系的节点数量;
根据所述与每个操作有依赖关系的节点数量及资源关联图确定接收操作的优先执行顺序。
可选的,建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表包括:
建立所述参数服务器与每个计算节点之间的两个数据流,分别为高流和低流;
分别为高流和低流分配唯一标识信息;
将优先级执行顺序划分为两部分,为优先级相对高的分配高流传输,为优先级相对的的分配低流传输;
根据所述标识信息、优先级与高流/低流的对应关系生成通道-优先级映射表。
可选的,基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中包括:
获取每个操作的执行时长,并将所述每个操作的执行时长发送给时间预测模块;
由所述时间预测模块根据执行时长统计每个操作的运行时间,生成时间预测表,并将所述时间预测表发送给排序分配模块;
由所述排序分配模块根据参数-优先级映射表为每个计算节点的操作分配优先级,将操作和通道-优先级映射表发送到执行模块;
由所述执行模块将优先级列表作为输入,并在所述分布式卷积神经网络传输中执行所述优先级顺序。
可选的,所述方法还包括:
在所述分布式卷积神经网络传输中按所述优先级顺序执行操作时,须等待其依赖关系完成后才能继续执行后续操作。
第二方面,本发明实施例提供了一种分布式卷积神经网络细粒度的参数传输调度装置,所述装置包括:
第一计算单元,用于根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序;
第一生成单元,用于生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;
第二生成单元,用于根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;
建立单元,用于建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;
处理单元,用于基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中。
可选的,所述装置还包括:
第二计算单元,用于根据每个操作的执行时间,计算所有操作的执行时间上限;
第三计算单元,用于根据所述资源关联图中的资源标签,以及操作执行的并行性,计算操作执行时间下限;
第四计算单元,用于根据所述操作执行时间上限、操作执行时间下限以及完成一个迭代的计划完成时间计算优先级的调度效率;
第五计算单元,用于根据所述操作执行时间上限、操作执行时间下限量化所述计算图和参数优先级的性能收益。
可选的,第二计算单元计算所述操作执行时间上限时,采用下述公式:
其中,Ucomplete为操作执行时间上限,G是计算图,Time是每个操作的执行时间,op为每个操作;
第三计算单元计算所述操作执行时间下限时,采用下述公式:
其中,Lcomplete为操作执行时间下限,D为资源关联集,会参考所有的操作将资源标签分配给资源关联子集。
第四计算单元计算调度效率采用下述公式:
其中,E(G,Time,m)为调度效率,m为完成一个迭代的计划完成时间;
第五计算单元计算性能收益采用下述公式:
可选的,所述第一计算单元包括:
判断模块,用于判断网络属性是否满足预设传输条件;
第一确定模块,用于当所述判断模块确定网络属性满足预设传输条件时,在获取所述计算图依赖关系后,确定与每个操作有依赖关系的节点数量;
第二确定模块,用于根据所述与每个操作有依赖关系的节点数量及资源关联图确定接收操作的优先执行顺序。
可选的,所述建立单元包括:
建立模块,用于建立所述参数服务器与每个计算节点之间的两个数据流,分别为高流和低流;
第一分配模块,用于分别为所述建立模块建立的所述高流和低流分配唯一标识信息;
第二分配模块,用于将优先级执行顺序划分为两部分,为优先级相对高的分配高流传输,为优先级相对的的分配低流传输;
生成模块,用于根据所述标识信息、优先级与高流/低流的对应关系生成通道-优先级映射表。
可选的,处理单元包括:
获取模块,用于获取每个操作的执行时长,并将所述每个操作的执行时长发送给时间预测模块;
生成模块,用于由所述时间预测模块根据执行时长统计每个操作的运行时间,生成时间预测表,并将所述时间预测表发送给排序分配模块;
分配模块,用于由所述排序分配模块根据参数-优先级映射表为每个计算节点的操作分配优先级,将操作和通道-优先级映射表发送到执行模块;
输入模块,用于由所述执行模块将优先级列表作为输入,并在所述分布式卷积神经网络传输中执行所述优先级顺序。
可选的,所述装置还包括:
执行单元,用于在所述分布式卷积神经网络传输中按所述优先级顺序执行操作时,须等待其依赖关系完成后才能继续执行后续操作。
由上述内容可知,本发明实施例提供的一种分布式卷积神经网络细粒度的参数传输调度方法及装置,根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中。本发明实施例基于优先级的流传输调度机制,通过细粒度的参数传输实现模型计算和通信的高度重叠,基于优先级的流传输机制,降低了突发流量对模型性能的影响。
本发明实施例的创新点包括:
1、基于优先级的流传输调度机制,通过细粒度的参数传输实现模型计算和通信的高度重叠,设计了基于优先级的流传输机制,降低了突发流量对模型性能的影响。
2、在进行细粒度的优先级分配时,使用了卷积神经网络(Convolutional NeuralNetworks,CNN)的参数优先级分配机制,从本地模型考虑优化计算图的关键路径,结合实际训练数据、资源情况以及网络情况来完成优先级的分配,从而灵活地采取优先级分配机制和流传输调度机制,缓解网络瓶颈,实现高效的模型训练。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的一种分布式卷积神经网络细粒度的参数传输调度方法流程示意图;
图2示出了本发明实施例提供的一种分布式CNN模型训练框架;
图3为本发明实施例提供的CNN具有分层结构的示意图;
图4示出了本发明实施例提供的一种生成操作-优先级映射表的示意图;
图5示出了本发明实施例提供的另一种分布式卷积神经网络细粒度的参数传输调度方法流程示意图;
图6示出了本发明实施例提供的一种分布式卷积神经网络细粒度的参数传输调度装置示意图;
图7示出了本发明实施例提供的另一种分布式卷积神经网络细粒度的参数传输调度装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明实施例提供了一种分布式卷积神经网络细粒度的参数传输调度方法,所述方法包括:
101、根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;
在说明本发明实施例的具体实施过程之前,先详细说明一下卷积神经网络(Convolutional Neural Networks,CNN)的具体架构,如图2所示,图2示出了本发明实施例提供的一种分布式CNN模型训练框架,本发明实施例中,通过分布式TensorFlow来部署实现分布式CNN的模型训练。在此结构中,采用参数服务器架构、数据并行以及异步更新方式进行CNN模型训练。其包括一个参数服务器(Parameter Server,PS)、一个数据库服务器(Database)和多个计算节点(worker),每次迭代都是由节点计算梯度,然后在参数服务器PS上更新参数,之后再把新的参数广播给所有节点,多次迭代直至完成CNN模型训练。
CNN具有分层结构(图3),主要包括卷积层(CONV)、汇聚层(POOL)、激活层(ReLU)和全连接层(FC)等,每一层都包含大量的神经元,相邻层的这些神经元相互连接。一般来说,CONV层包含的参数较少,但需要进行的计算较多。除了输入层,ReLU层和POOL层都不包含参数。
计算图是基于TensorFlow执行CNN模型训练的基础,分为两个阶段进行。首先是构建阶段,生成一个包含所有节点和操作的有向图,其次是执行阶段,图的执行一定要在Session环境中启动执行(表1)。
表1计算图的组成
计算图中主要有两种类型的运算,一是计算运算,例如乘法、卷积等;二是通信操作,例如读取和更新,需要说明的是,每个参数都是独立读取和更新的。资源关联图是具有与每个操作相关联的资源标签的计算图,其中计算操作被分配给相应的计算资源,通信操作被分配给相应的通信信道。
在具体实施过程中,在生成操作-优先级映射表时,还需要参照网络属性,该网络属性为CNN的基础属性,如链路情况、利用率、可用性等等,当网络属性满足预设条件阈值时,该节点才有分配优先级资格,具体预设条件阈值是一经验值,可根据不同的应用场景进行设置。
在生成操作-优先级映射表时,需要根据该节点的依赖关系确定优先级,如图4所示,(a)为简单计算图,(b)为最差顺序(c)为最优顺序,对所有节点进行优先级排序,其中,recv1、recv2、recv3作为输入,即接收参数recv1、recv2、recv3,其中,recv1有2条边与之有依赖,则recv1的优先级为2,recv2和recv3分别有3条边与之有依赖,则recv2和recv3的优先级均为3,因此,在执行时,先执行recv2或者recv3,再执行recv1,按照优先级数从高到低的顺序执行,消耗4个单位时间,若先执行recv1,再执行recv2或recv3,则消耗5个单位时间。需要说明的是以上仅为便于理解给出的示例,实际应用中节点的个数是不固定的,操作的具体计算亦不固定,具体不做限定。
102、根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;
在分布式CNN模型训练过程中,每个Worker都相同的模型副本。然而在PS还有一个不同于Worker的计算图。该计算图中的参数涉及五个操作,分别是参数聚合、发送参数、接收参数、读取参数和更新参数。通常情况下在PS上的聚合、读取和更新是轻量级的。此时参数的传输是由Worker驱动的,每次迭代都是由PS激活所有发送和接收操作,PS负责控制网络传输,因此在PS中不会出现通信计算重叠的问题,只需考虑Worker中的计算图优化问题。在Worker计算图中,所有获取参数操作(recv)都是根操作,推送参数操作都是叶操作。所以在某些情况下,recv操作可能会阻碍计算图中分支计算,造成计算阻塞,延迟下次迭代的开始。
worker在每次迭代开始时从参数服务器接收参数,所有参数不会同时使用,而是根据底层计算图中的依赖关系进行先后使用。然而一个特定的参数传输计划可能有助于更快的计算,因此确定参数传输的最佳调度对于减少计算阻塞(由计算图相关性决定),改善计算通信重叠以及缩短迭代时间至关重要。本发明实施例中根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表,通过对底层计算图的关键路径分析来获得参数传输的近似最优调度,利用细粒度的调度来解决随机参数的传输问题,从而利用基于参数服务器的聚合来提高分布式CNN模型训练的性能。
103、建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;
本发明实施例在具体实施过程中,为参数服务器与每个计算节点之间建立两个数据流,一个高优先级数据流,一个低优先级数据流,本发明实施例通过引入优先级阈值来决定一个参数应该由高优先级流还是低优先级流发送。若一个参数的优先级数大于优先级阈值,则该参数将由高优先级流发送,反之亦然。所述优先级阈值为一经验值,其具体设定需根据其应用场景进行设置。
104、基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中。
在不同的节点之间建立多个具有不同优先级的流,并生成通道表,同时为每一个流都被分配一个唯一的本地标识。当需要发送参数时,首先查找参数-优先级映射表,获得一个优先级编号,其次根据优先级编号查找通道表,获得一个合适的流进行发送参数。该参数被发送到网络设备中,在整个网络设备中,优先级标签总是在数据包报头中携带。当这两个参数同时到达交换机时交换机可以通过标签来区分它们,并根据优先级标签进一步转发它们。
本发明实施例提供的一种分布式卷积神经网络细粒度的参数传输调度方法,根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中。本发明实施例基于优先级的流传输调度机制,通过细粒度的参数传输实现模型计算和通信的高度重叠,基于优先级的流传输机制,降低了突发流量对模型性能的影响。
作为对上述实施例的进一步扩展,在基于上述方法实现参数的传输后,为了更好的提高传输效率,下面会对传输效率进行性能收益的计算,如图5所示,包括:
201、根据每个操作的执行时间,计算所有操作的执行时间上限;
在本发明实施例中,定义了一个指标来量化给定执行(按照优先级)的调度效率。最大完成时间(m)是通过假设在执行期间的任何给定时刻仅使用一个资源来计算,即操作是顺序执行的。
具体实施过程中,计算所述操作执行时间上限时,采用下述公式:
其中,Ucomplete为操作执行时间上限,G是计算图,Time是每个操作的执行时间,op为每个操作;
202、根据所述资源关联图中的资源标签,以及操作执行的并行性,计算操作执行时间下限;
在实际应用中,由于计算和通信可以并行进行,因此最大完成时间将低于该值。最大完成时间的下限是通过假设所有的资源总是被利用来计算。计算所述操作执行时间下限时,采用下述公式:
其中,Lcomplete为操作执行时间下限,D为资源关联集,会参考所有的操作将资源标签分配给资源关联子集。
203、根据所述操作执行时间上限、操作执行时间下限以及完成一个迭代的计划完成时间计算优先级的调度效率;
对于给定的迭代,我们测量每个op的运行时间以及该迭代的完成时间,然后计算最大完成时间的界限。计算调度效率采用下述公式:
其中,E(G,Time,m)为调度效率,m为完成一个迭代的计划完成时间;其中E=1表示最优调度顺序,E=0表示最差调度顺序。
204、根据所述操作执行时间上限、操作执行时间下限量化所述计算图和参数优先级的性能收益。
计算性能收益采用下述公式:
指标量化了在给定的计算图和高效的时间表下可实现的性能收益。S=0表示调度没有好处,S=1表示吞吐量翻倍。通过指标量化可以优化参数传输优先级,为最优优先级提供参考依据。
步骤101在执行根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序时,可以采用但不局限于以下方法包括:判断网络属性是否满足预设传输条件;若满足,则在获取所述计算图依赖关系后,确定与每个操作有依赖关系的节点数量;根据所述与每个操作有依赖关系的节点数量及资源关联图确定接收操作的优先执行顺序。
步骤103在执行建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表时可以采用但不局限于以下方法包括:建立所述参数服务器与每个计算节点之间的两个数据流,分别为高流和低流;分别为高流和低流分配唯一标识信息;将优先级执行顺序划分为两部分,为优先级相对高的分配高流传输,为优先级相对的的分配低流传输;根据所述标识信息、优先级与高流/低流的对应关系生成通道-优先级映射表。具体实施过程中,优先级的相对高低,通过优先级阈值进行确定,具体优先级阈值的大小可根据优先级的排名个数进行设定,例如优先级个数为7,则可设定优先级阈值为3或者4。以上仅为示例性的举例,本发明实施例对优先级阈值设定给不进行限定。
作为本发明实施例的一种实现方式,基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中包括:
跟踪统计模块,用于获取每个操作的执行时长,并将所述每个操作的执行时长发送给时间预测模块;
所述时间预测模块,根据执行时长统计每个操作的运行时间,生成时间预测表,并将所述时间预测表发送给排序分配模块;
所述排序分配模块,根据参数-优先级映射表为每个计算节点的操作分配优先级,将操作和通道-优先级映射表发送到执行模块;
所述执行模块,将优先级列表作为输入,并在所述分布式卷积神经网络传输中执行所述优先级顺序。需要说明的是,在所述分布式卷积神经网络传输中按所述优先级顺序执行操作时,须等待其依赖关系完成后才能继续执行后续操作。
与上述的分布式卷积神经网络细粒度的参数传输调度方法相对应,本发明还提出一种分布式卷积神经网络细粒度的参数传输调度装置。由于本发明的装置实施例与上述的方法实施例相对应,对于装置实施例中未披露的细节可参照上述的方法实施例,本发明中不再进行赘述。
本发明实施例提供了一种分布式卷积神经网络细粒度的参数传输调度装置,如图6所示,所述装置包括:
第一计算单元31,用于根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序;
第一生成单元32,用于生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;
第二生成单元33,用于根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;
建立单元34,用于建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;
处理单元35,用于基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级分配相应优先级的网络流,将所述参数发送至网络设备中。
进一步的,如图7所示,所述装置还包括:
第二计算单元36,用于根据每个操作的执行时间,计算所有操作的执行时间上限;
第三计算单元37,用于根据所述资源关联图中的资源标签,以及操作执行的并行性,计算操作执行时间下限;
第四计算单元38,用于根据所述操作执行时间上限、操作执行时间下限以及完成一个迭代的计划完成时间计算优先级的调度效率;
第五计算单元39,用于根据所述操作执行时间上限、操作执行时间下限量化所述计算图和参数优先级的性能收益。
进一步的,如图7所示,第二计算单元36计算所述操作执行时间上限时,采用下述公式:
其中,Ucomplete为操作执行时间上限,G是计算图,Time是每个操作的执行时间,op为每个操作;
第三计算单元37计算所述操作执行时间下限时,采用下述公式:
其中,Lcomplete为操作执行时间下限,D为资源关联集,会参考所有的操作将资源标签分配给资源关联子集。
第四计算单元38计算调度效率采用下述公式:
其中,E(G,Time,m)为调度效率,m为完成一个迭代的计划完成时间;
第五计算单元39计算性能收益采用下述公式:
进一步的,如图7所示,所述第一计算单元31包括:
判断模块311,用于判断网络属性是否满足预设传输条件;
第一确定模块312,用于当所述判断模块确定网络属性满足预设传输条件时,在获取所述计算图依赖关系后,确定与每个操作有依赖关系的节点数量;
第二确定模块313,用于根据所述与每个操作有依赖关系的节点数量及资源关联图确定接收操作的优先执行顺序。
进一步的,如图7所示,所述建立单元34包括:
建立模块341,用于建立所述参数服务器与每个计算节点之间的两个数据流,分别为高流和低流;
第一分配模块342,用于分别为所述建立模块建立的所述高流和低流分配唯一标识信息;
第二分配模块343,用于将优先级执行顺序划分为两部分,为优先级相对高的分配高流传输,为优先级相对的的分配低流传输;
生成模块344,用于根据所述标识信息、优先级与高流/低流的对应关系生成通道-优先级映射表。
进一步的,如图7所示,处理单元35包括:
获取模块351,用于获取每个操作的执行时长,并将所述每个操作的执行时长发送给时间预测模块;
生成模块352,用于由所述时间预测模块根据执行时长统计每个操作的运行时间,生成时间预测表,并将所述时间预测表发送给排序分配模块;
分配模块353,用于由所述排序分配模块根据参数-优先级映射表为每个计算节点的操作分配优先级,将操作和通道-优先级映射表发送到执行模块;
输入模块354,用于由所述执行模块将优先级列表作为输入,并在所述分布式卷积神经网络传输中执行所述优先级顺序。
进一步的,如图7所示,所述装置还包括:
执行单元3010,用于在所述分布式卷积神经网络传输中按所述优先级顺序执行操作时,须等待其依赖关系完成后才能继续执行后续操作。
本发明实施例提供的一种分布式卷积神经网络细粒度的参数传输调度装置,根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中。本发明实施例基于优先级的流传输调度机制,通过细粒度的参数传输实现模型计算和通信的高度重叠,基于优先级的流传输机制,降低了突发流量对模型性能的影响。
上述系统、装置实施例与系统实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (6)
1.一种分布式卷积神经网络细粒度的参数传输调度方法,其特征在于,所述方法包括:
根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序,并生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;
根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;
建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;
基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级分配相应优先级的网络流,将所述参数发送至网络设备中;
根据每个操作的执行时间,计算所有操作的执行时间上限;
根据所述资源关联图中的资源标签,以及操作执行的并行性,计算操作执行时间下限;
根据所述操作执行时间上限、操作执行时间下限以及完成一个迭代的计划完成时间计算优先级的调度效率;
根据所述操作执行时间上限、操作执行时间下限量化所述计算图和参数优先级的性能收益;
计算所述操作执行时间上限时,采用下述公式:
其中,Ucomplete为操作执行时间上限,G是计算图,Time是每个操作的执行时间,op为每个操作;
计算所述操作执行时间下限时,采用下述公式:
其中,Lcomplete为操作执行时间下限,D为资源关联集,会参考所有的操作将资源标签分配给资源关联子集;
计算调度效率采用下述公式:
其中,E(G,Time,m)为调度效率,m为完成一个迭代的计划完成时间;
计算性能收益采用下述公式:
2.根据权利要求1所述的方法,其特征在于,根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序包括:
判断网络属性是否满足预设传输条件;
若满足,则在获取所述计算图依赖关系后,确定与每个操作有依赖关系的节点数量;
根据所述与每个操作有依赖关系的节点数量及资源关联图确定接收操作的优先执行顺序。
3.根据权利要求1所述的方法,其特征在于,建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表包括:
建立所述参数服务器与每个计算节点之间的两个数据流,分别为高流和低流;
分别为高流和低流分配唯一标识信息;
将优先级执行顺序划分为两部分,为优先级相对高的分配高流传输,为优先级相对低的分配低流传输;
根据所述标识信息、优先级与高流/低流的对应关系生成通道-优先级映射表。
4.根据权利要求1所述的方法,其特征在于,基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级以及通道,将所述参数发送至网络设备中包括:
获取每个操作的执行时长,并将所述每个操作的执行时长发送给时间预测模块;
由所述时间预测模块根据执行时长统计每个操作的运行时间,生成时间预测表,并将所述时间预测表发送给排序分配模块;
由所述排序分配模块根据参数-优先级映射表为每个计算节点的操作分配优先级,将操作和通道-优先级映射表发送到执行模块;
由所述执行模块将优先级列表作为输入,并在所述分布式卷积神经网络传输中执行优先级顺序。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述分布式卷积神经网络传输中按所述优先级顺序执行操作时,须等待其依赖关系完成后才能继续执行后续操作。
6.一种分布式卷积神经网络细粒度的参数传输调度装置,其特征在于,所述装置包括:
第一计算单元,用于根据分布式卷积神经网络底层计算图依赖关系、资源关联图及网络属性确认接收操作的优先执行顺序;
第一生成单元,用于生成操作-优先级映射表,所述资源关联图为与每个操作相关联的资源标签的计算图,所述资源标签包括通信与计算;
第二生成单元,用于根据所述操作-优先级映射表、以及每个接收操作相关联的通信/计算依赖关系,生成参数-优先级映射表;
建立单元,用于建立参数服务器与每个计算节点之间的至少一个数据流,并为每个数据流分配唯一标识信息,根据所述标识信息生成通道-优先级映射表;
处理单元,用于基于接收到的参数发送请求,分别查找所述参数-优先级映射表和所述通道-优先级映射表,根据所述参数的优先级分配相应优先级的网络流,将所述参数发送至网络设备中;
第二计算单元,用于根据每个操作的执行时间,计算所有操作的执行时间上限;
第三计算单元,用于根据所述资源关联图中的资源标签,以及操作执行的并行性,计算操作执行时间下限;
第四计算单元,用于根据所述操作执行时间上限、操作执行时间下限以及完成一个迭代的计划完成时间计算优先级的调度效率;
第五计算单元,用于根据所述操作执行时间上限、操作执行时间下限量化所述计算图和参数优先级的性能收益;
第二计算单元计算所述操作执行时间上限时,采用下述公式:
其中,Ucomplete为操作执行时间上限,G是计算图,Time是每个操作的执行时间,op为每个操作;
第三计算单元计算所述操作执行时间下限时,采用下述公式:
其中,Lcomplete为操作执行时间下限,D为资源关联集,会参考所有的操作将资源标签分配给资源关联子集;
第四计算单元计算调度效率采用下述公式:
其中,E(G,Time,m)为调度效率,m为完成一个迭代的计划完成时间;
第五计算单元计算性能收益采用下述公式:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110936232.8A CN113472597B (zh) | 2021-08-16 | 2021-08-16 | 分布式卷积神经网络细粒度的参数传输调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110936232.8A CN113472597B (zh) | 2021-08-16 | 2021-08-16 | 分布式卷积神经网络细粒度的参数传输调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472597A CN113472597A (zh) | 2021-10-01 |
CN113472597B true CN113472597B (zh) | 2022-07-22 |
Family
ID=77866755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110936232.8A Active CN113472597B (zh) | 2021-08-16 | 2021-08-16 | 分布式卷积神经网络细粒度的参数传输调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472597B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169427B (zh) * | 2021-12-06 | 2022-10-04 | 北京百度网讯科技有限公司 | 基于端到端自适应的分布式训练方法、装置、设备 |
CN115102910B (zh) * | 2022-08-25 | 2022-11-18 | 沐曦科技(成都)有限公司 | 数据传输方法、装置、网络设备及计算机可读存储介质 |
CN116596091B (zh) * | 2022-11-08 | 2024-02-02 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备以及存储介质 |
CN116151315B (zh) * | 2023-04-04 | 2023-08-15 | 之江实验室 | 一种面向晶上系统的注意力网络调度优化方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585823A (zh) * | 2020-05-20 | 2020-08-25 | 石高峰 | 基于区块链和边缘计算的通信网络优化方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015152871A1 (en) * | 2014-03-31 | 2015-10-08 | Hewlett-Packard Development Company, L.P. | Prioritization of network traffic in a distributed processing system |
CN111079921A (zh) * | 2019-11-29 | 2020-04-28 | 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 | 一种基于异构分布式系统的高效神经网络训练调度方法 |
-
2021
- 2021-08-16 CN CN202110936232.8A patent/CN113472597B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585823A (zh) * | 2020-05-20 | 2020-08-25 | 石高峰 | 基于区块链和边缘计算的通信网络优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113472597A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113472597B (zh) | 分布式卷积神经网络细粒度的参数传输调度方法及装置 | |
CN111932027B (zh) | 一种融合边缘设施的云服务综合调度优化系统及方法 | |
WO2024060789A1 (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
US20190392307A1 (en) | Method and apparatus for accelerating distributed training of a deep neural network | |
CN109669768A (zh) | 一种面向边云结合架构的资源分配和任务调度方法 | |
CN111367630A (zh) | 一种基于云计算的多用户多优先级的分布式协同处理方法 | |
CN114338504A (zh) | 一种基于网络边缘系统的微服务部署和路由方法 | |
CA3166419A1 (en) | Bandwidth allocation using machine learning | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN113867843B (zh) | 一种基于深度强化学习的移动边缘计算任务卸载方法 | |
Lin et al. | A model-based approach to streamlining distributed training for asynchronous SGD | |
CN115002123B (zh) | 基于移动边缘计算的快速适应任务卸载系统和方法 | |
CN115437760A (zh) | 计算资源分配方法、电子设备、存储介质及程序产品 | |
CN115994567A (zh) | 一种深度神经网络模型并行计算任务异步调度方法 | |
CN110048966B (zh) | 基于截止时间的最小化系统开销的Coflow调度方法 | |
CN111740925A (zh) | 一种基于深度强化学习的Coflow调度方法 | |
US11868808B2 (en) | Automatic driving simulation task scheduling method and apparatus, device, and readable medium | |
CN109976873A (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
CN113190342A (zh) | 用于云-边协同网络的多应用细粒度卸载的方法与系统架构 | |
CN117331693A (zh) | 基于dag的边缘云的任务卸载方法、装置及设备 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN109298932B (zh) | 基于OpenFlow的资源调度方法、调度器及系统 | |
CN114124732A (zh) | 一种面向云的带内计算部署方法、装置和系统 | |
Barika et al. | Adaptive scheduling for efficient execution of dynamic stream workflows | |
CN111309460A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |