CN113592077B - 一种面向边缘智能的云边端dnn协同推理加速方法 - Google Patents
一种面向边缘智能的云边端dnn协同推理加速方法 Download PDFInfo
- Publication number
- CN113592077B CN113592077B CN202110895523.7A CN202110895523A CN113592077B CN 113592077 B CN113592077 B CN 113592077B CN 202110895523 A CN202110895523 A CN 202110895523A CN 113592077 B CN113592077 B CN 113592077B
- Authority
- CN
- China
- Prior art keywords
- edge
- node
- dnn
- cloud
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000001133 acceleration Effects 0.000 title claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 50
- 238000007906 compression Methods 0.000 claims abstract description 21
- 230000006835 compression Effects 0.000 claims abstract description 20
- 238000007781 pre-processing Methods 0.000 claims abstract description 4
- 230000005540 biological transmission Effects 0.000 claims description 31
- 238000005192 partition Methods 0.000 claims description 30
- 238000000638 solvent extraction Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000011218 segmentation Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 4
- 238000003672 processing method Methods 0.000 abstract description 3
- 230000007849 functional defect Effects 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000003416 augmentation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 101100008044 Caenorhabditis elegans cut-1 gene Proteins 0.000 description 3
- 101100008046 Caenorhabditis elegans cut-2 gene Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种面向边缘智能的云边端DNN协同推理加速方法,属于DNN推理加速技术领域,用以解决现有的DNN推理任务的响应时间没有得到最大限度的减少的问题。本发明的技术要点包括:针对DAG形式的DNN模型,在原有的两层模型划分基础上,充分考虑云、边、端三层设备,设计了三层两阶段模型划分方法,提高了云边端计算资源的利用率和边缘服务器在极端情况下协同模型的可用性;在将DNN模型划分问题转化为最大流最小割问题的算法基础上,通过图压缩方法对DAG进行预处理,降低了模型划分算法的时间复杂度;进一步增加对于局部并行单元的处理方法,解决了算法在面对复杂DNN模型时的功能缺陷。本发明适用于边缘智能中对DNN模型进行实时动态调整。
Description
技术领域
本发明涉及DNN推理加速技术领域,具体涉及一种面向边缘智能的云边端DNN协同推理加速方法。
背景技术
万物互联带来了贴近移动终端的边缘应用和数据的爆发式增长,也让人工智能有了更加丰富与人性化的应用场景。而将人工智能推向边缘,利用边缘的数据与计算资源释放其潜力,解决深度学习所面临的低延迟、扩展性和隐私问题,成为了目前最流行的解决方案。但另一方面,深度学习虽然提高了各种智能应用的准确性,但越来越复杂的DNN模型也带来了更高的计算要求。将DNN推理任务放置在云端会导致较大的网络数据传输,而将任务完全推向设备或边缘也意味着更沉重的计算资源占用。在现有的工作中,所考虑的DNN模型通常是比较简单的链式DNN模型,对于更复杂的DAG形式模型现有的算法时间复杂度较高,无法在云边动态环境中,快速调整模型划分;另外现有的模型划分方式,主要考虑的都是云边协同、云与设备协同或设备与边缘协同这种两层协同推理模型,而实际环境中,对于一个推理任务,从设备对数据的采集开始,所能利用的计算资源包括边缘设备、边缘服务器和中心云三层,现有的两层划分方案没有充分利用云边端三层的计算资源。因此如何充分利用云边端资源,最大限度减小DNN推理的响应延迟需要合理的被解决。
发明内容
鉴于以上问题,本发明提出一种面向边缘智能的云边端DNN协同推理加速方法,用以解决现有的DNN推理任务的响应时间没有得到最大限度的减少的问题。
一种面向边缘智能的云边端DNN协同推理加速方法,在由边缘设备、边缘服务器、中心云组成的云边端三层架构中,数据推理由边缘设备或边缘服务器或中心云执行计算,针对推理总延迟最小化,通过下述步骤实现推理加速:
步骤一、基于DNN模型构建其对应的DAG图,利用最大流最小割算法对DNN模型进行边缘服务器-中心云之间的第一次划分,获取云-边分区节点集合;
步骤二、对在边缘服务器执行推理的DNN层边缘节点集合进行边缘设备-边缘服务器之间的第二次划分,获取边-端分区节点集合。
进一步地,步骤一的具体步骤包括:
步骤一一、构建的DAG图为:G=<V,E>;其中,V={v1,v2,…vn}表示DNN的n层;v1,vn分别表示输入层和输出层;边(vi,vj)∈E表示vi,vj两层存在前后顺序依赖关系;定义V′e为包含输入层v1、在边缘服务器处理的节点集合,Vc为包含输出层vn、在中心云处理的节点集合,Ve-c为在边缘服务器处理的云-边分区节点集合;则Ve=V′e∪Ve-c为所有在边缘服务器处理的DNN层边缘节点集合;
定义目标函数为:求解云-边分区节点集合Ve-c,使得云-边总延迟T=Te+Tt+Tc最小;其中,Te表示边缘计算延迟,Tc表示中心云计算延迟;Tt表示云-边分区节点集合中所有节点输出数据从边缘服务器传输到中心云的传输延迟;
步骤一二、在DNN模型的DAG图基础上,扩展网络流图,利用最大流最小割算法对网络流图求解,使得分割容量最小的解即为目标函数的解,从而获得使得目标函数最小化的云-边分区节点集合。
进一步地,步骤二的具体步骤包括:
步骤二一、对于在边缘服务器执行推理的DNN层边缘节点集合,定义目标函数为:求解边-端分区节点集合,使得边-端总延迟时间最小;其中,边-端总延迟时间包括设备计算延迟、边缘计算延迟和边-端分区节点集合中所有节点输出数据从边缘设备传输到边缘服务器的传输延迟;
步骤二二、将所有在边缘服务器处理的DNN层即边缘节点集合Ve按照DAG结构拓扑排序;定义出度大于1的节点为广播节点,入度大于1的节点为聚合节点,广播节点与聚合节点之间的节点为分支节点Vx,则非分支节点集合为V′e=Ve-Vx;
步骤二三、当边缘节点集合中节点总数小于预设边缘节点总数值,且分支节点总数小于等于预设分支节点总数值时,通过穷举法在非分支节点集合V′e中寻找最佳划分点;
步骤二四、当边缘节点集合中节点总数大于等于预设边缘节点总数值,或者分支节点总数超过预设分支节点总数值时,利用最大流最小割算法对边缘节点集合Ve进行划分。
进一步地,在利用最大流最小割算法划分过程中,利用图压缩减少划分的执行时间,具体过程为:在扩展网络流图之前,首先判断节点是否可以作为当前路径上分割的最后节点,即如果存在节点的输入不大于输出,则可以对DAG图进行预处理压缩;其中,对于出入度不都为1的节点,默认保留;从而在扩展网络流图前合并节点,完成模型整体压缩。
进一步地,在利用最大流最小割算法划分过程中,对于DAG图中局部并行单元进行下述处理:在DAG图初始化压缩过程中,匹配当前模式的单元子图,为了最小化连线容量的修改,且不影响其他分割的时间成本计算,选择节点右侧输出连线的容量进行修改。
进一步地,节点右侧输出连线的容量的计算公式为:
其中,表示第i层节点输出数据从边缘服务器传输到中心云的传输延迟;/>表示第j层中心云计算延迟;m表示边数量。
本发明的有益技术效果是:
本发明针对DAG形式DNN模型,定义模型划分问题,在层级粒度上探讨了DNN各层推理执行延迟的测量与预测,在原有的两层模型划分基础上,充分考虑云、边、端三层设备,设计了三层两阶段模型划分方法,提高了云边端计算资源的利用率和边缘服务器在极端情况下协同模型的可用性;在将DNN模型划分问题转化为最大流最小割问题的算法基础上,通过图压缩方法对DAG进行预处理,降低了模型划分算法的时间复杂度;进一步增加对于局部并行单元的处理方法,从而解决了算法在面对复杂DNN模型时的功能缺陷。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。
图1是本发明中DNN模型及其对应的DAG图示例图;其中,图(a)是inceptionC模型;图(b)是inceptionC模型的DAG形式;
图2是本发明中DAG转化为网络流图的过程示意图;
图3是本发明中网络流图及其分割示意图;其中,图(a)是网络流特征图;图(b)是对于节点2的两个分割;
图4是本发明中DAG压缩示意图;
图5是本发明中DAG局部并行单元示意图;
图6是利用本发明方法对不同的DNN模型进行划分并进行图压缩处理后的优化前后对比图;
图7是本发明方法与全边推理模型、全云推理模型在延迟时间和系统吞吐量上的对比结果图;
图8是本发明方法与链式DNN划分模型、两层DAG划分模型在延迟时间和系统吞吐量上的对比结果图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范性实施方式或实施例进行描述。显然,所描述的实施方式或实施例仅仅是本发明一部分的实施方式或实施例,而不是全部的。基于本发明中的实施方式或实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式或实施例,都应当属于本发明保护的范围。
本发明考虑以有向图形式组织的复杂DNN模型,其中每个节点都是一个处理单元,上一层的输出作为下一层的输入,正向推理过程顺序执行。数据由边缘设备采集,当推理由边缘服务器执行计算时,数据样本需要从边缘设备发送到边缘服务器,当推理由中心云执行计算时,数据样本需要发送到中心云。因此推理响应的总延迟主要包括传输时间和计算时间两方面,本发明第一个目标是通过一种针对DAG的模型划分算法,将DNN推理过程划分在边缘和中心云两层进行执行,从而实现总传输时间的最小化;之后针对模型划分算法,通过一定的优化方式,降低动态环境中算法的划分时间,从而提高算法在动态环境中的可用性;最后,进一步考虑云边端三层架构,在两层划分基础上充分利用云边端三层计算资源,实现更完善的面向云边端的DNN协同推理加速。下面进行详细地介绍。
1.基于模型划分的协同推理算法
首先,为了实现两层模型划分的协同推理加速方法,这里对通用的DNN(深度神经网络)网络构建DAG(有向无环图)模型,针对推理总延迟最小化定义对应的目标函数与相关输入参数,主要包括DNN模型各层在云上执行时间、在边上执行时间、中间输出从边到云的传输时间。
传统的DNN划分算法,通常是将DNN当做链式结构处理,但实际上很多DNN模型包含多个层,每个层有一个或多个输入和一个输出,每一层的输出作为连接当前层的所有后置层的输入,整个数据单向流动,因此仅仅处理链式DNN并不能解决目前很多常用的DNN模型。而更通用的方案是基于DNN模型构建其对应的DAG图,如图1(a)所示,为inceptionV4模型的inceVption C部分,将其建模为DAG图,如图1(b)所示,每个节点代表DNN的一层,层是分割的最小单位。
对于一个DNN模型M,构造其DAG形式,G=<V,E>;其中,V={v1,v2,…vn}表示DNN的n层,v1,vn分别表示输入层和输出层;边(vi,vj)∈E表示vi,vj两层存在前后顺序依赖关系。DNN分区的目标是将DNN模型分成两部分,一部分在边缘处理,另一部分在中心云处理,因此目标是找到一组顶点集合V的子集Ve-c,且移除Ve-c时,图G会被分成两部分,一部分包含输入层v1,定义为V′e,一部分包含输出层vn,定义为Vc。Ve-c作为划分点集合,所有Ve-c之后的DNN层都会在中心云处理,而V′e和Ve-c会在边缘处理。因此,定义Ve=V′e∪Ve-c,表示所有在边缘处理的DNN层。如图1(b)所示,选取分割点集合Ve-c=v3,v5,v6,v9,从而得到V′e={v1,v2,v4},Ve={v1,v2,v3,v4,v5,v6,v9},Vc={v7,v8,v10,v11,v12,v13}。
定义Ve的总计算延迟用Te表示,而Vc的总计算延迟用Tc表示。Ve-c中所有节点的输出数据将从边缘传输到中心云,其总的传输延迟用Tt表示。综上所述,DNN分区的目标函数是,求解最佳划分点集合Ve-c,使得总延迟T=Te+Tt+Tc最小。
为求解最佳划分点集合Ve-c,需要分别计算通信和计算延迟,对于每个数据样本,要分别计算其在边缘端推理计算的时间Te,中间数据传输时间Tt,云上推理计算时间Tc,而对于任意DNN层vi,其推理计算的延迟取决于卸载位置,因此定义如下变量:
从边缘到中心云的带宽B;vi层的输出数据大小为di,vi层作为划分点所需传输时间vi层在边缘端的计算延迟为/>在中心云的计算延迟为/>
因此,三个阶段分别需要的总时间如下:
1)边缘端分区计算总时间为:
2)中心云分区计算总时间为:
3)边缘到云数据传输总时间为:
最终算法需要的输入参数如下:
1)DNN所有层的边缘计算时间:
2)DNN所有层的云上计算时间:
3)DNN所有层的输出传输时间:
根据上述问题定义,分析可知在云和边之间划分DNN模型的问题,只考虑云和边两层时,可以等效为二者选一使总消费最小的问题。在模型的DAG图的基础上,扩展网络流图,定义如下:
1)在原DAG图的基础上,定义所有边(vi,vj)的容量为cost(vi,vj),即边(vi,vj)的容量为vi层输出数据所需的传输时间。
2)在原DAG图的基础上,增加源点e和汇点c,即G=<V∪{e,c},E>,分别代表边节点和云节点。
3)连接源点e与原DAG的所有节点vi,定义即边缘节点e与节点vi之间的连线容量为vi层在云上的执行时间。
4)连接原DAG的所有节点vi与汇点c,定义即节点vi与云节点c之间的连线容量为vi层在边缘的执行时间。
5)当节点vj出度大于1时,所有以vj作为起点的边的容量均为vj层的输出数据所需的传输时间,所以其传输时间会被多条边重复计算,因此引入虚拟节点v′j替换掉vj,使vj连接v′j,定义而v′j的所有向外的连线用虚线表示,其容量为正无穷。定义虚拟节点集合为VD。
至此,对于所有DNN的DAG图都可以被扩展为网络流图形式,所有边都定义了容量,如图2所示,其中,灰色节点v1,v2,v3,v4表示DNN的层节点,黑色连线代表节点输出数据所需的传输时间,绿色节点e表示源点e即边缘,源点e和其它节点之间的绿色连线代表节点在云上的执行时间,蓝色节点c表示汇点c即中心云,其它节点与汇点c之间的蓝色连线代表节点在边缘的执行时间,黄色节点v′1表示虚拟节点,虚线容量为正无穷。其容量公式为:
如图2所示,红色虚线cut即表示一种图的分割,包括源点e的部分表示为在边缘执行的节点集合Ve,即{v1},包括汇点c的部分表示为在中心云执行的节点集合Vc,即{v2,v3,v4}。而分割所经过的所有边的容量之和,即割的容量正好可以表示v1在边缘的执行时间即Te,v1节点输出数据的传输时间即Tt,以及v2,v3,v4在边缘的执行时间即Tc。而所有虚线由于其容量为正无穷因此切割代价为无穷,所以一定不会被切割。
Ttotal=c(S,T)=c(Ve,Vc)=Te+Tt+Tc (5)
因此只要找到一种分割方式,使得分割容量c(S,T)最小,即可使得DNN模型推理的总时间最小。
这里有一个特殊情况要注意,如果最优划分出现在将所有节点均放置在中心云计算,则实际总时间要包括将原始样本传输到中心云的时间,如果没有考虑到初始样本数据传输到中心云的时间,则由于云的算力要远大于边缘算力,因此最小分割Ve永远等于{e}。因此设初始样本传输时间为得到:
根据最大流最小割定理,一个网络流图的最小割等于通过网络的最大流。一般可以通过寻找增广路的方式来迭代求解最大流。这里选择Dinic算法来求解最小割问题。Dinic算法的思想是分阶段地在层次网络中增广,时间复杂度为每次增广前,先用BFS来将图分层。通过分层,可以在汇点层数不存在时停止增广,并确保所找的增广路最短,在每次找增广路时,只找层数多1的节点进行增广。通过多路增广,利用剩余流量在一次DFS中找到多条增广路,同时标记已增广的边,称为当前弧优化。综合以上两点,一次DFS的复杂度为O(m×n)。其中n是节点数量,m是边数量。因此,Dinic算法的总时间复杂度即O(m×n2)。
到此,即可对DNN模型正确划分,获得当前状态下云边协同最小推理总时间Ttotal,输出Ve,Vc,以及Te,Tt,Tc。
2.基于图压缩的划分算法优化
上述提到基于DAG图构建网络流图,然后通过最大流算法Dinic求解最小割,输出云边分区节点集合。然而在线环境中,无论是设备、边缘、中心云,其计算资源和网络带宽都是动态变化的。一旦这些资源状态发生改变,将直接影响Fe,Fc和Ft集合的各项值,也就是最小割算法的输入参数。因此当资源状态出现较大波动时,模型的最优划分方案会相应改变,因此除了能够动态获取和预测这些输入参数。最小割算法本身的时间复杂度也是动态划分调整的重要影响因素。这里引入一个前提条件,即云的计算资源远大于边缘计算资源,也就是对于任意DNN层,不考虑传输时间的情况下,在边缘端的计算延迟一定大于在云上的计算延迟,即
因此在这种由DNN模型扩展构建的数据流图,对于任意DNN层节点vi,与源点e的连线容量cost(e,vi)恒小于与汇点c的连线容量cost(vi,c)。如图3(a)所示,连接相同灰色节点的绿色线(上半部分三条线)容量恒小于蓝色线(下半部分三条线),因此如果分割经过节点2前后,则存在两种情况,如图3(b)中的红色虚线cut_1和cut_2。
其中,cut_1所表示的割的容量为:
cut_2所表示的割的容量为:
计算差值:
已知恒小于/>因此当/>时,cost(cut_1)≤cost(cut_2)。因为/>的值和节点的输出数据大小成正比,也就是/>的大小和节点1的输出数据大小线性相关,/>的大小和节点2的输出数据大小线性相关。又因为节点1的输出数据大小等于节点2的输入数据大小,因此对于任意DNN层节点,如果其输入数据大小小于或等于输出数据大小,也就是在当前层没有实现数据输出量的减少,则将当前层划入边缘进行计算一定会带来总延迟代价的增加,因为云的算力远大于边缘,所以分割永远不可能经过该节点的输出连线上。
总结定理如下:对任意出入度为1的节点vi∈G,扩展流图G′,设分割(S,T)是包含vi且不包含vj(j>i)的一个分割,如果则cost(S,T)>cost(S-{vi},T+{vi}),即分割(S,T)不是图G′的最小分割。
根据定理可知,对于任何一个DNN模型,都可以在进行数据流图扩展之前,对其节点进行分析,判断其是否可能作为当前路径上分割的最后节点。如果存在节点的输入不大于输出,则可以对DAG图进行预处理压缩,如图4所示。红色节点2的出度入度均为1,且输入数据不小于输出数据,因此可以去掉节点2,具体方式是将节点2和节点3合并为新的节点3,并与节点1直接相连,其输入数据大小等于节点2的输入数据大小,云边计算延迟等于节点2与节点3的云边计算延迟之和。
对于出入度不都为1的节点,默认保留,从而可以对通用的DNN模型在扩展前进行节点的合并,从而完成模型整体的压缩,因为常见的DNN模型中通常有很多可以进行合并的不可分割层,所以图压缩可以有效降低最大流最小割模型划分算法的执行时间。
3.针对局部并行单元算法处理
如图5左侧部分所示,是ResNet50模型的一个局部单元,相同特征的单元结构在ResNet50以及其他常见DNN模型中都有大量出现。具体特征为在某个节点开始,模型分为两路分支,其中一路在某一层上发生输出数据的缩小,如图中绿色DNN层(左侧部分第一个Conv2D),之后经过大量卷积等计算层后与另一路汇合。将该局部单元抽象成图5右侧部分所示,分析该单元的计算特征,发现当分割发生在红色虚线cut处时,即红色虚线cut下半部分的DNN层在中心云计算,而上半部分在边缘计算。而此时绿色节点vi+1的输出数据传输与灰色节点vi+2-vm-1的计算过程是和vi层输出数据的传输并行执行的,即右侧分支的传输过程与左侧分支的计算过程实际上是同时发生的,最终在vm节点处汇合,也就是说这部分的时间等于两部分时间的最大值。
但是在最小割模型划分算法中,当分割发生在红色虚线cut处时,这部分的总时间表示结果为左右分支传输时间与灰色节点计算时间之和。因此导致当前分割方式的时间成本增加,从而得到不正确的划分结果。
对此,在原有的最小割模型划分算法和压缩算法的基础上加以修改,增加针对局部并行场景的特殊处理,进一步优化划分算法。分析图中单元结构的特征,结合最小割算法,为了让最小割算法能够正确处理当前局部单元的场景,需要在网络流图的连线容量上进行修改,让最小割算法能够考虑到图中并行场景的时间成本优化。具体的处理方式为,在DAG初始化压缩过程中,匹配当前模式的单元子图,为了最小化连线容量的修改,且不影响其他分割的时间成本计算,这里选择修改右侧分支即vi的右侧输出连线的容量,公式如下:
公式(10)表示当右侧传输时间较大时,总时间等于右侧传输时间,因为左侧容量保持不变,所以传输时间要减去左侧分支的传输计算时间。而当右侧传输时间较小时,则以左侧时间为主,右侧时间自动归零。
4.面向云边端的三层两阶段划分方法
实际环境中,云边架构要包括边缘设备、边缘服务器、中心云三层,传统的两层模型划分无法充分利用三层计算资源,对于DAG模型通过一次划分三部分得到最优解是一个NP问题,动态环境中模型分割算法是时间敏感的,因此对于三层划分,要考虑到划分的时间复杂度问题。另一方面,无论是推理还是训练,都要考虑将原始样本发送到中心云所会带来的隐私问题,因为本发明出于隐私保护原则,避免将原始数据样本发送到中心云的做法。
综上所述,设计三层两阶段划分方案如下:假设对于一份数据样本,完全由边缘设备执行推理所需要的时间为T1,完全由边缘服务器执行推理所需要的时间为T2,原始数据从设备传输到边缘服务器需要的时间为T3,因此由边缘服务器完整推理所需要的真实时间T=T2+T3。由于边缘服务器的计算资源相对边缘设备较大,边缘网络距离远小于边缘与云的网络距离,因此首先假设T≈T2,即忽略边缘设备到边缘服务器的传输问题,按照边缘服务器的计算能力对模型进行边-云之间的第一次划分,采用最小割模型划分算法。
在第一次划分的基础上,此时边缘侧已经分配了部分模型,包括节点集合Ve。因为此时边缘侧Ve的节点数按照多次实验的经验结果显示会相对较小,这里首先将Ve按照DAG结构拓扑排序。定义:出度大于1的节点为广播节点;入度大于1的节点为聚合节点;而在拓扑序列上,所有广播节点与聚合节点之间的节点为分支节点,所有分支节点的集合为Vx。
当Ve集合节点数小于x(即预设边缘节点总数值),且分支节点小于等于αx,0≤α<1(即预设分支节点总数值)时,这里的x和α是根据实验经验的预设值,定义非分支节点集合V′e=Ve-Vx。设划分点为k且k∈V′e,Ve包括m层节点,其中每层输出数据从设备到边缘服务器的传输时间为在边缘设备执行的时间为/>设备到边缘服务器的网络带宽为B。
则边缘侧执行总时间为:
此时通过穷举法在非分支节点集合V′e中寻找最佳的划分点k。当边缘节点集合Ve中节点数较多或分支节点较多时,即边缘节点集合中节点总数大于等于预设边缘节点总数值,或者分支节点总数超过预设分支节点总数值时,复用最小割模型划分算法对Ve进行第二次划分。Ve集合中各节点在边缘设备中的计算延迟和设备到边缘服务器的传输延迟求法同上文。
这种三层两阶段的划分方案,在原本的一次划分基础上,同时考虑到云-边-端三层,保证了算法的轻量级和高效性。将模型划分的过程分为两个阶段,因此在第二阶段中,可以对多设备扩展,隐私保护等问题进行更好的支持,边缘侧面对网络情况的改变能够独立做出快速响应与改变。
5.对本发明技术效果进行实验验证
对MEC架构下边缘设备、边缘服务器、中心云的计算资源进行如表1所示的配置。其中边缘设备按照特斯拉车载系统配置进行模拟,主频设置为1.6Ghz。
表1实验环境配置
传输网络方面,云边网络带宽设置为1.5Mbps,设备到边缘服务器的网络带宽为5.85Mbps。实验中使用linux TC做简单的流量控制,模拟服务器之间的带宽。
为了评估图压缩算法的优化性能以及协同推理加速算法的性能,选择如表2中的5种常见DNN模型用于对比实验,其中VGG16、MobileNet为链式DNN模型,而Xception、ResNet50、InceptionV3为DAG形式DNN模型。
表2实验测试DNN模型
为了验证DAG优化压缩算法的合理性和有效性,对表2中的5种DNN模型进行DAG构建并进行图压缩处理。压缩前后模型层数变化如表3所示。
表3 DNN模型压缩前后层数对比
在本地环境中模拟相关输入参数,仅测试DNN模型的最小割划分算法的执行时间,优化前后如图6所示,可见随着DNN模型层数的增多,压缩算法可以大大减少模型划分所需要的时间,比如InceptionV3模型,从313层缩小至65层,模型划分的执行时间缩小到仅原本的2.2%左右。对于测试的5种常见DNN模型,图压缩将划分算法的执行时间缩小至1%~15%左右,节省时间10~648ms,且压缩前后模型划分的结果没有变化,说明通过压缩优化方案可以大大减少模型划分时间,尤其对于层数越多的DNN模型,压缩效果越明显。
为了评估优化后的三层两阶段划分算法在不同DNN模型中的表现,将三层划分方案与全边推理、全云推理进行对比实验,以全边推理作为基准线,将延迟时间和系统吞吐量的提升归一化表示。如图7所示,其中左侧为延迟提升,右侧为吞吐量的提升,可见三层划分对比全边推理在测试的5种模型中有1~4.99倍的延迟提升和1~8.7倍的吞吐量提升。
为了进一步评估三层划分推理的优势,将三层划分与链式DNN划分模型、两层DAG划分模型进行对比,对于链式DNN划分模型,将DAG形式DNN模型进行拓扑排序,然后在非分支节点中穷举进行分区点的选择。以链式划分为基准线,实验结果如图8所示,其中左侧为延迟提升,右侧为吞吐量提升,可见三层模型划分对比链式划分最高有2.1倍的延迟提升和3.14倍的吞吐量提升。而相比于两层划分最高也有15%的延迟提升和25%的吞吐量提升。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
本发明所援引的文献如下:
[1]Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[J].arXiv preprint arXiv:1409.1556,2014.
[2]Howard A G,Zhu M,Chen B,et al.Mobilenets:Efficient convolutionalneural networks for mobile vision applications[J].arXiv preprint arXiv:1704.04861,2017.
[3]Chollet F.Xception:Deep learning with depthwise separableconvolutions[C]//Proceedings of the IEEE conference on computer vision andpattern recognition.2017:1251-1258.
[4]He K,Zhang X,Ren S,et al.Deep residual learning for imagerecognition[C]//Proceedings of the IEEE conference on computer vision andpattern recognition.2016:770-778.
[5]Szegedy C,Vanhoucke V,Ioffe S,et al.Rethinking the inceptionarchitecture for computer vision[C]//Proceedings of the IEEE conference oncomputer vision and pattern recognition.2016:2818-2826.
Claims (4)
1.一种面向边缘智能的云边端DNN协同推理加速方法,其特征在于,在由边缘设备、边缘服务器、中心云组成的云边端三层架构中,数据推理由边缘设备或边缘服务器或中心云执行计算,针对推理总延迟最小化,通过下述步骤实现推理加速:
步骤一、基于DNN模型构建其对应的DAG图,利用最大流最小割算法对DNN模型进行边缘服务器-中心云之间的第一次划分,获取云-边分区节点集合;具体步骤包括:
步骤一一、构建的DAG图为:G=<V,E>;其中,V={v1,v2,…vn}表示DNN的n层;v1,vn分别表示输入层和输出层;边(vi,vj)∈E表示vi,vj两层存在前后顺序依赖关系;定义V'e为包含输入层v1、在边缘服务器处理的节点集合,Vc为包含输出层vn、在中心云处理的节点集合,Ve-c为在边缘服务器处理的云-边分区节点集合;则Ve=V'e∪Ve-c为所有在边缘服务器处理的DNN层边缘节点集合;
定义目标函数为:求解云-边分区节点集合Ve-c,使得云-边总延迟T=Te+Tt+Tc最小;其中,Te表示边缘计算延迟,Tc表示中心云计算延迟,Tt表示云-边分区节点集合中所有节点输出数据从边缘服务器传输到中心云的传输延迟;
步骤一二、在DNN模型的DAG图基础上,扩展网络流图,利用最大流最小割算法对网络流图求解,使得分割容量最小的解即为目标函数的解,从而获得使得目标函数最小化的云-边分区节点集合;
步骤二、对在边缘服务器执行推理的DNN层边缘节点集合进行边缘设备-边缘服务器之间的第二次划分,获取边-端分区节点集合;具体步骤包括:
步骤二一、对于在边缘服务器执行推理的DNN层边缘节点集合,定义目标函数为:求解边-端分区节点集合,使得边-端总延迟时间最小;其中,边-端总延迟时间包括设备计算延迟、边缘计算延迟和边-端分区节点集合中所有节点输出数据从边缘设备传输到边缘服务器的传输延迟;
步骤二二、将所有在边缘服务器处理的DNN层即边缘节点集合Ve按照DAG结构拓扑排序;定义出度大于1的节点为广播节点,入度大于1的节点为聚合节点,广播节点与聚合节点之间的节点为分支节点Vx,则非分支节点集合为V'e=Ve-Vx;
步骤二三、当边缘节点集合中节点总数小于预设边缘节点总数值,且分支节点总数小于等于预设分支节点总数值时,通过穷举法在非分支节点集合V'e中寻找最佳划分点;
步骤二四、当边缘节点集合中节点总数大于等于预设边缘节点总数值,或者分支节点总数超过预设分支节点总数值时,利用最大流最小割算法对边缘节点集合Ve进行划分。
2.根据权利要求1所述的一种面向边缘智能的云边端DNN协同推理加速方法,其特征在于,在利用最大流最小割算法划分过程中,利用图压缩减少划分的执行时间,具体过程为:在扩展网络流图之前,首先判断节点是否可以作为当前路径上分割的最后节点,即如果存在节点的输入不大于输出,则可以对DAG图进行预处理压缩;其中,对于出入度不都为1的节点,默认保留;从而在扩展网络流图前合并节点,完成模型整体压缩。
3.根据权利要求2所述的一种面向边缘智能的云边端DNN协同推理加速方法,其特征在于,在利用最大流最小割算法划分过程中,对于DAG图中局部并行单元进行下述处理:在DAG图初始化压缩过程中,匹配当前模式的单元子图,为了最小化连线容量的修改,且不影响其他分割的时间成本计算,选择节点右侧输出连线的容量进行修改。
4.根据权利要求3所述的一种面向边缘智能的云边端DNN协同推理加速方法,其特征在于,节点右侧输出连线的容量的计算公式为:
其中,表示第i层节点输出数据从边缘服务器传输到中心云的传输延迟;/>表示第j层中心云计算延迟;m表示边数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110895523.7A CN113592077B (zh) | 2021-08-05 | 2021-08-05 | 一种面向边缘智能的云边端dnn协同推理加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110895523.7A CN113592077B (zh) | 2021-08-05 | 2021-08-05 | 一种面向边缘智能的云边端dnn协同推理加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113592077A CN113592077A (zh) | 2021-11-02 |
CN113592077B true CN113592077B (zh) | 2024-04-05 |
Family
ID=78255331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110895523.7A Active CN113592077B (zh) | 2021-08-05 | 2021-08-05 | 一种面向边缘智能的云边端dnn协同推理加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113592077B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401063B (zh) * | 2022-01-10 | 2023-10-31 | 中国人民解放军国防科技大学 | 基于轻量化模型的边缘设备协同频谱智能监测方法和系统 |
CN116894469B (zh) * | 2023-09-11 | 2023-12-15 | 西南林业大学 | 端边云计算环境中的dnn协同推理加速方法、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585916A (zh) * | 2019-12-26 | 2020-08-25 | 国网辽宁省电力有限公司电力科学研究院 | 基于云边协同的lte电力无线专网任务卸载和资源分配方法 |
CN111741054A (zh) * | 2020-04-24 | 2020-10-02 | 浙江工业大学 | 一种移动用户深度神经网络计算卸载时延最小化方法 |
CN112990018A (zh) * | 2021-03-18 | 2021-06-18 | 江苏边智科技有限公司 | 一种动态变化网络环境下深度学习模型的加速执行方法 |
-
2021
- 2021-08-05 CN CN202110895523.7A patent/CN113592077B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585916A (zh) * | 2019-12-26 | 2020-08-25 | 国网辽宁省电力有限公司电力科学研究院 | 基于云边协同的lte电力无线专网任务卸载和资源分配方法 |
CN111741054A (zh) * | 2020-04-24 | 2020-10-02 | 浙江工业大学 | 一种移动用户深度神经网络计算卸载时延最小化方法 |
CN112990018A (zh) * | 2021-03-18 | 2021-06-18 | 江苏边智科技有限公司 | 一种动态变化网络环境下深度学习模型的加速执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113592077A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920280B (zh) | 一种单用户场景下的移动边缘计算任务卸载方法 | |
CN113592077B (zh) | 一种面向边缘智能的云边端dnn协同推理加速方法 | |
CN110366193B (zh) | 一种智能电网的网络编排层承载的切片部署方法及装置 | |
Liu et al. | Synchronization of dynamical networks by network control | |
CN112784362A (zh) | 一种用于无人机辅助边缘计算的混合优化方法及系统 | |
CN109819032B (zh) | 一种联合考虑基站选择与计算迁移的云机器人任务分配方法 | |
CN111224905B (zh) | 一种大规模物联网中基于卷积残差网络的多用户检测方法 | |
Yang et al. | Deep reinforcement learning based wireless network optimization: A comparative study | |
CN112788605A (zh) | 基于双延迟深度确定性策略边缘计算资源调度方法和系统 | |
CN111404815B (zh) | 一种基于深度学习的有约束路由选择方法 | |
CN107528731B (zh) | 应用于ns3并行仿真的网络分割优化算法 | |
Liu et al. | Multi-agent federated reinforcement learning strategy for mobile virtual reality delivery networks | |
Chae et al. | Multicast Tree Generation using Meta Reinforcement Learning in SDN-based Smart Network Platforms. | |
Henna et al. | Distributed and collaborative high-speed inference deep learning for mobile edge with topological dependencies | |
Benmammar et al. | A pareto optimal multi-objective optimisation for parallel dynamic programming algorithm applied in cognitive radio ad hoc networks | |
Li et al. | Model-distributed inference in multi-source edge networks | |
CN116663644A (zh) | 一种多压缩版本的云边端dnn协同推理加速方法 | |
Kurma et al. | RIS-empowered MEC for URLLC systems with digital-twin-driven architecture | |
Chen et al. | Accelerating dnn inference by edge-cloud collaboration | |
Gamal et al. | Mapping and scheduling for non-uniform arrival of virtual network function (VNF) requests | |
Lu et al. | Resource-efficient distributed deep neural networks empowered by intelligent software-defined networking | |
Huang et al. | A generic intelligent routing method using deep reinforcement learning with graph neural networks | |
CN112685176A (zh) | 一种改进ddnn的资源受限边缘计算方法 | |
Han et al. | Parallel network slicing for multi-sp services | |
Brown et al. | Characterizing Distributed Inferencing at the Edge in Resource-Constrained Environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |