一种集合通信方法、网卡、网络设备和存储介质技术

技术编号:38990744 阅读:13 留言:0更新日期:2023-10-07 10:21
本文公开了一种集合通信方法、网卡、网络设备和存储介质。所述方法应用于计算节点所包括的网卡,包括,接收第一通信数据包;根据第一通信数据包中包含的在网计算INC标识,将第一通信数据包发送到所述网卡包括的第一INC引擎;INC标识用于指示第一通信数据包为集合通信数据包;根据第一通信数据包对应的集合通信数据包类型,第一INC引擎对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包;发送至少一个第二通信数据包到集合通信系统中的通信网络或所述计算节点的上层业务功能模块。本方案优化了网卡和/或网络设备的通信数据包的处理流程,提升了处理效率,可以满足大规模组网和日益复杂的集合通信系统的性能需求。性能需求。性能需求。

【技术实现步骤摘要】
一种集合通信方法、网卡、网络设备和存储介质


[0001]本公开涉及但不限于在网计算
,尤其涉及一种集合通信方法、网卡、网络设备和存储介质。

技术介绍

[0002]集合通信是分布式系统中各个算力节点(也称为计算节点)之间进行信息交换的通信方式,主要包括规约(Reduce)、全规约(All

Reduce)和广播(Broadcast)等操作。
[0003]在人工智能领域中,大模型的训练依靠多算力节点的分布式系统完成。训练模型时,每次迭代(Per Iteration)中的各个算力节点在本地计算结束后,需要在所有算力节点间进行具体为All

Reduce的集合通信来聚合梯度结果,需要等待聚合完毕后各算力节点才能进行下一次迭代。各算力节点执行集合通信的相关操作,往往需要占用大量计算资源,影响其他功能的正常执行。
[0004]在网计算(In

Network Computing,INC)是指将运行在服务器CPU或专有硬件设备上的功能,卸载到网络设备上运行,这可以节省设备上宝贵的CPU资源。因此,将集合通信系统中的相关集合操作,采用在网计算方案卸载到网络设备上执行,可以显著降低算力节点本身的资源竞争压力,提高整体集合通信效率。
[0005]伴随着高性能计算(High Performance Computing,HPC)以及人工智能(artificial intelligence,AI)技术的自身发展,相关集合操作复杂度日益增大,所涉及的交换网络规模也不断扩大。因此,建立一整套基于在网计算方案的高效的、易实施的、支持大规模组网的集合通信系统,是推动HPC以及AI技术发展应用的重要环节。

技术实现思路

