[发明专利]一种边缘环境下DNN应用计算卸载自适应中间件构建方法有效
申请号: | 202110726143.0 | 申请日: | 2021-06-29 |
公开(公告)号: | CN113435580B | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 陈星;李鸣 | 申请(专利权)人: | 福州大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/06;G06K9/62;G06F8/72 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 陈明鑫;蔡学俊 |
地址: | 350108 福建省福州市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 边缘 环境 dnn 应用 计算 卸载 自适应 中间件 构建 方法 | ||
1.一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:包括以下步骤:
步骤S1:构建卸载机制,所述卸载机制的输入为DNN源码,输出为可卸载的DNN目标代码;
步骤S2:构建评估模型,所述评估模型的输入为环境配置和应用源码,输出为最优卸载方案;
所述步骤S1的具体包括以下步骤:
步骤S11:提出管道—过滤器模式的设计模式;
步骤S12:利用代码重构技术将DNN源码转变为DNN目标代码,使该代码符合步骤S11的设计模式;代码重构目的是使代码严格遵循设计模式以实现卸载;
步骤S13:运行时机制根据配置文件对给定的卸载方案进行自适应卸载;
所述步骤S11的具体内容为:
管道-过滤器设计模式,即将一个整体的执行单元按需划分为多个可独立执行的小单元;其中,每个执行单元称为一个过滤器部件,该部件有一组独立的输入端口和输出端口,负责承接上下层的中间执行数据;执行单元间的数据连接通路称为一个管道部件,所述管道部件负责接受数据与转发数据;所述管道-过滤器模式扩展DNN层级分布式卸载能力,模型中的层相当于过滤器,管道作为层间的数据传输带,该数据传输模式不依赖于过滤器执行的位置,因此过滤器可被卸载在相同或不同的计算节点上;其中,DNN第一层的参数包括输入数据,DNN最后一层的输出结果即为网络推理的结果;在一个典型的DNN代码执行过程中,过滤器负责层的接受输入、计算以及保存输出,其中,接受的输入值将作为该层的入参,来源于外界输入或是上一层的中间运算向量;计算即DNN层的执行;保存的输出值将作为推理结果或是后继层的入参;管道负责层间数据的调度,包括接受本地或是远程的过滤器输出,并发送至本地过滤器或远程过滤器;
所述步骤S12中所述代码重构具体包括以下步骤:
步骤a:入参准备:在传入初始化数据InitData至DNN层中时,新增参数InitL、EndL,分别表示当前节点处理的初始DNN层标号和结束层标号;给定一个应用程序,在代码重构过程中插入InitL、EndL于参数列表,表示一次调用从初始DNN层InitL执行至结束DNN层EndL;新增参数CurrentL用以标记DNN应用执行的进度,即当前执行的过滤器标号;那么,当前节点中DNN层标号不在InitL至EndL范围内的DNN层将被跳过执行;由于不执行InitL的上一层,InitData被赋值作为上一层执行的中间结果输出;
步骤b:新增管道机制:新增方法Pipe(i)于执行每一层layer[i]之前,该方法决定layer[i]是否由当前节点的过滤器执行,对过滤器起激活作用,是运行时支撑机制的核心;
步骤c:新增过滤器:新增两个判断语句;第一个判断语句用以控制当前过滤器是否执行,第二个判断语句用以包装并存储本次调用中最后一个过滤器执行的结果,进而通过管道发送给远程节点的过滤器,即对管道起激活作用;新增全局变量Output用以保存待管道接收的中间输出结果,当前层的后继层若卸载于远程时,则需用到该变量;
所述步骤S2的具体包括以下步骤:
步骤S21:对基本信息进行建模,包括DNN结构模型、随机森林回归的代价预测模型组以及环境上下文模型;其中,DNN结构模型以DNN层代码作为输入,通过静态代码分析对模型中的层参数进行特征抽取;随机森林回归的代价预测模型组以DNN结构模型的信息作为输入,以随机森林回归模型作为训练器,输出为经过训练的模型组所预测的时延;
步骤S22:综合DNN结构模型、随机森林回归的代价预测模型组以及环境上下文模型,对要计算的卸载方案进行影响因素分析以及目标函数的构建;
所述影响因素指在衡量计算卸载方案性能问题时,对该问题结果产生影响的所有因素,它们来源于DNN结构模型、随机森林回归的代价预测模型组以及环境上下文模型;所述目标函数为执行DNN模型所需的总体响应时间;
步骤S23:评估模型的输出为最优的计算卸载方案,该方案能决策出DNN每一层的部署节点,从而得到最优的目标函数,即使卸载后的应用性能最佳,该方案的粒度为DNN层,通过配置文件实现对该方案的配置,并随目标代码部署于计算节点上;
步骤S21所述DNN结构模型的具体构建如下:
一个DNN模型结构可抽象为一个有向图GD=(L,R),表示层特征和层间传输关系;其中,L={l1,l2,…,ln}为DNN模型中层的集合,每个ln为模型中的一个层;R为DNN模型中数据流边的集合,每条边rij∈R表示从层li到lj的数据流向;
一个DNN层结构包括一个类型参数和一个至多个的特征参数,表示为li=type,feature的二元组,用以描述该层信息;其中,type表示DNN层的类型,feature表示DNN层的特征参数;
一个DNN层的类型参数表示为{type|conv,reul,pooling,fc},即代码分析提取的四种层类型,每个层仅有一个该参数;其中,conv表示为卷积层,reul表示为激励层,pooling表示为池化层,fc表示为全连接层;
一个DNN层的特征参数表示为{feature|name=value},即参数名和参数值的一个键值对,每个层有一至多个的该参数;其中,当type=conv时,{name|channel,ksize,knumber,stride,padding},channel表示卷积层的特征定义频道数,ksize表示卷积层的卷积核尺寸,knumber表示卷积层的卷积核数量,stride表示卷积层的移动步长,padding表示卷积层的填充值;当type=reul或type=fc时,{name|innumber,outnumber},innumber表示激励层或全连接层的输入神经元的数量,outnumber表示激励层或全连接层的输出神经元的数量;当type=pooling时,{name|channel,ksize,stride},channel表示池化层的输入通道维度,ksize表示池化层的区域大小,stride表示池化层的移动步长;
所述环境上下文模型的构建如下:
一个上下文边缘环境可抽象为一个无向图GC=(N,E),其中N表示一组计算节点,包括本地设备和远程服务器;E表示一组存在于节点ni∈N间的通讯链路;每条边edge(ni,nj)∈E具有以下属性:节点ni和nj间的数据传输速率以及往返时间
步骤S21中基于随机森林回归的代价预测建模具体构建如下:对于每一层,代价预测模型将DNN层的类型和特征作为输入,并预测该层的执行时间;各DNN层在某一计算节点上的执行代价包括执行时间和数据量大小,表示为的二元组,其中,time表示从接收输入数据到生成输出数据过程的执行时间,这取决于计算节点的性能;datasize表示输出数据的数据量大小,为固定值;使用随机森林回归模型来预测
利用历史数据集来训练预测模型:首先在各个计算节点上执行DNN应用程序,并从包括Alexnet、VGG16、VGG19、ResNet-50和ResNet-152在内的DNN应用程序中收集数据;随机森林回归预测模型如公式(1)所示,其中输入值X取决于层的类型,当层类型为卷积层conv时,如公式(2)所示;当层类型为池化层pooling时,如公式(3)所示;当层类型为激励层relu时,如公式(4)所示;当层类型为全连接层fc时,如公式(5)所示;
Y=predict(X) (1)
Xconv=(channel,ksize,knumber,stride,padding) (2)
Xpooling=(channel,ksize,stride) (3)
Xrelu=(innumber,outnumber) (4)
Xfc=(innumber,outnumber) (5)
采用Y、Xconv、Xpooling、Xrelu、Xfc变量,以及参数Ntree和Mtry,便可训练获得一个可预测执行成本的回归模型;其中,Ntree表示基于收集的层执行成本样本生长的回归树的数量,Mtry表示在每个节点上用于预测的预测因子的数量;
所述步骤S22的具体内容为:在决定每一DNN层应被卸载于哪一计算节点过程中,所需考虑的影响因子为:L、N、DEP、ti、Td(lk,lm)、Te(li)、Tresponse;L表示DNN模型中一组DNN层集合,L={l1,l2,…,ln};N表示一组计算节点集合,包括DS,ME和RC,nk∈N;表示DNN层li的一组父节点集合;DEP表示一组计算卸载决策,DEP=(dep(l1),dep(l2),…,dep(ln));表示节点ni和nj间的数据传输速率表示节点ni和nj间的往返时间;ti表示执行完DNN层li的时刻;Td(lk,lm)表示DNN层lk和lm间的数据传输时间;Te(li)表示执行DNN层li的执行时间;Tresponse表示一个DNN应用程序在某一卸载决策下的响应时间;
其中,在DEP=(dep(l1),dep(l2),…,dep(ln))中,DEP表示一种计算卸载方案,每一个li∈L均存在一个对应的卸载节点dep(li)∈N一个DNN应用程序的响应时间被表示为Tresponse,它等同于执行完最后一层DNN层lend的时刻tend,其中ti表示为执行完DNN层li的时刻;构造的目标函数即为评估一个卸载方案的完整响应时间Tresponse的过程;
构造目标函数如公式(6)所示,当一个卸载决策的目标函数值最小,则该卸载决策是最优的;
Tresponse=tn (6)。
2.根据权利要求1所述的一种边缘环境下DNN应用计算卸载自适应中间件构建方法,其特征在于:
在DNN应用执行阶段,根据管道-过滤器设计模式进行代码重构的目标程序代码和配置文件将部署在MEC环境中的所有计算节点上,对于配置文件的定义如下:一个DNN应用的卸载方案可通过配置文件config.file(x)表示,其中,x∈L表示DNN模型中的一个层编号,也称为过滤器x,且配置文件将不断更新至最新生成的卸载方案;需要明确的是,按层粒度标记每一层的卸载位置时,当过滤器x需要在本地节点被激活,则config_file(x)==LOCAL;当过滤器x需要卸载至远程节点时,则config_file(x)==REMOTE_,其中,REMOTE_后接卸载节点的名称;运行时的计算卸载机制通过管道来控制,并通过管道机制算法即通过输入的待激活的过滤器x和当前需要执行的DNN层CurrentL进行比较,如果CurrentL大于x,则x不执行直接跳过,如果当前CurrentL与x相等,则需要执行,并进一步通过config文件进行判断,如果是本地执行则直接在本地激活过滤器x,如果是需要远程执行,则通过RPC来激活卸载的目标计算节点的过滤器,达到计算卸载的目的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110726143.0/1.html,转载请声明来源钻瓜专利网。