用于任意树形拓扑的灵活、快速全归约的方法技术

技术编号:30404505 阅读:19 留言:0更新日期:2021-10-20 11:04
本公开描述了一种用于跨处理器发送数据以在处理器上组合数据的方法。在一个实施例中,一种方法包括在被配置在包括根和一个或多个叶子的非对称或对称的树形拓扑中的处理器集处接收数据集。基于被连接到父节点的子处理器的数目,将数据集的目标部分分配给处理器集中的处理器。该方法包括从一个或多个叶子开始,在树形拓扑的每个分支中共享相同父节点的子处理器之间发送迭代分配的组合数据,并且增加树形拓扑中的级别,直到到达根。该方法还包括在子处理器之间从一个分支向至少一个其它分支中的子处理器发送组合数据。分支中的子处理器发送组合数据。分支中的子处理器发送组合数据。

【技术实现步骤摘要】
【国外来华专利技术】用于任意树形拓扑的灵活、快速全归约的方法

技术介绍

[0001]针对本专利技术的主要用途中的一个主要用途涉及深度学习领域,并且更具体地,涉及在深度学习和/或高性能计算实现中对任意树形拓扑执行全归约算法。
[0002]深度学习是指基于对数据集的多个级别的特征或表示的学习的一类机器学习算法。当前的深度学习方法包括使用级联的、用于特征提取和变换的多个非线性处理单元层。特征提取是指接收测量数据的初始集合并且建立导出值(或特征)以促进随后的学习和泛化步骤的过程。在许多情况下,较高级别特征从较低级别特征被导出以生成测量数据和导出特征的层级表示。
[0003]深度学习算法基于分布式表示。分布式表示在以下假设下操作:观测(或测量)数据是被组织成一个或多个层的一个或多个因素的交互的结果。概念上,深度学习引入了附加假设,即交互以提供测量数据的因素的层表示抽象或组成的级别。在这种假设下,多个层和层的大小对应于不同的抽象量。
[0004]在深度学习系统中利用和创建的数据中的任何或所有数据都可以跨一个或多个网络被传送,随后可以受到所述一个或多个网络的任何限制。特别地,关于本地和云环境两者中的大规模深度学习系统,任何网络通信都可以由于大量学习者、跨网络的数据交换频率,以及被交换的数据量而受到瓶颈的影响。此外,跨多层叠或变异(例如,在云环境中)网络的通信可以在很大程度上是低效率的,因为网络中最弱的链路或节点将在很大程度上决定网络作为整体将如何执行。
[0005]一种在大规模深度学习系统中提高效率的方法是采用归约(REDUCE)操作。归约操作是来自功能性编程的经典概念,其通常经由既是组合的又是交换的函数并行地将初始的数字集有效地归约成较小的数字集。一些现有的编程功能实现跨多个进程的归约操作,其中结果在一些情况下被返回到根进程或者在其他情况下被返回到所涉及的进程中的所有进程。
[0006]当在多个图形处理单元(GPU)上并行训练深度学习系统时,必须做出关于如何跨可用的GPU分布要被读取和执行的数据批次或组和操作的选择。然后,每个GPU在其自身的数据上运行网络的前向传播,以及误差反向传播,以确定相对于任何现有网络参数的损耗的梯度。GPU然后彼此通信以计算平均梯度,该通信可以跨各种网络发生。每次通信发生时,该通信都易受任何网络限制的影响,这可以导致深度学习系统内的数据传送的严重减速

技术实现思路

[0007]根据实施例,提供了一种用于跨处理器发送数据以在处理器上组合数据的方法,包括在处理器集P(P1、P2、

、Pk)处接收数据集D(D1、D2、

、Dn),其中数据Di在处理器Pi处被接收。该方法包括将数据集的目标部分分配给处理器集中的处理器,其中处理器集被配置在包括根和一个或多个叶子的树形拓扑中,并且其中目标部分是基于被连接到父节点的子处理器的数目而被分配的。该方法还包括从一个或多个叶子开始,在树形拓扑的每个分支中共享相同父节点的子处理器之间发送迭代分配的组合数据,并且增加树形拓扑中的级
别,直到到达根。该方法进一步包括在子处理器之间从一个分支向至少一个其它分支中的子处理器发送组合数据。
[0008]在另一形式中,提供了一种用于实现用于跨处理器发送数据以在处理器上组合数据的方法的系统。
[0009]在另一形式中,提供了一种用于跨处理器发送数据以在处理器上组合数据的计算机程序产品。
[0010]在研究了下面的附图和具体实施方式之后,本专利技术的其它系统、方法、特征和优点对本领域的普通技术人员来说将是或将变得明显。所有这些附加的系统、方法、特征和优点都被包括在本说明书和本
技术实现思路
中,在本专利技术的范围内,并且由所附权利要求保护
附图说明
[0011]参考以下附图和描述可以更好地理解本专利技术。附图中的组件不一定是按比例的,重点在于说明本专利技术的原理。此外,在附图中,相同的附图标记在不同的视图中表示相应的部件。
[0012]图1是被配置为执行全归约算法的计算系统的示例实施例的框图。
[0013]图2是具有树形拓扑的计算系统的示例实施例的代表性视图。
[0014]图3是将目标部分分配给计算系统中的节点的过程的代表性视图。
[0015]图4是在计算系统中的节点之间执行归约

