掌桥专利:专业的专利平台
掌桥专利
首页

一种面向边缘智能的三层结构DNN计算卸载方法

文献发布时间:2023-06-19 09:32:16


一种面向边缘智能的三层结构DNN计算卸载方法

技术领域

本发明属于计算机技术领域,涉及边缘计算任务卸载,特别涉及到在客户端、边缘服务器、数据中心服务器三层结构中对DNN任务进行计算卸载。

背景技术

目前,在资源有限的移动设备上运行计算密集型深度神经网络(DNN)的有效做法是允许移动客户端向中央云服务器发出DNN查询,在中央云服务器上预先安装相应的DNN模型来执行查询。

这种集中式的、基于云的DNN卸载不适用于新兴的分散云基础设施,在这些基础设施中,客户端可以向位于网络边缘的任何邻近服务器发送计算请求。但客户端首先要上传自己的DNN模型到服务器,但由于上传时间较长,严重影响服务质量。而且在现有计算架构中,大多数体系都是客户端与数据中心服务器或者客户端与边缘服务器这种两层的结构,从服务端进行计算卸载时选择较少,可扩展性不如三层结构,而且整体的计算效率也很局限,多数取决于服务器端的性能。

发明内容

为了克服上述现有技术的缺点,本发明的目的在于提供一种面向边缘智能的三层结构DNN计算卸载方法,用于边缘计算中DNN查询的卸载,在该结构中边缘服务器解析DNN任务,根据DNN各层在不同节点的执行情况构建NN执行图,然后利用贪婪迭代随机算法迭代寻找最短路径,构建计算卸载策略,将客户端的任务放到三层体系结构中,提前根据计算任务的性质确定计算卸载策略,然后在三层结构中进行计算卸载,效率更高。

为了实现上述目的,本发明采用的技术方案是:

一种面向边缘智能的三层结构DNN计算卸载方法,包括如下步骤:

步骤(1),客户端接收DNN查询任务,依据DNN各个层的相关信息生成执行概要文件上传到边缘服务器,边缘服务器再收集数据中心服务器和自身对此DNN的预测函数,计算出预测的执行时延,进而生成DNN执行图;

步骤(2),利用贪婪迭代随机算法在三层结构中求出计算卸载策略;

步骤(3),在三层结构中通过协同协议执行计算卸载策略。

所述步骤(1)中:当客户端接收DNN查询任务,客户端通过运行DNN模型生成DNN执行概要文件上传到边缘服务器,然后将DNN模型的各个层的信息发送到边缘服务器和数据中心服务器,层的信息大小是文本格式,传输开销忽略不计,边缘服务器和数据中心服务器根据接收到的DNN模型中各个层的信息,再结合自身性能(包括处理器等硬件设备的计算能力)利用线性回归分析的方法构建预测函数来预测DNN层在本执行端执行的时间,最终边缘服务器收集汇总数据中心服务器、边缘服务器以及客户端对同一个DNN模型的执行预测结果,预测结果包含对DNN各个层的执行时间的预测。

所述步骤(2)中,边缘服务器使用收集到的DNN执行预测结果,利用预测函数对DNN层的执行时间进行预测并得出预测结果,然后利用预测结果生成DNN执行图,针对DNN执行图,利用贪婪迭代随机算法更新DNN执行图的权重来求DNN执行图的最短路径,生成计算卸载策略。

为了更好地存储计算卸载策略,创建一个空的上传矩阵,矩阵的行数是3,代表边缘服务器、数据中心服务器和客户端三个不同执行端,列数是DNN的层数,矩阵的值代表这一层要在哪个节点执行。假设第2行代表边缘服务器,第3列代表卷积层conv1,若第2行第3列值为1则表示conv1要上传到边缘服务器执行。

所述利用贪婪迭代随机算法更新DNN执行图的权重来求DNN执行图的最短路径的方法如下:

