集合通信方法、装置、电子设备、存储介质及程序产品与流程

摘要: 本公开所提供的方案涉及人工智能和计算机,具体涉及一种集合通信方法、装置、电子设备、存储介质及程序产品。背景技术:1、在分布式训练和高性能计算技术领域,多个gpu...
集合通信方法、装置、电子设备、存储介质及程序产品与流程

本公开所提供的方案涉及人工智能和计算机,具体涉及一种集合通信方法、装置、电子设备、存储介质及程序产品。

背景技术:

1、在分布式训练和高性能计算技术领域,多个gpu(graphics processing unit,图形处理芯片)之间经常需要执行集合通信(collective communication)操作。集合通信操作用于通信组中各gpu之间的数据同步、收集、分发和规约运算等,是实现高效分布式训练或推理的关键,对于训练吞吐和单步时延等具有显著影响。

技术实现思路

1、本公开提出了一种集合通信方法、装置、电子设备、计算机可读存储介质及计算机程序产品。

2、第一方面,本公开的实施例提供了一种集合通信方法,包括:根据集合通信请求确定通信组应执行的集合通信操作;其中,通信组包括多个图形处理芯片gpu;根据集合通信操作的类型和对应的输入/输出张量的内存驻留情况,在多个备选图模板中选择匹配的目标图模板;对目标图模板进行实例化处理,得到图执行实例;运行图执行实例,得到与集合通信操作对应的集合通信结果。

3、在一些实施例中,备选图模板包括预先创建的与集合通信操作的类型和不同的执行模式对应的图模板;根据集合通信操作的类型和对应的输入/输出张量的内存驻留情况,在多个备选图模板中选择匹配的目标图模板,包括:根据输入/输出张量的内存驻留情况,确定集合通信操作的执行模式;根据集合通信操作的类型和执行模式,在备选图模板中选择与集合通信操作的类型和执行模式匹配的目标图模板;其中,执行模式包括推送模式和拉取模式,推送模式是指数据的发送方主动将数据发送给接收方,拉取模式是指数据的接收方主动向发送方请求数据。这样,通过支持不同类型的集合通信操作的图模板实现统一的图执行框架,在此基础上,备选图模板可支持根据输入输出张量的内存驻留状态、目标布局、中间缓冲需求、是否允许原地写入等条件,选择推送模式或拉取模式执行集体通信操作,从而增强统一图执行框架的适配性和扩展性。

4、在一些实施例中,输入/输出张量可被存储于各gpu各自专属的显存区域和/或共享对称内存,各gpu均可访问共享对称内存;根据输入/输出张量的内存驻留情况,确定集合通信操作的执行模式,包括:当输入张量位于共享对称内存且输出张量不位于共享对称内存时,确定集合通信操作的执行模式为拉取模式;当输出张量位于共享对称内存且输入张量不位于共享对称内存时,确定集合通信操作的执行模式为推送模式。如此,能够灵活适配共享对称内存与缓存分配器结合的张量分配场景,提高集合通信方法在真实框架环境中的可用性。

5、在一些实施例中,目标图模板中包括根节点以及由根节点展开的节点路径,节点路径中包括依序链接的多个子节点以及子节点间的依赖关系;对目标图模板进行实例化处理,得到图执行实例,包括:确定用于启动集合通信操作的根节点;对于每个gpu,确定用于执行集合通信操作的子节点,并根据子节点的执行顺序确定子节点间的依赖关系,构建gpu与通信组中各gpu之间的多条节点路径;对根节点及各节点路径进行实例化处理,生成图执行实例。通过预构建图模板并实例化处理,在运行时仅更新图节点参数后并复用图执行实例,避免了每轮重复构造复制操作集合和同步批次的开销,特别适合高频集合通信场景。

6、在一些实施例中,节点路径中的多个子节点依序包括:等待节点,用于等待集合通信操作进入准备状态;执行节点,用于执行集合通信操作;完成写入节点,用于写入集合通信操作的完成信号;完成等待节点,用于等待集合通信操作进入完成状态。相较于已有的同步控制通常围绕整轮集合通信或整批复制操作进行,通过将集合通信的执行关系显式建模为每个节点的准备状态、执行状态和完成状态等的图节点依赖,能够细粒度控制不同节点和不同阶段的推进顺序。

7、在一些实施例中,集合通信操作包括多个轮次;运行图执行实例,得到与集合通信操作对应的集合通信结果,包括:在执行每个轮次的集合通信操作时,根据当前轮次的轮次标识更新图执行实例中的节点参数;其中,轮次标识用于指示集合通信操作的执行轮次;启动图执行实例,执行当前轮次的集合通信操作,得到与当前轮次的集合通信操作对应的集合通信结果。通过生成当前轮次的轮次标识,在每个轮次的图实例执行过程中,各等待节点和各完成节点均围绕该轮次标识完成同步,从而可实现多个轮次的图实例复用的同步。

8、在一些实施例中,根据当前轮次的轮次标识更新图执行实例中的节点参数,包括:根据当前轮次的轮次标识,更新执行节点的数据拷贝参数;其中,数据拷贝参数用于执行当前轮次的集合通信操作包括的数据拷贝任务,数据拷贝参数包括目标数据的源地址、目的地址和数据长度;目标数据包括数据拷贝任务中的待发送数据、和/或待接收数据;源地址包括待发送数据的地址,目的地址包括待接收数据的地址,数据长度包括待发送数据或待接收数据的字节长度和/或元素个数。通过预先构建并实例化图模板,在运行时仅需更新图执行实例中的节点参数,减少每轮集合通信操作中组织数据拷贝任务的重复控制面开销,降低对gpu计算资源的持续占用。