[0006]本公开实施例提供一种集合通信方法、网卡、网络设备和存储介质,在计算节点的网卡和/或交换机硬件中引入专用的INC引擎,根据集合通信数据包中的INC标识,由专用的INC引擎进行数据包处理以实现集合操作的INC卸载,优化了网卡和/或网络设备的通信数据包的处理流程,提升了处理效率,可以满足大规模组网和日益复杂的集合通信系统的性能需求。
[0007]本公开实施例提供一种集合通信方法,应用于计算节点所包括的网卡,所述方法包括,
[0008]接收第一通信数据包;
[0009]根据所述第一通信数据包中包含的在网计算INC标识,将所述第一通信数据包发送到所述网卡包括的第一INC引擎;所述INC标识用于指示第一通信数据包为集合通信数据包;
[0010]根据所述第一通信数据包对应的集合通信数据包类型,所述第一INC引擎对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包;
[0011]发送所述至少一个第二通信数据包到集合通信系统中的通信网络或所述计算节
点的上层业务功能模块。
[0012]本公开实施例还提供一种集合通信方法,应用于集合通信系统所包括的网络设备,所述方法包括,
[0013]接收第三通信数据包;
[0014]根据所述第三通信数据包中包含的在网计算INC标识,将所述第三通信数据包发送到所述网络设备包括的第二INC引擎;所述INC标识用于指示第三通信数据包为集合通信数据包;
[0015]根据所述第三通信数据包对应的集合通信数据包类型,所述第二INC引擎对所述第三通信数据包进行数据包处理,获得第四通信数据包或进行本地数据缓存;
[0016]在所述第四通信数据包不为空的情况下,发送所述第四通信数据包到所述集合通信系统中的通信网络或计算节点。
[0017]本公开实施例还提供一种网卡,包括,
[0018]第一数据收发模块和第一在网计算INC引擎;
[0019]所述第一数据收发模块设置为,接收第一通信数据包;根据所述第一通信数据包中包含的在网计算INC标识,将所述第一通信数据包发送到所述第一INC引擎;所述INC标识用于指示第一通信数据包为集合通信数据包;
[0020]所述第一INC引擎,设置为根据所述第一通信数据包对应的集合通信数据包类型,对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包;
[0021]所述第一数据收发模块还设置为,发送所述至少一个第二通信数据包到集合通信系统中的通信网络或所述计算节点的上层业务功能模块。
[0022]本公开实施例还提供一种网络设备,包括
[0023]第二数据收发模块和第二在网计算INC引擎;
[0024]所述第二数据收发模块设置为,接收第三通信数据包;根据所述第三通信数据包中包含的在网计算INC标识,将所述第三通信数据包发送到所述第二INC引擎;所述INC标识用于指示第三通信数据包为集合通信数据包;
[0025]所述第二INC引擎设置为,根据所述第三通信数据包对应的集合通信数据包类型,对所述第三通信数据包进行数据包处理,获得第四通信数据包或进行本地数据缓存;
[0026]所述第二数据收发模块还设置为,在所述第四通信数据包不为空的情况下,发送所述第四通信数据包到所述集合通信系统中的通信网络或计算节点。
[0027]本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任一实施例所述的集合通信方法。
[0028]在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
[0029]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0030]图1为本公开实施例提供的一种集合通信方法的流程图;
[0031]图2为本公开实施例提供的一种集合通信数据包的结构示意图;
[0032]图3为本公开实施例提供的一种包含Header0的集合通信数据包的结构示意图;
[0033]图4为本公开实施例提供的一种包含Header1的集合通信数据包的结构示意图;
[0034]图5为本公开实施例提供的一种包含Header2的集合通信数据包的结构示意图;
[0035]图6为本公开实施例提供的一种分片接收状态统计表和合并示意;
[0036]图7为本公开实施例提供的另一种集合通信方法的流程图;
[0037]图8为本公开实施例提供的另一种集合通信方法的流程图;
[0038]图9为本公开实施例提供的另一种集合通信方法的流程图;
[0039]图10为本公开实施例提供的一种聚合树示意图;
[0040]图11为本公开实施例提供的一种网卡的结构示意图;
[0041]图12为本公开实施例提供的一种计算节点的结构示意图;
[0042]图13为本公开实施例提供的一种网络设备的结构示意图;
[0043]图14为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集合通信方法,应用于计算节点所包括的网卡,其特征在于,所述方法包括,接收第一通信数据包;根据所述第一通信数据包中包含的在网计算INC标识,将所述第一通信数据包发送到所述网卡包括的第一INC引擎;所述INC标识用于指示第一通信数据包为集合通信数据包;根据所述第一通信数据包对应的集合通信数据包类型,所述第一INC引擎对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包;发送所述至少一个第二通信数据包到集合通信系统中的通信网络或所述计算节点的上层业务功能模块。2.如权利要求1所述的方法,其特征在于,所述集合通信数据包包括以下一种或多种类型:INC聚合树生成上行数据包、INC聚合树生成下行数据包、INC聚合任务上行数据包、INC聚合任务下行数据包;所述第一通信数据包包括IP包头;在所述第一通信数据包为INC聚合树生成上行数据包的情况下,所述第一通信数据包还包括符合第零格式的INC帧头,记为INC Header0;所述第一INC引擎对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包,包括:将所述第一通信数据包中所述INC Header0中的目的IP缓存字段值和所述IP包头中的目的IP地址字段值进行交换后,得到所述第二通信数据包。3.如权利要求1所述的方法,其特征在于,所述集合通信数据包包括以下一种或多种类型:INC聚合树生成上行数据包、INC聚合树生成下行数据包、INC聚合任务上行数据包、INC聚合任务下行数据包;所述第一通信数据包包括IP包头;在所述第一通信数据包为INC聚合任务上行数据包的情况下,所述第一通信数据包还包括符合第一格式的INC帧头,记为INC Header1;所述第一INC引擎对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包,包括:将所述第一通信数据包中的待聚合数据,根据设定的分片大小,划分为M个待聚合数据分片,M为大于0的整数;将所述第一通信数据包中所述INC Header1中的目的IP缓存字段值和所述IP包头中的目的IP地址字段值进行交换;根据交换后的所述INC Header1,转换得到M个符合第二格式的INC帧头,记为INC Header2;根据交换后的所述IP包头、M个INC Header2和所述M个待聚合数据分片,重新封装得到M个INC聚合任务上行数据包为所述至少一个第二通信数据包。4.如权利要求1所述的方法,其特征在于,所述集合通信数据包包括以下一种或多种类型:
INC聚合树生成上行数据包、INC聚合树生成下行数据包、INC聚合任务上行数据包、INC聚合任务下行数据包;所述第一通信数据包包括IP包头;所述第一通信数据包包括一个或多个;在所述第一通信数据包为INC聚合任务下行数据包的情况下,所述第一通信数据包还包括符合第二格式的INC帧头,记为INC Header2;所述第一INC引擎对所述第一通信数据包进行数据包重封装,获取至少一个第二通信数据包,包括:根据所述一个或多个第一通信数据包对应的INC Header2,和设定的分片大小,将所述一个或多个第一通信数据包中的聚合结果数据合并为完整的聚合结果数据;根据所述IP包头和所述完整的聚合结果数据,重新封装得到一个IP数据包作为所述至少一个第二通信数据包。5.一种集合通信方法,应用于集合通信系统所包括的网络设备,其特征在于,所述方法包括,接收第三通信数据包;根据所述第三通信数据包中包含的在网计算INC标识,将所述第三通信数据包发送到所述网络设备包括的第二INC引擎;所述INC标识用于指示第三通信数据包为集合通信数据包;根据所述第三通信数据包对应的集合通信数据包类型,所述第二INC引擎对所述第三通信数据包进行数据包处理,获得第四通信数据包或进行本地数据缓存;在所述第四通信数据包不为空的情况下,发送所述第四通信数据包到所述集合通信系统中的通信网络或计算节点。6.如权利要求5所述的方法,其特征在于,所述集合通信数据包包括以下一种或多种类型:INC聚合树生成上行数据包、INC聚合树生成下行数据包、INC聚合任务上行数据包、INC聚合任务下行数据包;所述第三通信数据包包括IP包头;在所述第三通信数据包为INC聚合树生成上行数据包的情况下,所述第三通信数据包还包括符合第零格式的INC帧头,记为INC Header0;所述第二INC引擎对所述第三通信数据包进行数据包处理,获得第四通信数据包,包括:根据所述第三通信数据包中的INC Header0包括的计算节点聚合信息,更新所述网络设备本地的计算节点聚合信息;在所述网络设备不是集合通信系统所设定的网络根设备的情况下,根据更新后的所述网络设备本地的计算节点聚合信息,更新所述第三通信数据包中的INC Header0中包括的计算节点聚合信息,得到所述第四通信数据包;在所述网络设备是集合通信系统所设定的网络根设备的情况下,将所述第三通信数据包中所述INC Header0中的目的IP缓存字段值和所述IP包头中的目的IP地址字段值进行交换,以及根据更新后的所述网络设备本地的计算节点聚合信息,更新所述第三通信数据包
中的INC Header0中包括的计算节点聚合信息,得到INC聚合树生成下行数据包作为所述第四通信数据包;其中,所述INC Header0包括的计算节点聚合信息用于指示当前通信数据包对应...

【专利技术属性】
技术研发人员:郁晨
申请(专利权)人:江苏为是科技有限公司
类型:发明
国别省市:

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

1