在DNN执行图中搜索从输入到输出的最短路径,如果该最短路径中包含了数据中心服务器或者边缘服务器,则将其添加到上传矩阵中,即判断该DNN层在哪个节点执行用的时间最短,然后以数据中心服务器或者边缘服务器对应的行为行号记为m,以DNN层对应的列为列号记为n,将上传矩阵m行n列的位置置1,第一轮循环完成;然后将DNN执行图中的层上传时间乘以K(K<1,即,倾向于将计算卸载到服务器以减少客户端能耗),相当于减少了层上传时间,然后重新计算最短路径,新的最短路径中可能增加服务器节点或边缘服务器,如果有新节点增加则填入上传矩阵,如果没有则继续乘以K来减少层上传时间,直到上传时间低于阈值0.01,迭代计算DNN执行图中的最短路径,最终生成DNN层上传矩阵。该矩阵包括了上传哪些层,分别上传到哪个节点,同时根据每次的迭代,确定一个层上传顺序来提高查询效率。

所述步骤(3)中边缘服务器根据计算得到的上传矩阵首先将列表里的第一个分区依据上传矩阵上传(即,在找最短路径的时候不是一次性就找完,需要迭代,例如第一次迭代发现需要上传A层,则将其填到列表里;第二次迭代由于修改了一些权重,发现B层,C层也要上传,再把[B,C]这样一个分区放到列表里,相当于记录了一个上传顺序),对应的节点利用已经交付的DNN层(即已经上传的DNN层)构建DNN模型(构建的方法即依据DNN层的参数进行回归分析逐步构建网络模型,然后再用模型去计算),并将该层的确认消息(ACK)发送回边缘服务器,边缘服务器再将列表里的下一个分区上传到对应的节点,直到分区上传完毕,边缘服务器通过检查每一个分区的ACK可以知道哪些分区已经成功上载到对应的节点,如果上传失败则重新上传,并记录失败次数,如果失败次数超过3次则认为无法上传重新选择节点。

当提出一个DNN查询以后,先要求客户端执行本地的分区,然后把执行得到的结果发送到数据中心服务器和边缘服务器作为上传分区的输入,边缘服务器不断的收集执行的结果并作为下一层的输出发送到对应的节点,以这种方式执行直到输出层。

本发明以三层为代表的多层结构相比于两层结构,引入了中间层,中间层的汇总和处理,优化了总体性能,避免了两层交互的冲突互斥问题,同时提升整体效率。

附图说明

图1为本发明流程示意图。

图2为Alexnet上传示意图。

图3为DNN执行图。

具体实施方式

下面结合附图和实施例详细说明本发明的实施方式。

本发明涉及的概念如下:

DNN模型,即深度神经网络模型,它包括多个DNN层。

DNN应用程序,内置了深度学习方法,用到了DNN模型。

参考图1,本发明一种面向边缘智能的三层结构DNN计算卸载方法,包括如下步骤:

步骤(1),执行概要信息的收集:客户端接收DNN查询任务,依据DNN各个层的相关信息生成执行概要文件上传到边缘服务器,边缘服务器再收集数据中心服务器和自身对此DNN的预测函数,计算出预测的执行时延,进而生成DNN执行图。

具体地,在客户端,当一个DNN应用程序在客户端上安装以后,客户端接收DNN查询任务,运行这个DNN模型,并且记录每个DNN层的执行时间,通过DNN层的类型和参数得到一个记录DNN执行情况的概要文件,并把该概要文件上传到边缘服务器。

边缘服务器和数据中心服务器分别依据自身性能和DNN层的类型和参数利用线性回归分析可以构建一个构建DNN层执行时间的预测函数,边缘服务器利用数据中心服务器的预测函数估计各DNN层在数据中心服务器的计算时延,同时利用自身预测函数估算各DNN层在本边缘服务器的计算时延,这样就收集到了DNN模型各层在客户端,边缘服务器,数据中心服务器的执行情况。

具体地,边缘服务器和数据中心服务器根据客户端发送的DNN层的类型和参数,来预测DNN层在本节点执行的时间,最终边缘服务器收集汇总数据中心服务器、边缘服务器以及客户端对同一个DNN模型的执行预测结果,预测结果包含对DNN各个层的执行时间的预测。

其中,当客户端进入边缘服务器的服务区域时,边缘服务器可与客户端进行信息交互,客户端将查询任务以及相关的执行概要文件发送到边缘服务器对应的IP,边缘服务器收集客户端的DNN查询任务以及执行概要文件。

步骤(2),利用贪婪迭代随机算法在三层结构中求出计算卸载策略。

步骤2.1构建DNN执行图