分散算法的过程的代表性视图。
[0016]图5是在归约

分散操作之后计算系统中的节点的代表性视图。
[0017]图6是将目标部分分配给计算系统中的节点的过程的代表性视图。
[0018]图7是将目标项分配给计算系统中的节点的过程的代表性视图。
[0019]图8是在计算系统中的节点之间执行另一归约

分散算法的过程的代表性视图。
[0020]图9是在另一归约

分散操作之后计算系统中的节点的代表性视图。
[0021]图10是收集操作之后计算系统中的节点的代表性视图。
[0022]图11是用于对计算系统的节点执行全归约算法的方法的示例实施例的流程图。
[0023]图12是计算系统的节点的示例实施例的框图
具体实施方式
[0024]本文描述的示例实施例的方面提供了一种用于对包括对称和非对称树形拓扑两者的任意网络拓扑执行全归约操作的方法。现在参考图1,示出了被配置为执行用于跨处理器发送数据以组合处理器上的数据的全归约算法的深度学习计算系统100的示例实施例。在该实施例中,深度学习计算系统100包括处理器或节点集102。在至少一个实施例中,处理器集102中的至少一个处理器是图形处理单元(GPU)。
[0025]在一些实施例中,深度学习计算系统100的处理器或节点集102可以被布置在任意网络拓扑中。例如,处理器集102可以被配置在包括根和一个或多个叶子的非对称树形拓扑中。在具有非对称树形拓扑的实施例中,根是树中的顶部处理器或节点。来自根的树的每个分支可以包括父节点,该父节点被连接到树的较低级别或分支处的一个或多个子处理器或节点。分支还可以包括一个或多个叶子,叶子是未被连接到任何子处理器或节点的处理器或节点。在其它实施例中,处理器集102可以被配置在对称树形拓扑中。
[0026]图2示出了被布置在树形拓扑中的深度学习计算系统100的处理器集102的示例实施例。如图2所示,处理器集102的树形拓扑包括顶部级别处的根处理器或节点200。接下来,将级别向下移动到下一个分支,处理器集102包括第一父节点210和第二父节点212。在示例实施例中,第一父节点210和第二父节点212可以是处理器。然而,一般而言,每个父节点通常不作为处理器运行,而是作为子处理器或节点之间的连接或作为子树(其他连接父节点)之间的连接。在归约操作期间,在这些中间分支节点中不发生主动(active)计算,所有计算由子处理器执行。
[0027]在该实施例中,第一父节点210被连接到两个子处理器,包括第一子处理器220和第二子处理器222。因为第一子处理器220和第二子处理器2本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于跨处理器发送数据以在所述处理器上组合所述数据的方法,所述方法包括:在处理器集P(P1、P2、

、Pk)处接收数据集D(D1、D2、

、Dn),其中数据Di在处理器Pi处被接收;将所述数据集的目标部分分配给所述处理器集中的处理器,其中所述处理器集被配置在包括根和一个或多个叶子的树形拓扑中,并且其中所述目标部分是基于被连接到父节点的子处理器的数目而被分配的;从所述一个或多个叶子开始,在所述树形拓扑的每个分支中共享相同父节点的子处理器之间发送迭代分配的组合数据,并且增加所述树形拓扑中的级别,直到到达根;以及在子处理器之间从一个分支向至少一个其它分支中的子处理器发送所述组合数据。2.根据权利要求1所述的方法,其中所述组合数据使用环形算法在共享相同父节点的子处理器之间被发送。3.根据权利要求1所述的方法,其中所述组合数据使用层级算法在共享相同父节点的子处理器之间被发送。4.根据权利要求3所述的方法,还包括:通过将针对分支的当前目标部分除以所述分支的度来分配所述数据集的下一目标部分;以及将所述下一目标部分分配给所述分支中的每个子处理器。5.根据权利要求1所述的方法,其中每个目标部分被分配与所述数据集的一部分相对应的范围;以及其中发送所述迭代分配的组合数据包括在所述子处理器之间的相同的所述范围内发送数据。6.根据权利要求5所述的方法,其中在子处理器之间从一个分支向至少一个其它分支中的子处理器发送所述组合数据包括在所述子处理器之间相同的所述范围内从一个分支向至少一个其它分支中的所述子处理器发送数据。7.根据权利要求1所述的方法,其中所述组合数据以与发送所述组合数据的顺序相反的顺序从所述处理器集被收集。8.根据权利要求1所述的方法,其中所述处理器集中的至少一个处理器是图形处理单元(GPU)。9.一种用于跨处理器发送数据以在所述处理器上组合所述数据的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令能够由处理器集中的处理器执行以使所述处理器执行方法,所述方法包括:在处理器集P(P1、P2、

、Pk)处接收数据集D(D1、D2、

、Dn),其中数据Di在处理器Pi处被接收;将所述数据集的目标部分分配给所述处理器集中的处理器,其中所述处理器集被配置在包括根和一个或多个叶子的树形拓扑中,并且其中所述目标部分是基于被连接到父节点的子处理器的数目而被分配的;从所述一个或多个叶子开始,在所述树形拓扑的每个分支中共享相同父节点的子处理
器之间发送迭代分配的组合数据,并且增加所述树形拓扑中的级别...

【专利技术属性】
技术研发人员:李振浩S
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1