一种all-to-all通信的硬件卸载方法、系统、设备及介质与流程
本技术涉及通信,尤其涉及一种all-to-all通信的硬件卸载方法、系统、设备及介质。
背景技术:
1、随着大规模神经网络模型和混合专家模型的广泛应用,分布式训练系统通常需要在多节点、多加速卡之间频繁交换中间激活、梯度或专家路由数据。all-to-all(又称全交换/完全交换)通信是专家并行、模型并行以及部分数据重排流程中的核心集合通信原语,其通信效率直接影响训练迭代时间和集群资源利用率。
2、现有all-to-all通信通常采用计算核心执行的拷贝或重排核函数实现数据搬移,或利用厂商集合通信库提供的统一通信接口,或基于点对点发送接收组合实现。然而,在计算通信重叠场景下,上述通信任务与矩阵计算、专家计算等业务算子共享计算核心、寄存器、缓存及片上存储资源,通信核函数与计算核函数竞争有限的硬件资源,导致计算吞吐和通信吞吐同时下降,通信重叠效果受限。
3、在多节点通信场景中,现有all-to-all通信多采用扁平化的进程级数据交换方式,即每个进程直接与所有目的进程建立通信关系。当目的进程数量增加、专家路由数据分布不均或跨节点通信比例升高时,节点间链路容易成为瓶颈,并引入额外同步等待。此外,该方式难以根据节点内高速互连与节点间网络的带宽差异进行差异化调度,难以充分利用不同层级互连的带宽资源。
4、不同厂商的智算硬件在节点内拓扑结构、硬件传输机制和运行时接口上存在较大差异。现有通信库的架构设计通常与特定厂商的通信协议或链路实现强绑定,导致在实际部署时难以根据硬件拓扑动态调整数据传输方式,也难以在保持上层接口不变的情况下利用不同硬件的专用传输单元降低计算核心的通信参与度。
5、可见,现有all-to-all通信方案在计算资源利用效率、多层级互连带宽利用以及异构硬件适配方面均存在明显不足,需要进一步改进。
技术实现思路
1、本技术提供一种all-to-all通信的硬件卸载方法、系统、设备及介质,通过将all-to-all通信的数据搬移、聚合、重排和写回操作表达为基于任务描述符和任务图的硬件任务,并利用事件依赖协调专用拷贝引擎任务队列与网络传输队列的执行,实现了通信操作从计算核心的完全卸载,减少了计算核心资源占用,降低了串行等待并避免了缓冲区复用冲突,同时通过拓扑信息和能力信息自适应生成任务图,提高了在不同加速卡和集群拓扑下的适配性,最终有效提升了分布式训练中的通信效率和集群资源利用率。
2、本技术提供一种all-to-all通信的硬件卸载方法,应用于包含专用拷贝引擎的计算节点,所述硬件卸载基于所述专用拷贝引擎的任务图执行,所述方法包括:
3、获取all-to-all通信任务,所述all-to-all通信任务包括各进程待发送的数据段及其对应的目的进程信息;
4、获取多个所述进程所在计算节点的拓扑信息和所述专用拷贝引擎的能力信息;
5、基于所述能力信息,将所述数据段转换为所述专用拷贝引擎可执行的任务描述符,所述任务描述符包括数据搬移源地址、数据搬移目的地址、数据长度以及依赖事件标识;
6、根据所述拓扑信息和所述目的进程信息构建all-to-all通信任务图,所述任务图包括由所述专用拷贝引擎执行的源端数据聚合任务、节点内交换任务和目的端分发写回任务,以及与所述任务图关联的节点间传输任务;
7、将所述源端数据聚合任务、节点内交换任务和目的端分发写回任务提交至独立于计算核心的专用拷贝引擎任务队列,并将所述节点间传输任务提交至网络传输队列;
8、通过所述依赖事件标识触发所述专用拷贝引擎任务队列和所述网络传输队列中的任务执行,使对应数据段的搬移、聚合、重排和写回由所述专用拷贝引擎完成,且不调用计算核心执行拷贝或重排核函数。
9、优选地,所述专用拷贝引擎为独立于计算核心的硬件传输单元,用于执行设备内存拷贝、跨设备内存拷贝、数据聚合、数据分发、内存重排中的至少一种操作。
10、优选地,所述任务描述符还包括源进程标识、目的进程标识、发送偏移、接收偏移、缓冲区槽位、切片编号、队列标识、同步事件标识和描述符状态字段中的一种或多种。
11、优选地,所述能力信息包括所述专用拷贝引擎可支持的地址类型、拷贝方向、队列深度和事件同步方式。
12、优选地,获取所述拓扑信息包括:确定每个进程对应的计算节点标识、节点内设备编号、节点内设备互连关系、节点间网络端口,以及所述专用拷贝引擎任务队列与所述网络传输队列之间的可并行执行关系。
13、优选地,所述根据所述拓扑信息和所述目的进程信息构建all-to-all通信任务图,包括:
14、当目的进程与源进程位于同一计算节点时,为对应数据段生成所述节点内交换任务;
15、当目的进程与源进程位于不同计算节点时,将所述对应数据段中发往同一目的计算节点的数据段归并为一个节点级数据块,形成分别与各所述目的计算节点对应的节点级数据段;并为各所述节点级数据段生成对应的所述源端数据聚合任务、所述节点间传输任务和所述目的端分发写回任务。
16、优选地,生成所述源端数据聚合任务包括:
17、在源计算节点上为每个目的计算节点设置对应的节点级发送缓冲区;
18、通过所述专用拷贝引擎,将源计算节点内各进程待发往同一目的计算节点的数据段,按照所述任务描述符复制或重排至与该目的计算节点对应的所述节点级发送缓冲区;
19、分别为各所述节点级发送缓冲区生成与对应目的计算节点之间的节点间传输任务,一个所述节点级发送缓冲区对应一个所述节点间传输任务。
20、优选地,生成所述目的端分发写回任务包括:
21、在所述目的计算节点接收到来自源计算节点的数据后,根据所述数据中包含的目的进程标识、接收偏移、数据长度和缓冲区槽位,通过所述专用拷贝引擎将所述数据写入所述目的计算节点内与所述目的进程标识对应的进程的接收缓冲区。
22、优选地,所述方法还包括:
23、根据节点内专用拷贝引擎带宽、节点间网络带宽、所述专用拷贝引擎队列深度、所述网络传输队列深度、预设缓冲区容量以及源进程与目的进程之间的物理距离中的至少一种确定切片长度;
24、按照所述切片长度将所述all-to-all通信任务图划分为多个数据切片。
25、优选地,通过所述事件依赖触发任务执行包括:
26、为每个数据切片设置聚合完成事件、网络接收完成事件和分发完成事件;
27、响应于所述聚合完成事件,启动与所述数据切片对应的所述节点间传输任务;
28、响应于所述网络接收完成事件,启动与所述数据切片对应的所述目的端分发写回任务;
29、响应于所述分发完成事件,释放所述数据切片所使用的缓冲区槽位,以供后续数据切片复用。
30、优选地,在所述节点内交换任务中,节点内数据段通过所述专用拷贝引擎在源进程发送缓冲区和目的进程接收缓冲区之间直接复制,或经由节点内共享缓冲区复制;当采用节点内共享缓冲区时,所述共享缓冲区按照源进程、目的进程和缓冲区槽位进行地址分区。
31、优选地,还包括:
32、在检测到所述专用拷贝引擎不支持当前数据段的数据类型、数据长度、地址映射方式或同步事件方式中的至少一项时,将对应数据段切换至备用执行路径;
33、所述备用执行路径包括计算核心拷贝路径、厂商集合通信库路径或节点间传输层直接发送路径中的至少一种。
34、第二方面,本技术提供一种all-to-all通信的硬件卸载系统,包括:
35、任务获取模块,用于获取all-to-all通信任务,所述all-to-all通信任务包括各进程待发送的数据段及其对应的目的进程信息;
36、拓扑解析模块,用于获取多个所述进程所在计算节点的拓扑信息和专用拷贝引擎的能力信息;
37、描述符生成模块,用于基于所述能力信息,将所述数据段转换为所述专用拷贝引擎可执行的任务描述符,所述任务描述符至少包括数据搬移源地址、数据搬移目的地址、数据长度以及依赖事件标识;
38、任务图生成模块,用于根据所述拓扑信息和所述目的进程信息构建all-to-all通信任务图,所述任务图包括由所述专用拷贝引擎执行的源端数据聚合任务、节点内交换任务和目的端分发写回任务,以及与所述任务图关联的节点间传输任务;
39、队列调度模块,用于将所述源端数据聚合任务、节点内交换任务和目的端分发写回任务提交至独立于计算核心的专用拷贝引擎任务队列,并将所述节点间传输任务提交至网络传输队列;
40、事件触发模块,用于通过所述依赖事件标识触发所述专用拷贝引擎任务队列和所述网络传输队列中的任务执行,使对应数据段的搬移、聚合、重排和写回由所述专用拷贝引擎完成,且不调用计算核心执行拷贝或重排核函数。
41、本技术提供一种电子设备,包括一个或多个处理器,用于实现如上任一项所述的方法。
42、本技术提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现如上任一项所述的方法。
43、与现有技术相比,本技术的有益效果至少包括:
44、通过专用拷贝引擎执行all-to-all通信中的数据搬移、聚合、重排和写回操作,通信任务不再需要占用计算核心执行拷贝或重排核函数,实现了通信任务与计算任务在硬件层面的彻底分离,使两者可真正并行执行,有效提升了训练迭代时间和集群资源利用率。
45、将数据聚合、数据分发、节点内交换等通信搬移操作表达为专用拷贝引擎可执行的任务描述符,并依据拓扑信息和目的进程归属构建源端数据聚合、节点内交换、目的端分发写回三段式任务图。使得通信操作可被分解为可提交至独立硬件队列执行的任务,无需经由计算核心软件调度。
46、将源端聚合、节点内交换和目的端分发写回任务提交至专用拷贝引擎任务队列,将节点间传输任务提交至网络传输队列,通过任务描述符中的依赖事件标识触发两队列中的任务执行,有效避免了不必要等待和缓冲区复用冲突,提升了流水线并行度。
47、获取计算节点的拓扑信息和专用拷贝引擎的能力信息,据此生成引擎可执行的任务描述符和任务图。同时,在检测到专用拷贝引擎不支持当前数据类型、长度、地址映射或事件同步方式时,可无缝切换至备用执行路径。使得本技术能够适配不同厂商智算硬件在拓扑结构、拷贝引擎能力和运行时接口上的差异,避免了与特定厂商通信协议的强绑定,提高了方案在不同加速卡和不同集群拓扑下的通用性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com