CN112862083B - 一种边缘环境下的深度神经网络推断方法及装置 - Google Patents
一种边缘环境下的深度神经网络推断方法及装置 Download PDFInfo
- Publication number
- CN112862083B CN112862083B CN202110366585.9A CN202110366585A CN112862083B CN 112862083 B CN112862083 B CN 112862083B CN 202110366585 A CN202110366585 A CN 202110366585A CN 112862083 B CN112862083 B CN 112862083B
- Authority
- CN
- China
- Prior art keywords
- edge
- time
- layer
- equipment
- dnn
- 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 45
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims abstract description 75
- 230000011218 segmentation Effects 0.000 claims abstract description 18
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 17
- 238000009826 distribution Methods 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000167686 Reichardia Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 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/08—Learning methods
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种边缘环境下的深度神经网络推断方法及装置,将边缘计算和DNN推断的过程结合起来,在边缘内实现DNN推断的加速,使得DNN推断过程能够更加贴合边缘计算环境的特点。所述方法结合边缘环境自适应地对DAG拓扑结构的DNN进行分割,为了实现自适应的过程,该方法分别针对计算设备同构和异构的不同情况,并采用贪心的思想根据当前边缘环境对DNN进行分割。本发明对DNN进行的分割能够根据边缘环境自适应地调整分割策略,有效地解决单个边缘设备计算能力较弱的问题,加快边缘环境下DNN推断的速度,提高用户体验。
Description
技术领域
本发明涉及边缘计算领域,具体是一种在边缘计算网络环境下根据DNN拓扑结构、边缘设备计算能力、网络带宽等自适应地调整DNN分割策略以降低总的推断时延的方法及装置。
背景技术
深度学习(Deep Learning)作为人工智能(Artificial Intelligence,AI)领域的重要部分,这些年来取得了许多令人瞩目的成就,例如众所周知的AlphaGo,就是深度学习在围棋领域取得的成就;此外,在计算机视觉、语音识别等许多别的方面,深度学习也表现亮眼。
大数据的发展对于AI的发展有很大的推动作用,因为许多AI领域方法都需要有大量数据支撑,例如深度神经网络(Deep Neural Network,DNN),需要海量数据作为它的训练集,才能保证模型的泛用性。随着DNN的不断发展,DNN的拓扑结构也变得越来越丰富。这些DNN中有一部分是链状拓扑结构,例如NiN、tiny YOlOv2和VGG16,另外有一些部分则是有向无环图(Directed Acyclic Graph,DAG)结构,例如AlexNet、ResNet-18、谷歌提出的Inception系列等。
目前,由于智能手机等多种终端设备的发展推广,终端设备会产生海量的数据。在过去,由于边缘设备能力受限,一般是将边缘设备产生的数据发送到计算能力强大的云数据中心进行分析,但是,将大量数据通过广域网(Wide Area Network,WAN)传输,不仅开销高、延迟大,而且会有隐私泄露的风险;另外,产生在边缘的数据越来越多,未来网络流量很可能支撑不住如此海量数据的运输,因此,使用边缘计算(Edge Computing)在边缘对数据进行处理,是很有必要的。
边缘智能(Edge Intelligence,EI)作为AI和边缘计算的结合体应运而生,它的一个显著特征是边缘中的一组设备往往通过高带宽的局域网(Local AreaNetwork,LAN)相联,这意味着数据不再需要经过开销高、延迟大且隐私泄露风险大的广域网,而只要经过开销小、延迟小且隐私泄露风险小的局域网即可。
DNN推断由于其计算密集性,对于计算能力不强的单个边缘设备来说,完成一次推断带来的时间延迟可能是不可接受的,而边缘计算可以充分利用边缘中的所有设备,将计算负载分配到不同的边缘设备上,将繁重的计算任务并行化,减少总的推断时延,DNN分割就是使用了这一策略。对于相同的数据,在不同的机器上进行同样的计算,得到的结果是一样的,因此,只要能够传输中间数据,就能将DNN进行分割,并部署在不同的机器上进行运算,以加快计算速度。
对于链状拓扑结构的DNN,由于其结构的单调性,在其拓扑结构的图表示中,除了输入层节点只有一条出边,输出层节点只有一条入边之外,所有的中间层都有且仅有两条关联边,其中一条是入边,另一条是出边。链状拓扑结构的DNN对于每层的计算顺序要求严格,难以在它们的结构层面进行并行化的处理,因此对于链状拓扑结构的DNN推断进行加速,往往是在计算能力有限的边缘终端设备和计算能力强大的云端数据中心之间横向进行切割,将分割后的部分分别放在边缘和云端运行。
而对于DAG拓扑结构的DNN来说,除了输入层节点和输出层节点的中间节点中,每个节点都可能会具有多条出边和多条入边。一个节点具有多条出边意味着这个节点的输出会被多次作为原始数据进行不同的计算,而一个节点具有多条入边意味着这个节点的输入是多个数据的拼接。对于DAG拓扑结构的DNN来说,在其结构层面可以通过并行化来进行优化,在合理的任务分配调度下,即使只有少量性能相似的边缘设备,也存在DNN推断加速的可能。然而现有技术中尚未见到相关方案的提出。
发明内容
发明目的:针对现有技术的空白,本发明提出了一种边缘计算网络环境下自适应地分割DNN的方法,可以有效降低整个DNN推断耗时,提高任务从提交到返回结果的响应速度,降低用户等待时间,提高用户体验。
本发明的另一目的是提供一种边缘环境下的DNN推断装置。
技术方案:根据本发明的第一方面,提供一种边缘环境下的DNN推断方法,包括以下步骤:
(1)基于DNN的拓扑结构获得各个计算层、各个计算层的分支信息、各个计算层输入数据的尺寸,并基于一遍DNN推断过程获得各个计算层的每个分支的计算时间;
(2)获取环境配置信息,包括参与推断的边缘设备数量以及边缘设备之间的网络带宽;
(3)根据计算层输入数据的尺寸、参与推断的边缘设备数量、边缘设备之间的网络带宽以及每个分支的计算时间,预测分配到每个边缘设备上的分支的总消耗时间;
(4)对计算层的多个分支,按分支的计算时间由大到小的顺序对分支逐个处理,将分支分配到目前总消耗时间的预测值最小的边缘设备上去,并更新每个边缘设备上所分配到的分支标号以及总消耗时间的预测值;
(5)对所有计算层执行步骤(3)-步骤(4)的操作,完成DNN在边缘设备上的分割与推断。
其中,所述步骤(3)包括:
(3-1)根据计算层输入数据的尺寸以及参与推断的边缘设备数量num,基于下式得到第i层需要传输的中间数据:Dtrans=di+di+1/num,其中di为第i层输入数据尺寸,di+1为第i+1层输入数据尺寸;
(3-2)根据第i层需要传输的中间数据Dtrans以及边缘设备之间的网络带宽W,基于下式得到中间数据在网络中的传输时间:T1=Dtrans/W;
(3-3)将所有边缘设备划分为一个主持设备和若干个协助设备,主持设备编号为0,协助设备编号从1依次递增,其中主持设备负责DNN的分割,并把分割后的任务分发给协助设备,协助设备负责执行分发给自身的任务并返回结果至主持设备;
(3-4)对于主持设备,记第i层分配到主持设备上的分支集合为Si0,Si0中所有分支对应的计算时间之和记为Tci0,则第i层在主持设备上总的消耗时间Tai0的预测值为:Tai0=Tci0;
(3-5)对于协助设备,记第i层分配到协助设备j上的分支集合为Sij,则Sij中所有分支对应的计算时间之和记为Tcij,根据下式得到第i层在协助设备j上总的消耗时间Taij的预测值:Taij=Tcij+T1。
其中,所述步骤(3-3)中将所有边缘设备划分为一个主持设备和若干个协助设备包括:
在所有边缘设备计算能力均相同的情况下,选择提交任务的边缘设备作为主持设备,其他边缘设备为协助设备;
在所有边缘设备计算能力有所不同的情况下,首先找出计算能力最强的边缘设备,确定其运行整个DNN模型的最短消耗时间,然后求取当前边缘设备运行DNN的时间与该最短消耗时间的差值,当该差值大于第一层输入数据在网络中的传输时间时,则将这台当前边缘设备作为主持设备。
其中,所述步骤(4)还包括:进行特殊条件判断,在所有边缘设备计算能力相同时,假如将当前分支分配给目前预测消耗时间第二长的边缘设备之后,该设备还没有变成预测消耗时间最长的边缘设备,就将该分支分配到目前预测消耗时间第二长的边缘设备上去。
根据本发明的第二方面,提供一种边缘环境下的DNN推断装置,包括:
第一信息获取模块,用于基于DNN的拓扑结构获得各个计算层、各个计算层的分支信息、各个计算层输入数据的尺寸,并基于一遍DNN推断过程获得各个计算层的每个分支的计算时间;
第二信息获取模块,用于获取环境配置信息,包括参与推断的边缘设备数量以及边缘设备之间的网络带宽;
耗时预测模块,用于根据计算层输入数据的尺寸、参与推断的边缘设备数量、边缘设备之间的网络带宽以及每个分支的计算时间,预测分配到每个边缘设备上的分支的总消耗时间;
分支分配模块,用于对计算层的多个分支,按分支的计算时间由大到小的顺序对分支逐个处理,将分支分配到目前总消耗时间预测值最小的边缘设备上去,并更新每个边缘设备上所分配到的分支标号以及总消耗时间的预测值;
层遍历模块,用于对所有计算层遍历执行耗时预测模块和分支分配模块的操作,完成DNN在边缘设备上的分割与推断。
其中,所述耗时预测模块包括:
中间数据计算单元,用于根据计算层输入数据的尺寸以及参与推断的边缘设备数量num,基于下式得到第i层需要传输的中间数据:Dtrans=di+di+1/num,其中di为第i层输入数据尺寸,di+1为第i+1层输入数据尺寸;
传输时间计算单元,用于根据第i层需要传输的中间数据Dtrans以及边缘设备之间的网络带宽W,基于下式得到中间数据在网络中的传输时间:T1=Dtrans/W;
设备类型确定单元,用于将所有边缘设备划分为一个主持设备和若干个协助设备,主持设备编号为0,协助设备编号从1依次递增,其中主持设备负责DNN的分割,并把分割后的任务分发给协助设备,协助设备负责执行分发给自身的任务并返回结果至主持设备;
第一耗时预测单元,用于对主持设备的总耗时进行预测,记第i层分配到主持设备上的分支集合为Si0,Si0中所有分支对应的计算时间之和记为Tci0,则第i层在主持设备上总的消耗时间Tai0的预测值为:Tai0=Tci0;
第二耗时预测单元,用于对协助设备的总耗时进行预测,记第i层分配到协助设备j上的分支集合为Sij,则Sij中所有分支对应的计算时间之和记为Tcij,根据下式得到第i层在协助设备j上总的消耗时间Taij的预测值:Taij=Tcij+T1。
根据本发明的第三方面,提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现第一方面所述方法的各步骤。
有益效果:本发明主要是关于如何将DAG拓扑结构的DNN完全在边缘环境内,也就是说,在所有可用的计算设备计算能力与运行该DNN的主机都相似,且仅仅拥有比较低的计算能力的情况下,根据计算设备之间的带宽、计算设备的计算能力、可用的协助计算设备的数量以及DNN本身的拓扑结构这些因素,自适应地分割DNN,并相应地将计算任务分发出去,使得多台机器共同进行一次DNN推断计算,从而降低整个DNN推断耗时。
附图说明
图1是示出本发明在边缘环境内进行DNN分割的场景的示意图;
图2是示出本发明DNN拓扑中多个层的概念的示意图;
图3是示出本发明边缘环境下DNN推断方法的流程图;
图4是示出本发明进行DNN分割的实例示意图。
具体实施方式
下面参照附图对本发明的技术方案做进一步的说明。
本发明是边缘计算网络环境下对DNN进行自适应分割以加速推断的解决方案,特别适用于边缘网络中用户设备、终端设备、用户终端等计算能力较弱的边缘设备。为了描述的便利,下文中“边缘设备”有时也称为“设备”。图2示出了在边缘环境内进行DNN分割的具体场景,如图2所示,假设有若干台边缘设备,每台边缘设备的计算能力对比云计算中心来说都很弱,但是它们之间以高速内联网相联,通信开销比较小。
目前已有的DNN有些具有DAG拓扑结构,有些层的输出会作为下一层若干个分支的共同输入,而这些分支之间的计算过程并不相干,因此不同分支可以分配给不同的边缘设备并行计算。在本发明的描述中,术语“层”、“计算层”、“需要计算的层”表示相同的含义,指的是DNN拓扑中具有多个(例如,2个及以上)并行分支的一个模块。如图1所示,图中3个虚线框标出了三层,分别是层l-1,l,l+1,层l有3个分支,它们的输入是一样的,都是层l-1的输出;层l的3个分支的输出将被拼接起来,作为层l+1的输入。简单来说,本发明将输入一样、输出相关的分支构成的模块,看作一层。在图2所示的场景中,每个圈表示DNN网络中传统意义上的一层,例如一个卷积层,一个全连接层;而本发明意义中的一层则是由图2中所有圈构成的更加宏观级别上的一个部分,是将有并行分支的模块看作一层。除非另外明确地指出,否则本文描述中涉及的“层”均是指这个含义。如图2中所示,虚线框出的三个部分就是同一层中的三个分支,这三个分支的输入完全相同。这三个分支对相同的数据进行了不同的处理,最后将分别得到的结果进行汇总,作为下一层的输入。本发明的目的就是将这些分支合理地分配到不同的边缘设备上去,以达到最大的加速效果。
参照图3,在一个实施例中,一种边缘环境下的DNN推断方法,包括以下步骤:
(1)基于DNN的拓扑结构获得各个计算层、各个计算层的分支信息、各个计算层输入数据的尺寸,并基于一遍DNN推断过程获得各个计算层的每个分支的计算时间。
对于一个假设有n层的DNN,将组成它的各个计算层的集合表示为L={l0,l1,l2... ln-1},其中l0代表第一个需要计算的层,ln-1代表最后一个需要计算的层。对于其中的任意一层li,还需要该层的分支信息。设Br={B0,B1,B2 ... Bn-1}记录了各层的分支信息,其中B0对应l0的分支信息,B1对应l1的分支信息,以此类推。假如li具有x个分支,那么Bi={b0,b1 ... bx-1}。另外,还将每一层的每个分支的计算时间表示为T={T0,T1 ... Tn-1},其中T0对应l0的分支时间计算信息,T1对应l1的分支时间计算信息,以此类推,假如li具有x个分支,那么Ti={t0,t1 ... tx-1}。
此外,设各个层的输入数据的尺寸D={d0,d1 ... dn-1},这关系到在进行DNN分割时数据传输需要的时间,对于整个推断的过程影响很大。
由于固定的DNN其拓扑结构是固定的,因此可以根据事先确定的DNN的拓扑结构获得所需要的L,Br和D。关于时间信息T,对于一个DNN,输入数据的尺寸往往是固定的,中间的计算量以及中间数据的大小也是固定的,因此只要运行一遍DNN推断过程,中途将需要的时间信息记录下来,就能够获得T信息。
(2)获取环境配置信息,包括参与推断的边缘设备数量以及边缘设备之间的网络带宽。
在进行DNN推断的过程中,有一个主持DNN推断的设备(下文称为主持设备),负责DNN的分割,并把分割后的任务分发给协助设备,最后对协助设备送回的结果进行整理,协助设备是除了主持设备之外的其他设备,在此,将协助设备和主持设备的总个数记为num,协助设备数目为num-1,设备之间的网络带宽记为W,这些是环境配置信息。
其中,边缘设备个数num可以通过配置文件获得,网络带宽W可以通过实时测试获得。
(3)根据计算层输入数据的尺寸、参与推断的边缘设备数量、边缘设备之间的网络带宽以及每个分支的计算时间,预测分配到每个边缘设备上的分支的总消耗时间。
在分布式进行DNN推断的时候,时延有两种:数据传输时延和DNN计算时延,DNN分割的目的是最小化这两种时延之和,使总时延最小。其中,数据传输时延是指中间数据在网络中传输需要消耗的时间,DNN计算时延是每台边缘设备完成自已的计算任务需要消耗的时间。
总体而言,本发明的目的是在边缘环境内对DAG拓扑结构的DNN进行分割,将同一层的不同分支分配到计算能力相同的不同设备中,使得该层总的消耗时间较之先前有效减少,本质上是一个负载均衡问题。在进行分割后,该层总的消耗时间取决于最慢得到结果的设备,因此要使得整体运行时间最短,就要将任务尽可能均匀地分配出去,让不同设备的消耗时间尽可能相近。
对于在主持DNN推断的设备上进行计算的分支,预测消耗时间是分配在该设备的分支的计算时间之和;对于在辅助设备上进行计算的分支,预测消耗时间为分配在该设备上的分支的计算时间之和加上中间数据传输的时间。
具体步骤如下:
(3-1)根据计算层输入数据的尺寸以及参与推断的边缘设备数量num,计算第i层需要传输的中间数据:
其中di代表该层输入数据的大小,是一个准确值;而代表一个参与计算的辅助设备返回的计算结果的大小,是一个预估的近似值。因为di+1是第i+1层的输入大小,也就是第i层的输出大小,因此把/>作为一个设备返回结果数据大小的近似。
(3-2)根据第i层需要传输的中间数据Dtrans以及边缘设备之间的网络带宽W,得到中间数据在网络中的传输时间:
(3-3)假设主持DNN推断的设备编号为0,协助设备编号从1依次递增,对于主持设备,记第i层分配到主持设备上的分支集合为Si0,Si0中所有分支对应的计算时间之和记为Tci0,则第i层在主持设备上总的消耗时间Tai0的预测值为:Tai0=Tci0;
对于协助设备,记第i层分配到协助设备j上的分支集合为y表示共有y个分支分配到该设备上,是经分配后才能确定的,则Sij中所有分支对应的计算时间之和设为Tcij。则第i层在协助设备j上总的消耗时间Taij的预测值:
Taij=Tcij+T1
因此,对于第i层,需要确定Sij(0≤j≤num-1),使得Taij(0≤j≤num-1)之间尽可能相等,这是一个负载均衡问题,需要对这个问题进行求解。
(4)对步骤(3)中建立的问题进行求解。总体而言,按分支的计算时间由大到小的顺序对分支逐个处理,将分支分配到目前总消耗时间预测值最小的边缘设备上去。
具体而言,在所有边缘设备计算能力均相同的情况下,本发明提出算法1求解,步骤包括:
A.对于DNN中的每一层,都要进行分支划分的判断,对DNN所有层进行遍历,执行下面的步骤;
B.初始化每个设备上被分配到的分支标号,始化分支标号都为空,并初始化该设备的总的消耗时间的预测,其中设备0(主持DNN推断的设备,通常选取提交任务的设备)的初始预测时间是0,因为没有传输数据的开销,而辅助设备由于还有数据传输的开销,所以初始预测时间是数据传输时间;
C.对特殊情况进行判断,假如该层只有一个分支,就不需要进行划分;
D.对拥有多个分支的层进行划分,按照分支消耗时间由大到小的顺序对分支逐个处理,将该分支分配到目前总的预测消耗时间最短的设备上去,并更新相应的每个设备上被分配到的分支标号以及该设备的总的消耗时间的预测值;
在步骤D的过程中,进行特殊条件判断,假如将当前分支分配给目前预测消耗时间第二长的设备之后,该设备还没有变成预测消耗时间最长的设备,就将该分支分配到目前预测消耗时间第二长的设备上去。加这一个判断条件是为了避免下面这种情况:引入了新的设备进行辅助,但对总的消耗时间减少没有帮助。
而在所有边缘设备计算能力有所不同的情况下,本发明提出算法2求解,步骤包括:
A.确定主持DNN推断的设备,首先找出运行整个DNN模型消耗时间最短,也即计算能力最强的设备,将当前设备运行整个DNN的时间和这个最短的消耗时间求差,假如差大于第一层的输入数据在网络中传输需要的时间(即输入大小/W),就转移到这台设备上去;
B.对于DNN中的每一层,都要进行分支划分的判断,对DNN所有层进行遍历,执行下面的步骤;
C.初始化每个设备上被分配到的分支标号以及该设备的总的消耗时间的预测,其中始化分支标号都为空,设备0(主持DNN推断的设备)的初始预测时间是0,因为没有传输数据的开销,而辅助设备由于还有数据传输的开销,所以初始预测时间是数据传输时间;
D.对特殊情况进行判断,假如该层只有一个分支,就不需要进行划分;
E.对拥有多个分支的层进行划分,分支按照耗时从大到小的顺序进行处理,选择加入该分支后总的消耗时间最短的设备作为该分支的分配对象,并更新相应的每个设备上被分配到的分支标号以及该设备的总的消耗时间的预测值。
以图4为例,假设当前要处理的层有4个分支,它们的处理时间与所在框的长度正相关,可以看出分支3>分支0>分支2>分支1。边缘环境中有三台边缘设备,分别是设备0、设备1和设备2,其中设备0是主持设备,DNN推断的总流程在这台设备上进行,其它设备进行辅助。假设它们的计算能力相同,因此按照提出的算法1进行分割。起初,如图4左半部分所示,设备0的总耗时初始化为0,其余设备的总耗时初始化为按照分支耗时从大到小的顺序处理,寻找当前总耗时最小的设备。因此先处理分支3,将其分配到设备0上;然后处理分支0,将其分配到设备1上;然后处理分支2,将其分配到设备2上;最后将分支1分配到设备0上,得到图4右图所示效果。可以看到,设备之间的负载比较接近,能达到一定的负载均衡效果。在算法1的情况下,各设备对于每个分支运算所需时间都是一样的,因此只需要保存一份分支-运算时间记录。
在设备计算能力不同的情况下,各设备对于每个分支运算所需时间也就不同,例如同一分支,在设备0上运算所需时间为20时间单位,在设备1上运算所需时间可能就需要40时间单位,按照算法2的流程进行分配,此时主持设备拥有每台设备对于每个分支的处理时间情况,分配时主持设备应当根据每个设备具体的计算能力,将分支分配到添加这个分支后总消耗时间最小的设备上去,其余部分都与算法1类似。
DNN分割是使得边缘智能更加实用的一个有效方法,它将计算密集的DNN推断任务分割,分配到不同的设备上运算,实现计算的并行化,达到加速的目的。以前的DNN分割相关研究主要关注如何在边缘和云之间进行DNN分割,或者将输入在最开始进行分割。与先前的研究不同,本发明根据DNN独特的拓扑结构进行DNN分割,并提出了相应的算法,它能够根据边缘环境自适应地调整分割策略。本发明可以有效地降低DNN推断在边缘的时延,提高用户体验。
根据本发明的另一实施例,提供一种边缘环境下的DNN推断装置,包括:
第一信息获取模块,用于基于DNN的拓扑结构获得各个计算层、各个计算层的分支信息、各个计算层输入数据的尺寸,并基于一遍DNN推断过程获得各个计算层的每个分支的计算时间;
第二信息获取模块,用于获取环境配置信息,包括参与推断的边缘设备数量以及边缘设备之间的网络带宽;
耗时预测模块,用于根据计算层输入数据的尺寸、参与推断的边缘设备数量、边缘设备之间的网络带宽以及每个分支的计算时间,预测分配到每个边缘设备上的分支的总消耗时间;
分支分配模块,用于对计算层的多个分支,按分支的计算时间由大到小的顺序对分支逐个处理,将分支分配到目前总消耗时间预测值最小的边缘设备上去,并更新每个边缘设备上所分配到的分支标号以及总消耗时间的预测值;
层遍历模块,用于对所有计算层遍历执行耗时预测模块和分支分配模块的操作,完成DNN在边缘设备上的分割与推断。
其中,第一信息获取模块对于一个假设有n层的DNN,将组成它的各个计算层的集合表示为L={l0,l1,l2 ... ln-1},其中l0代表第一个需要计算的层,ln-1代表最后一个需要计算的层;对于其中的任意一层li,假如li具有x个分支,该层的分支信息表示为Bi={b0,b1... bx-1},则各层的分支信息记录为Br={B0,B1,B2 ... Bn-1},其中B0对应l0的分支信息,B1对应l1的分支信息,以此类推。另外,还将每一层的每个分支的计算时间表示为T={T0,T1... Tn-1},其中T0对应l0的分支时间计算信息,T1对应l1的分支时间计算信息,以此类推,假如li具有x个分支,那么Ti={t0,t1 ... tx-1}。此外,将各个层的输入数据的尺寸记为D={d0,d1 ... dn-1}。
其中,第二信息获取模块通过配置文件获得边缘设备个数num,通过实时测试获得边缘设备之间的网络带宽W。
其中,耗时预测模块包括:
中间数据计算单元,用于根据计算层输入数据的尺寸以及参与推断的边缘设备数量num,基于下式得到第i层需要传输的中间数据:Dtrans=di+di+1/num,其中di为第i层输入数据尺寸,di+1为第i+1层输入数据尺寸;
传输时间计算单元,用于根据第i层需要传输的中间数据Dtrans以及边缘设备之间的网络带宽W,基于下式得到中间数据在网络中的传输时间:T1=Dtrans/W;
设备类型确定单元,用于将所有边缘设备划分为一个主持设备和若干个协助设备,主持设备编号为0,协助设备编号从1依次递增,其中主持设备负责DNN的分割,并把分割后的任务分发给协助设备,协助设备负责执行分发给自身的任务并返回结果至主持设备;
第一耗时预测单元,用于对主持设备的总耗时进行预测,记第i层分配到主持设备上的分支集合为Si0,Si0中所有分支对应的计算时间之和记为Tci0,则第i层在主持设备上总的消耗时间Tai0的预测值为:Tai0=Tci0;
第二耗时预测单元,用于对协助设备的总耗时进行预测,记第i层分配到协助设备j上的分支集合为Sij,则Sij中所有分支对应的计算时间之和记为Tcij,根据下式得到第i层在协助设备j上总的消耗时间Taij的预测值:Taij=Tcij+T1。
其中,设备类型确定单元包括:
第一确定单元,用于在所有边缘设备计算能力均相同的情况下,选择提交任务的边缘设备作为主持设备,其他边缘设备为协助设备;
第二确定单元,用于在所有边缘设备计算能力有所不同的情况下,首先找出计算能力最强的边缘设备,确定其运行整个DNN模型的最短消耗时间,然后求取当前边缘设备运行DNN的时间与该最短消耗时间的差值,当该差值大于第一层输入在网络中的传输时间时,则将这台当前边缘设备作为主持设备。
其中,分支分配模块还用于:进行特殊条件判断,在所有设备计算能力相同时,假如将当前分支分配给目前预测消耗时间第二长的设备之后,该设备还没有变成预测消耗时间最长的设备,就将该分支分配到目前预测消耗时间第二长的设备上去。
应当理解,本实施例中提出的边缘环境下的DNN推断装置可以实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其中耗时预测模块实际上建立针对一个层的负载均衡的问题,分支分配模块则是对该问题的求解,层遍历模块则是对所有层的遍历完成问题求解,在本实施例中没有描述的具体实现过程可参照上述实施例中的相关描述。
根据本发明的另一实施例,提供一种计算机设备,所述设备包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现方法实施例中的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (7)
1.一种边缘环境下的深度神经网络推断方法,其特征在于,所述方法包括以下步骤:
(1)基于深度神经网络DNN的拓扑结构获得各个计算层、各个计算层的分支信息、各个计算层输入数据的尺寸,并基于一遍DNN推断过程获得各个计算层的每个分支的计算时间;
(2)获取环境配置信息,包括参与推断的边缘设备数量以及边缘设备之间的网络带宽;
(3)根据计算层输入数据的尺寸、参与推断的边缘设备数量、边缘设备之间的网络带宽以及每个分支的计算时间,预测分配到每个边缘设备上的分支的总消耗时间,具体包括:
(3-1)根据计算层输入数据的尺寸以及参与推断的边缘设备数量num,基于下式得到第i层需要传输的中间数据:Dtrans=di+di+1/num,其中di为第i层输入数据尺寸,di+1为第i+1层输入数据尺寸;
(3-2)根据第i层需要传输的中间数据Dtrans以及边缘设备之间的网络带宽W,基于下式得到中间数据在网络中的传输时间:T1=Dtrans/W;
(3-3)将所有边缘设备划分为一个主持设备和若干个协助设备,主持设备编号为0,协助设备编号从1依次递增,其中主持设备负责DNN的分割,并把分割后的任务分发给协助设备,协助设备负责执行分发给自身的任务并返回结果至主持设备;
(3-4)对于主持设备,记第i层分配到主持设备上的分支集合为Si0,Si0中所有分支对应的计算时间之和记为Tci0,则第i层在主持设备上总的消耗时间Tai0的预测值为:Tai0=Tci0;
(3-5)对于协助设备,记第i层分配到协助设备j上的分支集合为Sij,则Sij中所有分支对应的计算时间之和记为Tcij,根据下式得到第i层在协助设备j上总的消耗时间Taij的预测值:Taij=Tcij+T1;
(4)对计算层的多个分支,按分支的计算时间由大到小的顺序对分支逐个处理,将分支分配到目前总消耗时间的预测值最小的边缘设备上去,并更新每个边缘设备上所分配到的分支标号以及总消耗时间的预测值;
(5)对所有计算层执行步骤(3)-步骤(4)的操作,完成DNN在边缘设备上的分割与推断。
2.根据权利要求1所述的边缘环境下的深度神经网络推断方法,其特征在于,所述步骤(3-3)中将所有边缘设备划分为一个主持设备和若干个协助设备包括:
在所有边缘设备计算能力均相同的情况下,选择提交任务的边缘设备作为主持设备,其他边缘设备为协助设备;
在所有边缘设备计算能力有所不同的情况下,首先找出计算能力最强的边缘设备,确定其运行整个DNN模型的最短消耗时间,然后求取当前边缘设备运行DNN的时间与该最短消耗时间的差值,当该差值大于第一层输入在网络中的传输时间时,则将这台当前边缘设备作为主持设备。
3.根据权利要求1所述的边缘环境下的深度神经网络推断方法,其特征在于,所述步骤(4)还包括:进行特殊条件判断,在所有边缘设备计算能力相同时,假如将当前分支分配给目前预测消耗时间第二长的边缘设备之后,该边缘设备还没有变成预测消耗时间最长的边缘设备,就将该分支分配到目前预测消耗时间第二长的边缘设备上去。
4.一种边缘环境下的深度神经网络推断装置,其特征在于,所述装置包括:
第一信息获取模块,用于基于深度神网络DNN的拓扑结构获得各个计算层、各个计算层的分支信息、各个计算层输入数据的尺寸,并基于一遍DNN推断过程获得各个计算层的每个分支的计算时间;
第二信息获取模块,用于获取环境配置信息,包括参与推断的边缘设备数量以及边缘设备之间的网络带宽;
耗时预测模块,用于根据计算层输入数据的尺寸、参与推断的边缘设备数量、边缘设备之间的网络带宽以及每个分支的计算时间,预测分配到每个边缘设备上的分支的总消耗时间;
分支分配模块,用于对计算层的多个分支,按分支的计算时间由大到小的顺序对分支逐个处理,将分支分配到目前总消耗时间预测值最小的边缘设备上去,并更新每个边缘设备上所分配到的分支标号以及总消耗时间的预测值;
层遍历模块,用于对所有计算层遍历执行耗时预测模块和分支分配模块的操作,完成DNN在边缘设备上的分割与推断;
其中,所述耗时预测模块包括:
中间数据计算单元,用于根据计算层输入数据的尺寸以及参与推断的边缘设备数量num,基于下式得到第i层需要传输的中间数据:Dtrans=di+di+1/num,其中di为第i层输入数据尺寸,di+1为第i+1层输入数据尺寸;
传输时间计算单元,用于根据第i层需要传输的中间数据Dtrans以及边缘设备之间的网络带宽W,基于下式得到中间数据在网络中的传输时间:T1=Dtrans/W;
设备类型确定单元,用于将所有边缘设备划分为一个主持设备和若干个协助设备,主持设备编号为0,协助设备编号从1依次递增,其中主持设备负责DNN的分割,并把分割后的任务分发给协助设备,协助设备负责执行分发给自身的任务并返回结果至主持设备;
第一耗时预测单元,用于对主持设备的总耗时进行预测,记第i层分配到主持设备上的分支集合为Si0,Si0中所有分支对应的计算时间之和记为Tci0,则第i层在主持设备上总的消耗时间Tai0的预测值为:Tai0=Tci0;
第二耗时预测单元,用于对协助设备的总耗时进行预测,记第i层分配到协助设备j上的分支集合为Sij,则Sij中所有分支对应的计算时间之和记为Tcij,根据下式得到第i层在协助设备j上总的消耗时间Taij的预测值:Taij=Tcij+T1。
5.根据权利要求4所述的边缘环境下的深度神经网络推断装置,其特征在于,所述设备类型确定单元包括:
第一确定单元,用于在所有边缘设备计算能力均相同的情况下,选择提交任务的边缘设备作为主持设备,其他边缘设备为协助设备;
第二确定单元,用于在所有边缘设备计算能力有所不同的情况下,首先找出计算能力最强的边缘设备,确定其运行整个DNN模型的最短消耗时间,然后求取当前边缘设备运行DNN的时间与该最短消耗时间的差值,当该差值大于第一层输入在网络中的传输时间时,则将这台当前边缘设备作为主持设备。
6.根据权利要求4所述的边缘环境下的深度神经网络推断装置,其特征在于,所述分支分配模块还用于:进行特殊条件判断,在所有边缘设备计算能力相同时,假如将当前分支分配给目前预测消耗时间第二长的边缘设备之后,该边缘设备还没有变成预测消耗时间最长的边缘设备,就将该分支分配到目前预测消耗时间第二长的边缘设备上去。
7.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如权利要求1-3中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110366585.9A CN112862083B (zh) | 2021-04-06 | 2021-04-06 | 一种边缘环境下的深度神经网络推断方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110366585.9A CN112862083B (zh) | 2021-04-06 | 2021-04-06 | 一种边缘环境下的深度神经网络推断方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112862083A CN112862083A (zh) | 2021-05-28 |
CN112862083B true CN112862083B (zh) | 2024-04-09 |
Family
ID=75992265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110366585.9A Active CN112862083B (zh) | 2021-04-06 | 2021-04-06 | 一种边缘环境下的深度神经网络推断方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112862083B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315669B (zh) * | 2021-07-28 | 2021-10-15 | 江苏电力信息技术有限公司 | 基于云边协同的吞吐量优化的机器学习推断任务部署方法 |
CN116894469B (zh) * | 2023-09-11 | 2023-12-15 | 西南林业大学 | 端边云计算环境中的dnn协同推理加速方法、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347500A (zh) * | 2019-06-18 | 2019-10-18 | 东南大学 | 用于边缘计算环境中面向深度学习应用的任务卸载方法 |
CN110427261A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法 |
CN110553629A (zh) * | 2019-09-20 | 2019-12-10 | 中南大学 | 一种基于边缘计算的无人机目标追踪功耗优化方法及系统 |
CN110914836A (zh) * | 2017-05-09 | 2020-03-24 | 纽拉拉股份有限公司 | 在跨联网计算边缘连续运行应用程序的人工智能和深度学习中实现连续的存储器有界学习的系统和方法 |
CN111405569A (zh) * | 2020-03-19 | 2020-07-10 | 三峡大学 | 基于深度强化学习的计算卸载和资源分配方法及装置 |
CN111522657A (zh) * | 2020-04-14 | 2020-08-11 | 北京航空航天大学 | 一种分散设备协同深度学习推理方法 |
CN111741054A (zh) * | 2020-04-24 | 2020-10-02 | 浙江工业大学 | 一种移动用户深度神经网络计算卸载时延最小化方法 |
CN112148451A (zh) * | 2020-09-27 | 2020-12-29 | 南京大学 | 一种低时延的协同自适应cnn推断系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11096036B2 (en) * | 2019-09-12 | 2021-08-17 | Intel Corporation | Multi-access Edge Computing service for mobile User Equipment method and apparatus |
-
2021
- 2021-04-06 CN CN202110366585.9A patent/CN112862083B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110914836A (zh) * | 2017-05-09 | 2020-03-24 | 纽拉拉股份有限公司 | 在跨联网计算边缘连续运行应用程序的人工智能和深度学习中实现连续的存储器有界学习的系统和方法 |
CN110347500A (zh) * | 2019-06-18 | 2019-10-18 | 东南大学 | 用于边缘计算环境中面向深度学习应用的任务卸载方法 |
CN110427261A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法 |
CN110553629A (zh) * | 2019-09-20 | 2019-12-10 | 中南大学 | 一种基于边缘计算的无人机目标追踪功耗优化方法及系统 |
CN111405569A (zh) * | 2020-03-19 | 2020-07-10 | 三峡大学 | 基于深度强化学习的计算卸载和资源分配方法及装置 |
CN111522657A (zh) * | 2020-04-14 | 2020-08-11 | 北京航空航天大学 | 一种分散设备协同深度学习推理方法 |
CN111741054A (zh) * | 2020-04-24 | 2020-10-02 | 浙江工业大学 | 一种移动用户深度神经网络计算卸载时延最小化方法 |
CN112148451A (zh) * | 2020-09-27 | 2020-12-29 | 南京大学 | 一种低时延的协同自适应cnn推断系统及方法 |
Non-Patent Citations (3)
Title |
---|
LENS:bandwidth-efficient video analytics with adaptive super resolution;minghui shan;computer networks;20221209;第218卷;1-12 * |
边缘计算和深度学习之间的交融;刘志成;韩溢文;沈仕浩;宋金铎;王晓飞;;自动化博览;20200215;第37卷(第02期);54-58 * |
面向边缘人工智能计算的区块链技术综述;方俊杰;雷凯;;应用科学学报;20200130;第38卷(第01期);1-21 * |
Also Published As
Publication number | Publication date |
---|---|
CN112862083A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858009B (zh) | 基于迁移和强化学习的移动边缘计算系统任务调度方法 | |
CN111242282B (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
CN114338504B (zh) | 一种基于网络边缘系统的微服务部署和路由方法 | |
CN109919315B (zh) | 一种神经网络的前向推理方法、装置、设备及存储介质 | |
CN113220457A (zh) | 模型部署方法、模型部署装置、终端设备及可读存储介质 | |
CN112862083B (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
CN112328380A (zh) | 一种基于异构计算的任务调度方法及装置 | |
CN113472597B (zh) | 分布式卷积神经网络细粒度的参数传输调度方法及装置 | |
CN113037800B (zh) | 作业调度方法以及作业调度装置 | |
CN108111335A (zh) | 一种调度和链接虚拟网络功能的方法及系统 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN113708969B (zh) | 一种基于深度强化学习的云数据中心虚拟网络的协同嵌入方法 | |
US20190377606A1 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
Tanaka et al. | Automatic graph partitioning for very large-scale deep learning | |
CN115714820A (zh) | 一种分布式的微服务调度优化方法 | |
CN115994567A (zh) | 一种深度神经网络模型并行计算任务异步调度方法 | |
CN115016938A (zh) | 一种基于强化学习的计算图自动划分方法 | |
Zhu et al. | Double-agent reinforced vNFC deployment in EONs for cloud-edge computing | |
WO2021115082A1 (zh) | 作业调度方法以及作业调度装置 | |
CN110958192B (zh) | 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法 | |
CN117436485A (zh) | 基于权衡时延和精度的多退出点的端-边-云协同系统及方法 | |
CN117331693A (zh) | 基于dag的边缘云的任务卸载方法、装置及设备 | |
Ghasemi et al. | Energy-efficient mapping for a network of dnn models at the edge | |
CN112213956A (zh) | 一种自动驾驶仿真任务调度方法、装置、设备及可读介质 |
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 |