数据中心服务器在函数构建完成后与边缘服务器建立联系,向边缘服务器发送自己的预测函数,边缘服务器在运行阶段利用数据中心服务器的预测函数预测DNN层的执行时间,具体是利用步骤1中所收集到的执行概要信息获得计算时延,然后再通过层的大小除以当前网络速度来计算层传输时间。通过对比不同的层在不同节点的执行时间,可以建立一个DNN执行图,DNN执行图中边的权重包括每一个DNN层在不同节点上的执行情况,针对DNN执行图,利用贪婪迭代随机算法更新DNN执行图的权重来查找DNN执行图的最短路径,生成计算卸载策略,从而进行合理的分区调度。

步骤2.2初始化DNN层上传矩阵

为了更好地存储计算卸载策略,创建一个空的上传矩阵,矩阵的行数是3,代表边缘服务器、数据中心服务器和客户端三个不同执行端,列数是DNN的层数,矩阵的值为0或1,假设第2行代表边缘服务器,第3列代表卷积层conv1,若第2行第3列值为1则表示conv1要上传到边缘服务器执行。

步骤2.3查找最短路径并填充上传矩阵

在DNN执行图中搜索从输入到输出的最短路径,如果该最短路径中包含了数据中心服务器或者边缘服务器,则将其添加到上传矩阵中,即判断该DNN层在哪个节点执行用的时间最短,以数据中心服务器或者边缘服务器对应的行为行号记为m,以DNN层对应的列为列号记为n,将上传矩阵m行n列的位置置1,第一轮循环完成;然后将DNN执行图中的层上传时间乘以K(K<1,即倾向于将计算卸载到服务器以减少客户端能耗),相当于减少了层上传时间,然后重新计算最短路径,新的最短路径中可能增加数据中心服务器或边缘服务器,如果有新节点增加则填入上传矩阵,如果没有则继续乘以K来减少层上传时间,直到上传时间低于阈值0.01,迭代计算DNN执行图中的最短路径,通过这样一种贪婪随机算法,迭代计算DNN执行图中的最短路径,由于K的存在每一次迭代都可能有新的层需要上传,最终生成DNN层上传矩阵。该矩阵包括了上传哪些层,分别上传到哪个节点,同时根据每次的迭代,确定一个层上传顺序来提高查询效率。

步骤(3),在三层结构中通过协同协议执行计算卸载策略。

具体地,边缘服务器根据计算得到的上传矩阵首先将列表里的第一个分区依据上传矩阵上传(即,在找最短路径的时候不是一次性就找完,需要迭代,例如第一次迭代发现需要上传A层,则将其填到列表里;第二次迭代由于修改了一些权重,发现B层,C层也要上传,再把[B,C]这样一个分区放到列表里,相当于记录了一个上传顺序),对应的节点利用已经交付的DNN层(即已经上传的DNN层)构建DNN模型(构建的方法即依据DNN层的参数进行回归分析逐步构建网络模型,然后再用模型去计算),并将该层的确认消息(ACK)发送回边缘服务器,边缘服务器再将列表里的下一个分区上传到对应的节点,直到分区上传完毕,边缘服务器通过检查每一个分区的ACK可以知道哪些分区已经成功上载到对应的节点,如果上传失败则重新上传,并记录失败次数,如果失败次数超过3次则认为无法上传重新选择节点。

当提出一个DNN查询以后,先要求客户端执行本地的分区,然后把执行得到的结果发送到数据中心服务器和边缘服务器作为上传分区的输入,边缘服务器不断的收集执行的结果并作为下一层的输出发送到对应的节点,以这种方式执行直到输出层。

在本发明的一个实施例中,利用DNN模型Alexnet对猫狗进行识别为例,数据集采用猫狗图片各500张进行训练,测试集的数据大小为猫狗图片各10张。

步骤1:客户端利用数据集对应的标签预处理数据集并加载,载入相关配置文件比如用于配置网络模型的文件,用于提高准确率的均值文件。然后记录网速用于后续生成DNN执行图,根据边缘服务器和数据中心服务器的IP建立三层连接。

步骤2:初始化完成以后,输入要识别的图片。Alexnet共包括24个DNN层,其中有多个卷积层和relu层,还有三个全连接层,输入输出层各一个,如图2所示为利用三层计算卸载结构对Alexnet网络模型进行计算的示意图,Alexnet层和层之间有输入输出的对应关系,例如conv1需要接收数据层的数据才能开始运算,norm1需要利用conv1的输出结果作为输入,以此类推。