9、在一些实施例中,根据当前轮次的轮次标识更新图执行实例中的节点参数,还包括:根据当前轮次的轮次标识,将等待节点的等待信号参数和完成等待节点的完成信号参数分别更新为轮次标识对应的目标值;其中,等待信号参数的目标值用于表征当前轮次的集合通信操作的准备状态;完成信号参数的目标值用于表征当前轮次的集合通信操作的完成状态。这样,通过将轮次标识作为各等待节点和各完成节点的目标值,能够实现多个轮次的图实例复用时的信号同步,无需每轮将整个信号区复位为初始值。

10、在一些实施例中,共享对称内存中设置有与集合通信操作对应的同步信号区,同步信号区包括具有多个等待信号槽位的等待信号区和具有多个完成信号槽位的完成信号区;每个gpu在同步信号区中具有独立的等待信号槽位和完成信号槽位,其中,等待信号槽位用于存储等待信号参数,完成信号槽位用于存储完成信号参数。相较于已有的共享同步区的方式,通过设置独立的同步信号区,使得不同集合通信操作的同步状态彼此隔离,减少控制面复位操作和同步污染的风险。

11、在一些实施例中,在集合通信操作的类型为全局收集集合通信的情况下,启动图执行实例,执行当前轮次的集合通信操作,得到与当前轮次的集合通信操作对应的集合通信结果,包括:对于每条节点路径,执行以下步骤:启动图执行实例,激活根节点,跳转至等待节点;在完成准备状态的情况下,将轮次标识对应的目标值写入等待信号参数;响应于等待信号参数达到轮次标识对应的目标值,跳转至执行节点,执行全局收集集合通信操作对应的数据传输操作;响应于执行完成数据传输操作,跳转至完成写入节点,将轮次标识对应的目标值写入完成信号参数;响应于完成信号参数达到轮次标识对应的目标值,确定节点路径执行完毕,得到与全局收集集合通信操作对应的集合通信结果。这样,通过将集合通信的执行控制、运行时参数更新、信号同步以及多轮复用机制统一结合,形成面向高频集合通信的统一图执行框架,在支持对称内存的单机多加速器环境中,实现全局收集高频通信算子的高效执行。

12、在一些实施例中,在集合通信操作的类型为规约分散集合通信的情况下,启动图执行实例,执行当前轮次的集合通信操作,得到与当前轮次的集合通信操作对应的集合通信结果,包括:对于每条节点路径,执行以下步骤:启动图执行实例,激活根节点,跳转至等待节点;在完成准备状态的情况下,将轮次标识对应的目标值写入等待信号参数;响应于等待信号参数达到轮次标识对应的目标值,跳转至执行节点,执行规约分散集合通信操作对应的数据运算操作;响应于执行完成数据运算操作,跳转至完成写入节点,将轮次标识对应的目标值写入完成信号参数;响应于完成信号参数达到轮次标识对应的目标值,确定节点路径执行完毕,得到与规约分散集合通信操作对应的集合通信结果。这样,通过将规约执行与等待、完成通知一起纳入统一图执行框架,允许通过规约执行节点在统一依赖链中完成规约,从而实现规约分散高频通信算子的高效执行。

13、在一些实施例中,输入张量位于共享对称内存时,源地址由待发送数据在共享对称内存中的基址、地址偏移信息和分片偏移信息确定;输出张量位于共享对称内存时,目的地址由待接收数据在共享对称内存中的基址、地址偏移信息和分片偏移信息确定。如此,针对支持共享对称内存场景,在更新图执行实例中的节点参数时,同时考虑共享对称内存基址、张量相对基址的偏移以及当前参与节点对应的数据分片偏移确定实际访问地址,为低开销的设备间直接访问和数据搬运提供基础。

14、在一些实施例中,输入张量位于各gpu的显存区域时,源地址由待发送数据在显存区域的数据指针和分片偏移信息确定;输出张量位于各gpu的显存区域时,目的地址由待接收数据在显存区域的数据指针和分片偏移信息确定。如此,能够适配对称内存与缓存分配器结合的张量分配场景,使得本公开的集合通信方法可直接用于上层张量分配体系,而无需强制要求张量独占整块对称内存,从而提高集合通信方法在真实框架环境中的可用性。

15、第二方面,本公开的实施例提供了一种集合通信装置,包括:通信控制模块,被配置为根据集合通信请求确定通信组应执行的集合通信操作;其中,通信组包括多个图形处理芯片gpu;图模板管理模块,被配置为根据集合通信操作的类型和对应的输入/输出张量的内存驻留情况,在多个备选图模板中选择匹配的目标图模板;对目标图模板进行实例化处理,得到图执行实例;执行节点处理模块,被配置为运行图执行实例,得到与集合通信操作对应的集合通信结果。

16、第三方面,本公开的实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个计算机程序,当一个或多个计算机程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一项提及的集合通信方法。

17、第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如第一方面中任一项提及的集合通信方法。

18、第五方面,本公开的实施例提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面中任一项提及的集合通信方法。

19、本公开的实施例提供的集合通信方法、装置与电子设备,通过支持不同类型的集合通信操作的图模板实现统一的图执行框架,通过生成可重复启动的图执行实例,能够减少每轮集合通信的重复任务组织开销;并且,备选图模板可在统一图执行框架下支持不同的数据流组织方式,增强了框架的适配能力和可扩展性。

20、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。