logo好方法网

一种GPU的通信方法、系统、设备以及介质


技术摘要:
本发明公开了一种GPU的通信方法,包括以下步骤:获取多个GPU的拓扑图;利用所述拓扑图建立具有边权和点权的有向图;根据所述边权和所述点权构建树形通信结构图和环形通信结构图;分别统计所述树形通信结构图和所述环形通信结构图的通道数量;响应于所述树形通信结构图  全部
背景技术:
在现有的GPU通信方法中应用较多的是环形通信方法与Double  Binary  tree方 法。其中环形通信方法可以有效的采用Pipeline技术,使其具有良好的扩展性,在大数据量 传输时应用较多。而Double  Binary  tree方法,往往在小数据量时使用。 环形通信算法可以有效的利用pipeline技术,在多GPU上有良好的扩展性。但是该 算法必须建立有效的环形通道,可能由于服务器的配置不同或者多种互连方式的共用,导 致无法建立有效的通信拓扑,导致通信效率的低下。而现有的开源通信库近乎都采用了环 形通信算法,也不能够很好的解决该问题。
技术实现要素:
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种GPU的通信 方法,包括以下步骤: 获取多个GPU的拓扑图; 利用所述拓扑图建立具有边权和点权的有向图; 根据所述边权和所述点权构建树形通信结构图和环形通信结构图; 分别统计所述树形通信结构图和所述环形通信结构图的通道数量; 响应于所述树形通信结构图的通道数量大于所述环形通信结构图的通道数量,所 述多个GPU利用所述树形通信结构图进行通信; 响应于所述树形通信结构图的通道数量不大于所述环形通信结构图的通道数量, 所述多个GPU利用所述环形通信结构图进行通信。 在一些实施例中,根据所述边权和所述点权构建树形通信结构图,进一步包括: 利用所述有向图的连接边的数量确定所述树形通信结构图的第一数量,并根据点 权确定所述树形通信结构图的第二数量; 比较所述第一数量和所述第二数量的大小,并将较小值作为所述树形通信结构图 的最终数量。 在一些实施例中,还包括: 根据所述有向图中的每一个GPU节点的点权进行从小到大的排序; 根据所述排序结果,依次选择点权最小的GPU节点作为树形通信结构图的祖先节 点,并选择最小的所述边权的方向进行深度优先遍历以构建所述树形通信结构图; 在每次构建所述树形通信结构图后更新所述有向图,直到遍历所有GPU节点,并返 回对所述有向图中的每一个GPU节点的点权进行从小到大的排序的步骤,直到构建的所述 树形通信结构图的数量达到所述最终数量。 在一些实施例中,统计所述树形通信结构图的通道数量,进一步包括: 4 CN 111597139 A 说 明 书 2/9 页 根据所述最终数量以及每一个所述树形通信结构图的连接边的数量统计所述通 道数量。 在一些实施例中,根据所述边权和所述点权构建环形通信结构图,进一步包括: 利用所述有向图的连接边的数量确定所述环形通信结构图的第一数量,并根据边 权确定所述环形通信结构图的第二数量; 比较所述第一数量和所述第二数量的大小,并将较小值作为所述环形通信结构图 的最终数量。 在一些实施例中,还包括: 将所述有向图中的第一个GPU节点作为起始节点,按照预设顺序遍历连接下一个 GPU节点,直至形成所述环形通信结构图; 更新所述有向图,返回形成所述环形通信结构图的步骤,直到形成的所述环形通 信结构图的数量达到所述最终数量。 在一些实施例中,统计所述环形通信结构图的通道数量,进一步包括: 根据所述最终数量以及每一个所述环形通信结构图的连接边的数量统计所述通 道数量。 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种GPU 的通信系统,包括: 获取模块,所述获取模块配置为获取多个GPU的拓扑图; 建立模块,所述建立模块配置为利用所述拓扑图建立具有边权和点权的有向图; 构建模块,所述构建模块配置为根据所述边权和所述点权构建树形通信结构图和 环形通信结构图; 统计模块,所述统计模块配置为分别统计所述树形通信结构图和所述环形通信结 构图的通道数量; 第一响应模块,所述第一响应模块配置为响应于所述树形通信结构图的通道数量 大于所述环形通信结构图的通道数量,所述多个GPU利用所述树形通信结构图进行通信; 第二响应模块,所述第二响应模块配置为响应于所述树形通信结构图的通道数量 不大于所述环形通信结构图的通道数量,所述多个GPU利用所述环形通信结构图进行通信。 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计 算机设备,包括: 至少一个处理器;以及 存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所 述处理器执行所述程序时执行如上所述的任一种GPU的通信方法的步骤。 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计 算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理 器执行时执行如上所述的任一种GPU的通信方法的步骤。 本发明具有以下有益技术效果之一:本发明提出的方案不仅能够尽可能利用GPU 之间的通信通道,还能保证每个节点的收发的负载均衡。 5 CN 111597139 A 说 明 书 3/9 页 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的实施例。 图1为本发明的实施例提供的GPU的通信方法的流程示意图; 图2A为多个GPU的结构拓扑图; 图2B为根据图2A生成的有向图; 图3为本发明的实施例提供的树形通信结构图的示意图; 图4为得到第一棵树形通信结构图后,更新后的有向图的示意图; 图5为由图2B得到的5个树形通信结构图; 图6为本发明的实施例提供的环形通信结构图的示意图; 图7为得到第一棵环形通信结构图后,更新后的有向图的示意图; 图8为由图2B得到的2个环形通信结构图; 图9为图2A示出的结构拓扑图中GPU的连接方式示意图; 图10为利用NCCL进行通信时所利用的通道的示意图; 图11是采用树形通信结构图进行通信时与nccl的对比测试数据; 图12是采用树形通信结构图进行通信时与vgg16的对比测试数据; 图13是采用树形通信结构图进行通信时与resnet50的对比测试数据; 图14为本发明的实施例提供的GPU的通信系统的结构示意图; 图15为本发明的实施例提供的计算机设备的结构示意图; 图16为本发明的实施例提供的计算机可读存储介质的结构示意图。
分享到:
收藏