集合通信处理方法、装置、系统、电子设备以及存储介质与流程
本技术涉及数据处理,具体涉及一种集合通信处理方法、装置、系统、电子设备以及存储介质。
背景技术:
1、集合通信(collective communication)操作是连接多个计算节点、实现数据并行的核心环节。为了提高集合通信效率,计算节点要求传入数据的源地址、目的地址等参数按预设规则对齐。相关技术中,当待处理数据的地址参数未按预设规则对齐时,需要对待处理数据进行数据重排操作,以使相应的计算节点对重排后的数据进行数据处理。
2、然而,这样的数据处理方法需要在对数据完成全量重排后,再由相应的计算节点进行数据处理,对于常见的大数据量通信,拷贝操作本身耗时就较长,再叠加上数据处理时间,整体上会严重拖慢计算节点对数据的处理速度,进而导致集合通信效率低。也即,相关技术中存在集合通信场景下数据处理效率低的问题。
技术实现思路
1、本技术实施例提供一种集合通信处理方法、装置、系统、电子设备以及存储介质,能够提高集合通信场景下的数据处理效率。
2、为了实现上述目的,本技术实施例第一方面提供了一种集合通信处理方法,应用于计算系统,计算系统包括主处理器和硬件加速单元,方法包括:
3、主处理器接收上层应用下发的集合通信请求,集合通信请求包括源地址、目的地址和传输数据总长度;
4、当检测到源地址或目的地址不满足地址对齐规则,或传输数据总长度不满足长度对齐规则时,将待传输数据划分为多个连续的数据分段,并分配至少两个满足地址对齐规则的临时缓冲区;
5、主处理器交替下发数据搬运指令和集合通信指令至硬件加速单元;
6、硬件加速单元响应于数据搬运指令,将数据分段依次搬运至至少两个临时缓冲区中的不同缓冲区,以及响应于集合通信指令,基于对齐后的临时缓冲区地址执行数据传输;
7、其中,在硬件加速单元基于第一临时缓冲区执行当前数据分段的集合通信操作期间,主处理器控制硬件加速单元将下一数据分段搬运至第二临时缓冲区,使数据搬运操作与集合通信操作在时间上重叠。
8、在一些实施例中,硬件加速单元包括固件模块,主处理器包括运行于主机侧的集合通信库;
9、主处理器交替下发数据搬运指令和集合通信指令至硬件加速单元,包括:
10、集合通信库组建数据搬运描述符和集合通信包并下发至固件模块,数据搬运描述符用于指示需要对相应数据进行数据搬运操作;
11、固件模块解析数据搬运描述符和集合通信包,向硬件加速单元的对应模块下发相应命令。
12、在一些实施例中,硬件加速单元为图形处理器芯片,图形处理器芯片包括硬件拷贝模块和硬件通信模块,硬件通信模块仅能访问满足地址对齐规则的存储空间;
13、硬件加速单元响应于数据搬运指令,将数据分段依次搬运至至少两个临时缓冲区中的不同缓冲区,包括:硬件拷贝模块响应于数据搬运指令,将需要搬运的数据分段从非对齐的源缓冲区搬运至满足对齐要求的临时缓冲区;
14、硬件加速单元响应于集合通信指令,基于对齐后的临时缓冲区地址执行数据传输,包括:硬件通信模块根据集合通信指令,将需要处理的数据分段从本地的临时缓冲区中发送至硬件加速单元的对端,或接收对端发送的数据并写入本地的临时缓冲区中。
15、在一些实施例中,方法还包括:
16、发送端的硬件通信模块将本地的临时缓冲区中的数据发送至对端;
17、接收端的硬件通信模块接收对端发送的数据并写入本地的临时缓冲区,由接收端的硬件拷贝模块写回目的缓冲区。
18、在一些实施例中,在将待传输数据划分为多个连续的数据分段之前,还包括:
19、获取数据搬运带宽、硬件加速单元的集合通信有效带宽和集合通信启动开销,以及多个预设的候选分段粒度;
20、针对多个候选分段粒度,根据数据搬运带宽估算分段数据搬运耗时,根据集合通信有效带宽和集合通信启动开销估算分段硬件集合通信耗时;
21、基于分段数据搬运耗时和分段硬件集合通信耗时中的最大值确定流水线阶段耗时,并根据流水线阶段耗时和分段数量估算各个候选分段粒度对应的流水线执行总开销;
22、选择流水线执行总开销最小的候选分段粒度作为目标分段粒度,并基于目标分段粒度划分数据分段。
23、在一些实施例中,将待传输数据划分为多个连续的数据分段,包括:
24、获取预先标定的映射表,映射表包含数据长度区间与推荐分段粒度之间的对应关系;
25、根据传输数据总长度在映射表中进行查找,确定对应的目标分段粒度;
26、根据目标分段粒度,将待传输数据划分为多个连续的数据分段。
27、在一些实施例中,当检测到源地址不满足地址对齐规则时,分配至少两个满足地址对齐规则的临时缓冲区,包括:
28、分配至少两个临时发送缓冲区;
29、硬件加速单元将数据分段从源缓冲区交替搬运至临时发送缓冲区,并在搬运完成后,将指向当前完成搬运的临时发送缓冲区的地址作为集合通信指令的源地址。
30、在一些实施例中,当检测到目的地址不满足地址对齐规则时,分配至少两个满足地址对齐规则的临时缓冲区,包括:
31、在初始化阶段,与硬件加速单元的对端进行信息同步,以使对端获知相应的数据分段的存放位置;
32、分配至少两个临时接收缓冲区,以使硬件加速单元将来自对端的集合通信结果交替写入临时接收缓冲区;
33、硬件加速单元将临时接收缓冲区中的有效数据按照分段偏移交替写回目的缓冲区,且当前分段的写回操作与下一分段的硬件接收操作在时间上重叠。
34、在一些实施例中,当检测到源地址和目的地址均不满足地址对齐规则时,同时分配至少两个临时发送缓冲区和至少两个临时接收缓冲区,分别由硬件加速单元完成满足地址对齐规则下的数据对齐化搬运、集合通信结果的对齐化接收、以及有效数据写回。
35、在一些实施例中,当传输数据总长度不满足长度对齐规则时,针对尾段数据分段维护有效数据长度和硬件传输长度;
36、针对尾段数据分段维护有效数据长度和硬件传输长度,包括:
37、根据传输数据总长度和前n-1个数据分段的长度,确定尾段数据分段的有效数据长度;
38、根据长度对齐规则,将尾段数据分段的有效数据长度向上取整,得到尾段数据分段的硬件传输长度;
39、在对应分配的临时缓冲区中对尾段数据分段进行数据填充,使填充后的数据长度等于硬件传输长度。
40、在一些实施例中,在对应分配的临时缓冲区中对尾段数据分段进行数据填充之前,还包括:
41、获取用户缓冲区尾部可用于安全访问或写入的存储空间尺寸,用户缓冲区包括源缓冲区和目的缓冲区;
42、当存储空间尺寸小于尾段数据分段进行数据填充所需的填充数据量时,在对应分配的临时缓冲区中对尾段数据分段进行尾段填充处理;
43、当存储空间尺寸不小于填充数据量时,直接在用户缓冲区对尾段数据分段进行尾段填充处理。
44、在一些实施例中,对尾段数据分段进行尾段填充处理,包括:
45、根据集合通信请求确定集合通信操作类型;
46、当集合通信操作类型为归约类操作时,根据具体的归约类型确定不影响归约结果的中性数据作为填充数据;
47、将中性数据填充至尾段数据分段的有效数据之后,以得到完成尾段填充处理后的尾段数据分段。
48、在一些实施例中,根据具体的归约类型确定不影响归约结果的中性数据作为填充数据,包括:
49、当归约类型为求和操作时,将第一预设值作为中性数据,其中第一预设值与有效数据相加结果不变;
50、当归约类型为求乘操作时,将第二预设值作为中性数据,其中第二预设值与有效数据相乘结果不变;
51、当归约类型为求最小值操作时,将不小于有效数据中最小值的第三预设值作为中性数据;
52、当归约类型为求最大值操作时,将不大于有效数据中最大值的第四预设值作为中性数据。
53、在一些实施例中,下发至硬件加速单元的集合通信指令基于集合通信包确定,通过以下步骤构建集合通信包,步骤包括:
54、针对每个数据分段,保持集合通信请求中的通信组标识、参与方编号和操作类型不变,并修改数据分段的传输信息;
55、根据每个数据分段对应的通信组标识、参与方编号、操作类型和传输信息,确定出集合通信包;
56、其中,传输信息的修改包括以下至少一项:
57、将源地址修改为指向当前存储有数据分段的临时发送缓冲区中的对应地址,将目的地址修改为指向临时接收缓冲区中的对应地址,将传输数据总长度修改为满足对齐规则的硬件传输长度。
58、在一些实施例中,当检测到目的地址不满足地址对齐规则,传输数据总长度不满足长度对齐规则,且目的地址对应的存储空间尺寸小于尾段数据分段对应的硬件传输长度时,对应分配的临时缓冲区为临时接收缓冲区,硬件加速单元利用临时接收缓冲区对尾段数据分段进行数据填充,并将除填充数据外的尾段数据分段搬运至目的地址。
59、在一些实施例中,方法还包括:
60、当检测到源地址和目的地址均满足地址对齐规则,且传输数据总长度满足长度对齐规则时,不进行数据分段和临时缓冲区分配,直接根据原始的集合通信请求构造集合通信指令并下发至硬件加速单元,以使硬件加速单元执行相应的数据处理操作。
61、为了实现上述目的,本技术实施例第二方面提供了一种集合通信处理装置,包括:
62、请求接收与检测模块,用于接收上层应用下发的集合通信请求,集合通信请求包括源地址、目的地址和传输数据总长度;
63、双缓冲流水线调度模块,用于当源地址或目的地址不满足地址对齐规则,或传输数据总长度不满足长度对齐规则时,将待传输数据划分为多个连续的数据分段,并分配至少两个满足地址对齐规则的临时缓冲区;交替下发数据搬运指令和集合通信指令至硬件加速单元;
64、双缓冲流水线调度模块,还用于在硬件加速单元基于第一临时缓冲区执行当前数据分段的集合通信操作期间,控制硬件加速单元将下一数据分段搬运至第二临时缓冲区,使数据搬运操作与集合通信操作在时间上重叠。
65、为了实现上述目的,本技术实施例第三方面提供了一种芯片系统,包括运行于主机侧的集合通信库以及作为硬件加速单元的芯片,硬件加速单元包括固件模块;
66、集合通信库用于执行第一方面的方法中的调度和对齐处理步骤,并组建数据搬运描述符和集合通信包下发至固件模块;
67、固件模块用于解析数据搬运描述符和集合通信包,向芯片下发相应命令;
68、芯片用于响应于相应命令执行数据搬运和集合通信操作,且在基于第一临时缓冲区执行当前数据分段的集合通信操作期间,将下一数据分段搬运至第二临时缓冲区。
69、为了实现上述目的,本技术实施例第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以实现本技术实施例第一方面提供的集合通信处理方法的步骤。
70、为了实现上述目的,本技术实施例第五方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器执行计算机程序时实现本技术实施例第一方面提供的集合通信处理方法的步骤。
71、为了实现上述目的,本技术实施例第六方面提供了一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行时实现本技术实施例第一方面提供的集合通信处理方法的步骤。
72、本技术提出的集合通信处理方法、装置、系统、电子设备以及存储介质,其通过主处理器接收上层应用下发的集合通信请求,集合通信请求包括源地址、目的地址和传输数据总长度;当检测到源地址或目的地址不满足地址对齐规则,或传输数据总长度不满足长度对齐规则时,将待传输数据划分为多个连续的数据分段,并分配至少两个满足地址对齐规则的临时缓冲区;主处理器交替下发数据搬运指令和集合通信指令至硬件加速单元;硬件加速单元响应于数据搬运指令,将数据分段依次搬运至至少两个临时缓冲区中的不同缓冲区,以及响应于集合通信指令,基于对齐后的临时缓冲区地址执行数据传输;其中,在硬件加速单元基于第一临时缓冲区执行当前数据分段的集合通信操作期间,主处理器控制硬件加速单元将下一数据分段搬运至第二临时缓冲区,使数据搬运操作与集合通信操作在时间上重叠。
73、本技术实施例通过将待传输的非对齐数据划分为多个连续的数据分段,并引入至少两个满足对齐规则的临时缓冲区进行交替作业,使得硬件加速单元在基于第一临时缓冲区执行当前分段的集合通信操作期间,能够同步将下一分段搬运至第二临时缓冲区;这种双缓冲流水线机制成功打破了传统方法中串行处理的瓶颈,实现了数据搬运操作与集合通信操作在时间上的高度重叠,从而大幅掩盖了数据对齐带来的额外拷贝延迟,显著缩短了非对齐场景下的端到端处理时间,有效提升了计算系统的整体数据处理速度和集合通信效率。
74、本技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com