一种基于可编程数据平面的网内神经计算系统

文档序号:31338060发布日期:2022-08-31 09:20阅读:173来源:国知局
一种基于可编程数据平面的网内神经计算系统

1.本发明涉及计算机技术领域,尤其涉及一种基于可编程数据平面的网内神经计算系统。


背景技术:

2.在传统的网络基础架构中,流量的可靠性传输对数据中心网络提出了更高的健壮性、服务质量(qos)、时延等方面的要求,并且网络中产生的复杂多元通信流量呈指数级增长。
3.然而当前集中式基础架构中的控制和管理主要部署在终端主机或远程控制器上,需要不断从网络中收集大量的异构数据分析推断网络特征,造成了过多的通信与计算开销,进而表现出笨拙和迟缓的网络动态响应,无法为互联网实现业务的多样化服务请求,提供qos保障。在未来海量数据流量的应用场景下现有的网络架构渐渐暴露其自身的不足之处。


技术实现要素:

4.针对传统的网络基础架构存在的不足问题,本发明提供了一种基于可编程数据平面的网内神经计算系统,从根本上改变可编程数据平面只能进行启发式计算的现状,实现网内神经计算机制,不需要把将要分析的数据发送到控制平面的运行学习算法来完成。
5.为实现上述目的,本发明实施例提供了如下的技术方案:
6.第一方面,在本发明提供的一个实施例中,提供了一种基于可编程数据平面的网内神经计算系统,包括:
7.获取模块,用于获取本交换机上用于与其他交换机相连的端口;
8.确定模块,用于在所述本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;
9.权重更新模块,用于基于所述数据包类型和应用在数据平面上的推理算法,更新本交换机的权值。
10.作为本发明的进一步方案,所述获取模块用于获取本交换机上用于与其他交换机相连的tfit端口。
11.作为本发明的进一步方案,所述基于可编程数据平面的网内神经计算系统中还包括网关,所述网关为一对数据平面交换机及所述数据平面交换机的控制器,其中,所述控制器与交换机并置或托管在同一域内的不同设备中。
12.作为本发明的进一步方案,所述数据平面交换机包括数据平面开关,所述数据平面开关用于解析数据包中包含的不同协议的头文件,并根据所述头文件的字段确定所述数据包的转发或阻止的对象。
13.作为本发明的进一步方案,所述数据平面交换机还用于使用流级特征执行转发决策,采用字符串表示不同类型的特征,通过给定网关支持的一组功能,将固定序列连接以获
得一维矢量,其中,在所述数据平面交换机中,向量的每个元素均采用二进制,向量表示为x0,表征数据包分类的输入。
14.作为本发明的进一步方案,在对数据包处理时,在每个网关处找到相对应的一个函数y=fn(x0),其中,y为一个表示数据包类型预测的一维二进制矢量。
15.作为本发明的进一步方案,所述基于可编程数据平面的网内神经计算系统中,每个网关独立在所述网关的数据平面中执行函数y。
16.作为本发明的进一步方案,所述权重更新模块中,采用二维向量表示第l层的神经元权重,用x
l-1
表示第l层的输入,则第l层的输出为:
[0017][0018]
其中,n表示网关。
[0019]
作为本发明的进一步方案,所述基于可编程数据平面的网内神经计算系统中,对数据包进行处理时,训练神经网络以获得最佳权重,其中,训练神经网络以获得最佳权重的方法,包括:
[0020]
在网关n的控制器中存储wn并进行后向传播,使数据平面进行二进制前向传播。
[0021]
作为本发明的进一步方案,在网关n的控制器训练时,包括步骤:
[0022]
步骤s1、确定xn,yn,分别代表在交换机n中训练的一批输入和标签;
[0023]
步骤s2、确定权值,为控制平面中的实值权重,为数据平面中的实值权重;
[0024]
步骤s3、确定输出,为每个域内的权重更新值以及学习率η;
[0025]
步骤s4、在一个域内执行前向传播,位于当前层时,遍历该层的所有卷积核;
[0026]
步骤s5、当对神经网络的所有层处理完成后,更新学习率。
[0027]
作为本发明的进一步方案,在步骤s4中,每层的滤波器k,得到和执行前向传播binaryforward(x,w
1t
,w
1b,2
)输出y值,执行反向传播binarybackward(l(x,y),w
1t
)输出当前域的局部权重更新值w;在步骤s4中执行前向传播处理持续到神经网络的第l层。
[0028]
作为本发明的进一步方案,在步骤s4中,当在n域内时,
[0029]
此时k值为第l层第k个滤波器;
[0030][0031][0032]
在步骤s5中,当对神经网络的所有层处理完成后,更新学习率,即η
t+1
=updatelearningrate(η
t
,t)。
[0033]
作为本发明的进一步方案,所述基于可编程数据平面的网内神经计算系统中,在交换机内的进行推理时,包括以下步骤:
[0034]
步骤s11、确定输入;输入x0为二进制输入样本和权值w为l层的权值;
[0035]
步骤s12、确定输出;y值为计算结果;
[0036]
步骤s13、对神经网络第一层进行处理操作,此时的输入x1应为
[0037]
步骤s14、对神经网络第二层进行处理,此时x2为sign(xnordotproduct(x1,w
1b
)),其中,x1为第二层经过处理后;
[0038]
步骤s15、对于其余层的处理如上述处理即可,即当进行到第l层此时应对y值进行输出,即输出值y值为
[0039]
第二方面,在本发明提供的又一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现基于可编程数据平面的网内神经计算系统中网内神经计算的步骤。
[0040]
第三方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述基于可编程数据平面的网内神经计算系统中网内神经计算的步骤。
[0041]
本发明提供的技术方案,具有如下有益效果:
[0042]
本发明提供了一种基于可编程数据平面的网内神经计算系统,考虑到p4语言当前支持运算的限制,利用构建二值化神经网络模型(xnor-net)部署到数据平面来保证路由优化;通过构建该转发模型,可以使得数据到达其处理目的地之前,在网络中运行数据包处理方法,不仅将减少网络流的处理负载,还将更高的保证qos需求。
[0043]
因此,本发明提供了一种基于可编程数据平面的网内神经计算系统,是基于p4在可编程数据平面上结合机器学习的模型方法实现流量的路由优化。同时为了降低cpu的负荷,采用智能网卡/dpu引入p4可编程数据平面可以支持用户更灵活的配置。其中智能网卡/dpu旨在为cpu卸载网络及存储的处理资源,同时可以支持更灵活的数据平面更改。
[0044]
本发明的这些方面或其余方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
[0045]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。在附图中:
[0046]
图1为本发明实施例的一种基于可编程数据平面的网内神经计算系统的系统框图。
[0047]
图2为本发明一个实施例的一种基于可编程数据平面的网内神经计算系统中网内神经计算的网络结构示意图。
[0048]
图3为本发明一个实施例的计算机设备的结构框图。
具体实施方式
[0049]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0050]
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0051]
下面将结合本发明示例性实施例中的附图,对本发明示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其余实施例,都属于本发明保护的范围。
[0052]
由于传统的网络基础架构中,当前集中式基础架构中的控制和管理主要部署在终端主机或远程控制器上,需要不断从网络中收集大量的异构数据分析推断网络特征,造成了过多的通信与计算开销,进而表现出笨拙和迟缓的网络动态响应,无法为互联网实现业务的多样化服务请求,提供qos保障。
[0053]
传统的网络基础架构存在的不足问题,本发明提供的一种基于可编程数据平面的网内神经计算系统,基于p4在可编程数据平面上结合机器学习的模型方法实现流量的路由优化。同时为了降低cpu的负荷,采用智能网卡/dpu引入p4可编程数据平面可以支持用户更灵活的配置。其中智能网卡/dpu旨在为cpu卸载网络及存储的处理资源,同时可以支持更灵活的数据平面更改。
[0054]
因此,本技术针对传统的网络基础架构,从根本上改变可编程数据平面只能进行启发式计算的现状,实现网内神经计算机制,这不需要把将要分析的数据发送到控制平面的运行学习算法来完成。考虑到p4语言当前支持运算的限制,本技术利用构建二值化神经网络模型(xnor-net)部署到数据平面来保证路由优化。通过构建该转发模型,可以使得数据到达其处理目的地之前,在网络中运行数据包处理方法,不仅将减少网络流的处理负载,还将更高的保证qos需求。
[0055]
需要特别说明的是,在本领域中,网关数据平面,即:可编程交换机。网关数据平面是指具有可编程性的分组转发设备,例如启用p4的交换机,smartnics和fpga。二值化神经网络部署在每个网关的数据平面中,用于对传入数据包进行处理操作。数据平面从传入数据包的头文件中提取某些位作为神经网络的输入,并且通过一系列逐位操作获取二进制输出。在此推理过程之后,网关对流量执行普通分组转发,可以实现线速数据包处理。
[0056]
在本领域中,网关控制平面,即:控制器。每个网关由具有通用cpu或gpu的单独边缘控制器管理。控制器可以本地部署在网关中或同一域内的另一个主机中。控制器维护具有与数据平面中相同结构的神经网络,在这里注意的是,不同之处在于权重和激活功能不是二值化的。该神经网络用于通过使用由数据平面收集的新网络迹线执行向后传播来随时间重新训练分类算法。控制器还保留api向数据平面写入权重值。
[0057]
具体地,下面结合附图,对本技术实施例作进一步阐述。
[0058]
参见图1所示,本发明的一个实施例提供一种基于可编程数据平面的网内神经计算系统,该系统包括获取模块100、确定模块200以及权重更新模块300。其中,所述获取模块100用于获取本交换机上用于与其他交换机相连的端口;所述确定模块200用于在所述本交
换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;所述权重更新模块300用于基于所述数据包类型和应用在数据平面上的推理算法,更新本交换机的权值。
[0059]
在本技术的一个实施例中,所述获取模块100用于获取本交换机上用于与其他交换机相连的tfit端口。
[0060]
在本技术的一个实施例中,参见图1和图2所示,所述基于可编程数据平面的网内神经计算系统中还包括网关,所述网关为一对数据平面交换机及所述数据平面交换机的控制器,其中,所述控制器与交换机并置或托管在同一域内的不同设备中,获取本交换机上用于与其他交换机相连的端口。
[0061]
在本技术的一个实施例中,所述数据平面交换机包括数据平面开关,所述数据平面开关用于解析数据包中包含的不同协议的头文件,并根据所述头文件的字段确定所述数据包的转发或阻止的对象。
[0062]
在本技术的实施例中,数据平面开关能够解析数据包中包含的不同协议的头文件,并根据特定的头文件字段确定数据包应该在哪里转发(或阻止),这可以被视为数据包级别的功能。
[0063]
在本技术的一个实施例中,所述数据平面交换机还用于使用流级特征执行转发决策,采用字符串表示不同类型的特征,通过给定网关支持的一组功能,将固定序列连接以获得一维矢量,其中,在所述数据平面交换机中,向量的每个元素均采用二进制,向量表示为x0,表征数据包分类的输入。
[0064]
在本技术的实施例中,交换机还可以使用流级特征(例如流的数据包/字节计数)来做出适当的转发决策。用字符串表示这两种类型的特征很简单。因此,给定网关支持的一组功能,可以将它们与固定序列连接起来以获得一维矢量。向量的每个元素都是二进制的,将这个向量表示为x0,它是数据包分类的输入。
[0065]
在本技术的一个实施例中,在对数据包处理时,在每个网关处找到相对应的一个函数y=fn(x0),其中,y为一个表示数据包类型预测的一维二进制矢量。
[0066]
每个网关独立地在其数据平面中执行y,而无需其控制器或其他域的网关的帮助,在本技术的一个实施例中,所述基于可编程数据平面的网内神经计算系统中,每个网关独立在所述网关的数据平面中执行函数y。其中,考虑到p4的运算,更具体地说,考虑一个具有完全连接的层的神经网络。
[0067]
在本技术的一个实施例中,所述权重更新模块300中,采用二维向量表示第l层的神经元权重,用x
l-1
表示第l层的输入,则第l层的输出为:
[0068][0069]
其中,n表示网关。
[0070]
如果x
l-1
和w
1b
都是二进制向量,这个操作就相当于两个比特串的xnor的汉明权重。
[0071]
为了高精度地对数据包进行处理,需要训练神经网络以获得最佳权重。在网关n的控制器中存储wn并进行后向传播,只让数据平面进行二进制前向传播。除了这种一次性的训练,数据平面也有可能将传入数据包的推理结果实时报告给它的控制器,这样就可以随着时间的推移,在控制器中再次进行训练,以提高训练效果和后续路由优化的准确性。
[0072]
在本技术的一个实施例中,所述基于可编程数据平面的网内神经计算系统中,对
数据包进行处理时,训练神经网络以获得最佳权重,其中,训练神经网络以获得最佳权重的方法,包括:
[0073]
在网关n的控制器中存储wn并进行后向传播,使数据平面进行二进制前向传播。
[0074]
在网关n的控制器训练时,包括步骤:
[0075]
步骤s1、确定xn,yn,分别代表在交换机n中训练的一批输入和标签;
[0076]
步骤s2、确定权值,为控制平面中的实值权重,为数据平面中的实值权重;
[0077]
步骤s3、确定输出,为每个域内的权重更新值以及学习率η;
[0078]
步骤s4、在一个域内执行前向传播,位于当前层时,遍历该层的所有卷积核;
[0079]
在本技术的实施例中,在步骤s4中,每层的滤波器k,得到和执行前向传播binaryforward(x,w
1t
,w
1b,2
)输出y值,执行反向传播binarybackward(l(x,y),w
1t
)输出当前域的局部权重更新值w;在步骤s4中执行前向传播处理持续到神经网络的第l层。
[0080]
步骤s5、当对神经网络的所有层处理完成后,更新学习率,即η
t+1
=updatelearningrate(η
t
,t)。
[0081]
其中,η为学习率;此时是对η学习率进行更新。
[0082]
在本技术的实施例中,(在一个域内,即n=1时)执行前向传播,位于当前层时,遍历该层的所有卷积核。每层的滤波器k,得到和就可以近似约等于原来的权重w
lk
了,执行前向传播binaryforward(x,w
1t
,w
1b,2
)输出y值,执行反向传播binarybackward(l(x,y),w
1t
)输出当前域的局部权重更新值w。该处理一直持续到神经网络的第l层。
[0083]
在本技术的实施例中,为最优尺度因子α通过将权重各元素取绝对值再取平均值来得到,其中,α默认为正数;为二值权重滤波器,即取原权重w的sign函数得到,其中,l》0。
[0084]
需要注意的是,虽然二值化神经网络在数据平面中的推理时效率很高,但由于不能从二进制函数计算梯度,因此无法直接训练神经网络。它保留由wn表示的实值权重。当通过正向传播计算损失函数时,使用二进制权重。但是,在下一步的向后传播过程中,将计算实值梯度并将其应用于权重更新。也就是说最后一层的nn权重未二值化。
[0085]
因此,当在n域内:
[0086][0087][0088]
此时k值为第l层第k个滤波器。
[0089][0090][0091]
在本技术的实施例中,wn为反向传播时权重的更新值。通过需要根据已知的二值
化后的权值梯度,加上学习速率,对实数型权值进行更新。
[0092]
在本技术的一个实施例中,所述基于可编程数据平面的网内神经计算系统中,在交换机内的进行推理时,包括以下步骤:
[0093]
步骤s11、确定输入;输入x0为二进制输入样本和权值w为l层的权值;
[0094]
步骤s12、确定输出;y值为计算结果;
[0095]
步骤s13、对神经网络第一层进行处理操作,此时的输入x1应为其中,x0为第一层数据包输入,一维向量;指此时第一层的权重。
[0096]
步骤s14、对神经网络第二层进行处理,此时x2为sign(xnordotproduct(x1,w
1b
)),其中,x1为第二层经过处理后;
[0097]
步骤s15、对于其余层的处理如上述处理即可,即当进行到第l层此时应对y值进行输出,即输出值y值为其中,x
l-1
为第l层数据包输入,一维向量,为此时第l层的权重。
[0098]
在一个实施例中,在本发明的实施例中还提供了一种计算机设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的基于可编程数据平面的网内神经计算方法,该处理器执行指令时实现上述基于可编程数据平面的网内神经计算系统中网内神经计算的步骤。
[0099]
如图3所示,在本发明的实施例中提供了一种计算机设备1000,该计算机设备1000包括存储器1001和处理器1002,存储器1001中存储有计算机程序,该处理器1002被配置为用于执行所述存储器1001中存储的计算机程序。所述存储器1001用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1002执行以实现上述基于可编程数据平面的网内神经计算系统中网内神经计算的步骤。
[0100]
在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于可编程数据平面的网内神经计算系统中网内神经计算的步骤。
[0101]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
[0102]
综上所述,本发明提供了一种基于可编程数据平面的网内神经计算系统,考虑到p4语言当前支持运算的限制,利用构建二值化神经网络模型(xnor-net)部署到数据平面来保证路由优化;通过构建该转发模型,可以使得数据到达其处理目的地之前,在网络中运行数据包处理方法,不仅将减少网络流的处理负载,还将更高的保证qos需求。本发明提供了一种基于可编程数据平面的网内神经计算系统,是基于p4在可编程数据平面上结合机器学习的模型方法实现流量的路由优化。同时为了降低cpu的负荷,采用智能网卡/dpu引入p4可
编程数据平面可以支持用户更灵活的配置。其中智能网卡/dpu旨在为cpu卸载网络及存储的处理资源,同时可以支持更灵活的数据平面更改。
[0103]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1