在面向边缘智能的三层计算卸载结构中,通过边缘服务器调度可以将不同的层上传到不同的节点协同执行,如图2中,conv1层和norm1层上传到数据中心服务器执行,pool1和pool2在边缘服务器执行,conv2和loss层则在本地客户端执行。

具体此处客户端依据Alexnet概要文件,该执行概要文件描述了各层在本地执行的时间,边缘服务器和数据中心服务器的预测函数也是根据各层的类型和参数来构建的。当客户端与边缘服务器连接以后,边缘服务器将预测函数发送到客户端来进行执行时间的预测,最终三个节点对Alexnet各层的执行预测分别生成三个执行概要文件都汇总到边缘服务器,由于预测函数和执行预测的结果文件都很小,传输时间可以忽略不计,边缘服务器利用预测函数得到预测的计算时延以后,再利用网速计算传输时延,建立一个DNN执行图。

如图3所示为建立的抽象DNN执行图,其中DServer代表数据中心服务器,EServer代表边缘服务器,Client代表客户端,为了解释说明,A,B,C,D分别对应Alexnet中的conv1,norm1,pool1,conv2,图中箭头代表执行路径,虚线为最短路径。

本次计算共进行了三次迭代,首先是一个初始状态的DNN执行图,也就是图中的第一次迭代,然后在图中搜索从输入到输出的最短路径(用虚线表示),首先对A层进行分析,A层在client执行没有上传时延,总的执行时间就是它计算时延5。如果A层在边缘服务器执行,输入的时延为1,计算时间为3,层上传到边缘服务器的传输时延为3,最终将结果输出的时延为1,共1+3+3+1=8。如果在数据中心服务器执行,输入时延为1,计算时延为1,传输时延为4,输出时延为1,总时延为7,通过对比client端上传时延<数据中心服务器时延<边缘服务器时延,所以A层在本地执行。接下来对B层进行分析,通过计算可知B层在边缘服务器执行消耗时延最短,所以将B层上传到边缘服务器进行计算,并更新上传矩阵;同理对C层和D层进行分析可以得出他们应该在本地执行,至此,第一次迭代结束,最新的上传矩阵为图3第一层右侧矩阵。

接下来进行第二次迭代,首先将层上传时间乘以K(K=0.5),更新DNN执行图变为了图中的第二层,然后依次对A、B、C、D进行分析,可以看出,A层应该在DServer端执行,B层在Eserver端执行,C层在DServer端执行,D层在本地执行,才可以获得最短时延,确定好上传策略的同时要更新上传矩阵。

在第三次迭代中,虽然层上传时间相比较第二次减少了一半,但最短路径与之前相同,因此没有新的DNN层需要上传。通过计算,由于D层在客户端本地的执行时延都低于在服务器和边缘服务器,所以不论上传时延怎么减小,它不会上传,所以D层更适合在本地执行。最终生成上传矩阵,确定计算卸载策略,[B]上传到边缘服务器,[A,C]上传到数据中心服务器,D层在本地执行可以达到最佳查询性能。

步骤3,计算卸载策略确定以后,客户端就开始上传,首先上传[B]到边缘服务器,边缘服务器依据B开始构建DNN模型,并将ACK发送到客户端,客户端接收到确认消息就再上传A和C到数据中心服务器,在三层结构中,边缘服务器负责任务调度,包括对确认信息的传递,从而降低客户端开销,所以数据中心服务器接收完A和C以后将确认消息通过边缘服务器发送给客户端,客户端才可以进行下一步操作。

当收到一个DNN查询时,A层先开始执行,将结果作为输入发送到边缘服务器执行B层,B层执行完将结果发送到数据中心服务器作为输入执行C层,最终发送回客户端作为D层的输入,并获得最终的输出结果。在这个过程中,上传与执行两个线程共同执行,充分利用了计算资源提高了查询效率。

以上,对本发明的具体实施方式做了具体描述,但是不应该认定本发明的具体实施只局限于这些说明。对于本发明所属领域的普通技术人员来说,在不脱离本发明构思和由权利要求书所限定的保护范围的前提之下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 一种面向边缘智能的三层结构DNN计算卸载方法
  • 一种面向边缘智能的多边缘节点增量计算卸载方法
技术分类

06120112208527