MEC中DNN节能增量卸载

部署运行你感兴趣的模型镜像

移动边缘计算中神经网络计算的节能增量卸载

摘要

深度神经网络(DNN)在计算机视觉和增强现实中表现出显著的成功。然而,电池供电设备仍难以运行最先进的 DNN。移动边缘计算(MEC)是一种在能量受限的移动设备上运行DNN的有前景的方法。它按需将设备的DNN模型分片上传至最近的边缘服务器,然后将DNN计算卸载到服务器,以节省设备能耗。然而,现有的一次性方法面临两大挑战:其一是如何在不同的无线网络带宽下找到最节能高效的模型划分方案;其二是如何减少设备等待服务器时的时间和能量开销,因为上传最优划分的所有DNN层通常耗时较长。为应对这些挑战,我们提出以下解决方案:首先,通过分析移动设备在不同无线网络带宽下的能耗,构建基于回归的能耗预测模型;然后,提出一种算法,该算法基于所建立的预测模型找出最节能高效的 DNN划分方案,并在每个DNN分片上传完成后执行增量式计算卸载。实验结果表明,与当前的一次性方法相比,我们的方案提升了能效。在100 Mbps带宽下,当模型上传耗时占总上传时间的三分之一时,所提出的方案可降低约40%的能耗。

关键词 —移动边缘计算,深度神经网络,计算卸载,能量高效

一、引言

近年来,深度神经网络(DNN)已在计算机视觉、增强现实等领域取得了巨大成就。由于其成功,使用深度神经网络(DNN)的移动应用正变得越来越流行。然而,由于电池供电设备(如智能手机和可穿戴设备)的能量预算有限,在这些设备上运行最先进的深度神经网络(DNN)仍然具有挑战性。例如,典型的智能手机无法使用AlexNet持续超过一小时进行实时物体分类。因此,能耗已成为在移动深度学习(DL)应用中使用深度神经网络(DNN)的主要问题。

在能量受限设备上运行深度神经网络应用的一个良好实践是将深度神经网络计算卸载到云计算环境中的中央服务器。一种方法是将整个深度神经网络模型上传至服务器。当接收到深度学习请求(例如人脸识别或物体分类)时,服务器执行上传的模型并将结果返回给设备。另一种方法是将深度神经网络模型的层划分为多个分区,仅将其中部分分区上传至服务器。在执行深度学习任务时,一部分分区由设备执行,其余分区在服务器上运行,以在深度学习准确性与资源使用之间取得平衡[4],或提升系统性能和节能效果[5]。这两种方法都要求将包含模型参数的深度神经网络模型预先安装在指定的服务器上。

遗憾的是,上述方法并不适用于移动边缘计算(MEC)场景。在运行时很难预测设备将使用哪个边缘服务器,尤其是当设备处于移动状态时。由于去中心化的MEC基础设施(如雾节点和云子)具有有限的计算和存储容量,因此无法预先在这些设施上安装所有移动设备所需的深度神经网络模型。此外,移动用户可能运行基于仅存在于设备上的个性化深度神经网络模型的应用程序。因此,提前在合适的边缘服务器上部署适当的深度神经网络模型十分困难。在MEC中按需将深度神经网络模型上传到边缘服务器更具优势。

通过按需模型上传,出现了以下关键挑战。首先,在不同的无线网络带宽下,如何在多接入边缘计算(MEC)中找到最节能高效的模型划分方案?该方案的能耗取决于移动设备在执行本地DNN层、上传其余层到边缘服务器、等待服务器执行已上传层以及从服务器接收计算结果过程中所消耗的能量。第二个挑战是如何减少设备等待服务器的时间和能量开销。如果设备直到上传完成才开始计算,则会给深度神经网络应用带来额外的时间和能量开销,因为上传最优方案的所有DNN层也需要很长时间。

针对这些挑战,我们提出了以下设计。首先,我们对移动设备的能耗进行分析,以生成基于回归的能耗模型。其次,我们在 [6]中采用增量式卸载方法,并提出一种新的神经网络计算卸载算法。该算法根据前一步建立的预测模型,找到最节能高效的深度神经网络(DNN)划分方案,并在每个分区上传完成后立即开始计算。实验结果表明,与当前的一次性方法相比,我们的方案提高了能效。在100 Mbps带宽下,当模型上传耗时占总上传时间的 1/3时,所提出的方案可将能耗降低约40%。

II. 相关工作

我们在此项工作中基于先前关于计算卸载和DNN分割的研究。Satyanarayanan 等人提出了一种计算卸载技术 [7],通过该技术,移动设备将计算任务卸载到附近的服务器。Neurosurgeon [5] 可能是首个关于DNN分割的工作,其中深度神经网络模型在设备和服务器之间进行分割。最大的挑战在于确定合适的分割点,以获得最佳的模型推理性能。作者同时考虑了查询延迟和能效,提出一种基于回归的方法来估计深度神经网络模型中每一层的延迟,并找到最优的分割点,以满足模型推理中的延迟或能量要求。

另一项相关工作是一种称为神经网络计算增量卸载(IONN)[6]的卸载方法。IONN将客户端的深度神经网络模型划分为多个层分区,并确定如何将其上传到服务器。客户端逐个将分区上传至服务器,而不是一次性发送整个 DNN模型。服务器在每个DNN分区到达时逐步构建 DNN模型,使得客户端可以在整个DNN模型上传完成前就开始卸载。也就是说,当存在DNN查询时,服务器会执行已上传的分区,而客户端则运行剩余的分区。这种增量式和部分式的DNN卸载使移动客户端能够更及时地利用边缘服务器,从而提升查询性能。此外,Kwang Yong Shin 等人提出了一种针对IONN的改进分割算法 [8],可生成更细粒度的上传计划。

上述两篇论文的作者[6],[8]提出了增量式卸载算法以优化 DNN 查询的执行时间,但均未考虑电池供电的移动设备在运行深度神经网络时所面临的数据困境。因此,我们专注于基于能量测量与分析来优化深度神经网络计算卸载和模型上传的能耗。在本文中,我们假设训练好的 DNN 参数存储在移动设备上,且 DNN 查询的本地执行时间满足深度神经网络应用的 QoS 要求。

III. 动机

A. DNN分割

为了更好地理解每个 DNN 层计算所消耗的能量,我们运行了在 Caffe 中实现的 AlexNet 在英伟达Jetson Nano上测量各层的能耗以及每层中间输出的数据大小。如图1所示,能耗和输出数据大小表现出显著的异质性,这意味着能耗较高的层不一定输出较少的数据。基于这一观察,DNN分割的一个直观思路是将能耗最高且产生数据最少的层卸载到服务器,以节省计算和传输能耗。例如,我们选择第二卷积层(图1中的conv2)作为分割点,即将该点之前的层保留在设备端,其余部分卸载到服务器。设备与边缘服务器之间的模型分割利用邻近的混合计算资源进行深度神经网络(DNN)推理,并节省电池供电设备的能耗。

示意图0

B. 上传DNN参数的开销

虽然我们可以节省通过将计算卸载到边缘服务器带来的能量,移动设备可以节省能耗。然而,由于DNN层无法预先安装在MEC中,按需上传DNN层仍需要时间和能量。在当前的一次性方法[6]中,直到模型的所有DNN层都上传完毕后,DNN查询才能执行。在Caffe框架中,AlexNet的模型大小为233兆字节,这意味着在80兆比特每秒的无线带宽下,设备必须等待约24秒后才能开始卸载DNN查询。更好的选择是增量式卸载,即设备逐个上传DNN分区,而不是一次性发送所有层。随着每个分区到达,服务器逐步构建DNN模型,从而允许设备在最优分区的所有层完全上传之前就开始卸载。各层的上传顺序确定方式如下:如图2所示,每一层的模型参数大小差异很大。基于这一观察,一个直观的想法是优先上传参数大小较小的层。如果两个层的参数大小相同,则优先级给予更节能高效的层。例如,图中 conv5的卷积层应优先上传。边缘服务器可以在这些层到达后立即执行,而无需继续等待。全连接层fc6应最后传输。

示意图1

四、功耗测量与建模

我们模拟了智能眼镜的经典移动认知辅助[9],该功能可通过耳语方式告知用户摄像头所见物体的名称。如图 3所示,我们构建了一个实验平台来测量移动设备的能耗。所选设备为配备ARM big.LITTLE CPU(4核)、GPU (128核NVIDIA Maxwell GPU)、Wi‐Fi网卡Intel 8265AC和4GB内存的NVidia Jetson Nano。我们的边缘服务器配备x86 CPU(3.2 GHz,四核)、NVidia RTX 2060 GPU和16GB内存。设备通过2.4 GHz无线链路连接到Wi‐Fi路由器,边缘服务器通过100 Mbps局域网接口连接至该路由器。为避免其他信号干扰,我们将路由器和设备分别置于两个屏蔽箱中。此外,我们使用可调衰减器调整接收信号强度,以模拟不同的无线带宽。

示意图2

我们使用外部测量仪器Monsoon功率计,它还为被测设备提供电源。通过修改IONN的客户端代码[10],我们嵌入测试代码以控制设备的通用输入输出(GPIO)第13引脚的输出,该引脚通过USB接口连接到功率监视器。测试代码输出高电平当发生DNN查询或数据传输等事件时,通用输入输出第 13引脚上的电平为3.3伏;事件结束后,该引脚被重置为低电平(0伏)。在实验过程中,功率监视器记录设备的功率以及第13引脚的电流,后者作为参考信号,用于生成各自的轨迹。我们对这两条轨迹进行同步。计算或通信的能耗可通过以下公式计算:

$$
\int_{t_0}^{t_1} W(t) \, dt \tag{1}
$$

在公式1中,$t_0$、$t_1$、$t$ 和 $W(t)$ 分别表示开始时间、结束时间、时间变量和设备的功率函数。如图4所示,DNN查询的平均功率约为4.2瓦。如图5所示,向边缘服务器上传数据的过程分为两个阶段:将数据加载到内存,以及通过套接字发送数据。参考信号电流通过USB接口流入功率计,功率计记录电流值。由于USB通道的输出接口已连接,高电压表现为负电流。如图4和图5所示,当某个事件正在进行时,记录的参考信号电流为负电流。

基于上述功耗测量,我们对移动设备进行性能分析,以生成基于回归的能耗预测模型,用于DNN计算和数据传输。对于Nano板,我们测量其待机功率$E_{wait}$。对于指定的深度神经网络模型M,其包含N个DNN层:${L_k | k = 1,…, N}$。其第k层的输出数据大小为$D_k$,模型大小为$S_k$。我们为DNN层创建预测函数,可根据层类型和参数估计设备执行各层的能耗$f_{device}(L_k)$以及服务器执行 DNN层$L_k$所需的时间$g_{edge}(L_k)$。同时,我们构建数据传输的预测函数,用于估计在B可用网络带宽下,设备传输 D字节数据时的发送能耗$f_{send}(D ,B)$和接收能耗$f_{receive}(D , B)$。

示意图3

V. 增量上传

在本节中,我们构建了一个神经网络执行能量图,以找到最节能高效的DNN分割方案,并提出了一种增量上传计划算法以节省更多能量。

A. 神经网络(NN)执行能量图

神经网络执行能耗图在层级别上表示客户端和服务器协作执行DNN查询的路径。图6展示了由三层组成的深度神经网络(DNN)所生成的神经网络执行能耗图。每一层被转换为三个节点(层A:1、2、3,层B:4、5、6,层C:7、8、9)。左侧的节点(0、1、4、7、10)属于客户端,右侧的节点(2、3、5、6、8、9)属于服务器。客户端节点之间的边(例如 1→4)表示本地执行,同一层内服务器节点之间的边(例如 2→3)表示服务器端执行。客户端节点与服务器节点之间的边(例如 1→2或 3→4)表示通过网络传输输入或输出矩阵。每条边都赋予一个权重以表示能量消耗。某些边的权重为零(例如 0→1或 3→5),因为不涉及计算或传输开销。客户端按如下方式设置边的权重:客户端可以从DNN执行配置文件中获取其本地层执行能耗;我们使用预测函数估计服务器的层执行时间,并通过公式“服务器层执行时间乘以客户端待机功率”来计算在此期间客户端的待机能耗;同时,我们还利用预测模型,以传输或接收的数据大小和当前网络速度作为参数,计算数据传输或接收时间。

神经网络执行能耗图被建模为一个有向无环图(DAG)。设$G=(V,E)$表示神经网络执行图,每一层被转换为三个节点,第k层$L_k$被分解为三个节点$v_{k,1}$、$v_{k,2}$和$v_{k,3}$,其中$V={v_1, v_2,…, v_m}$是转换后的节点集合(特别地,$v_1$和$v_m$分别表示输入层和输出层)。$E$是连接的集合。连接$(v_i,v_j) \in E$的权重$W_{i,j}$表示能量消耗(详见公式2)。

$$
W_{i,j} =
\begin{cases}
f_{device}(L_k) & \text{if } v_i = v_{k,1} \text{ and } v_j = v_{k+1,1} \
f_{send}(D_{k-1}, B) & \text{if } v_i = v_{k,1} \text{ and } v_j = v_{k,2} \
g_{edge}(L_k) * E_{wait} & \text{if } v_i = v_{k,2} \text{ and } v_j = v_{k,3} \
f_{receive}(D_k, B) & \text{if } v_i = v_{k,3} \text{ and } v_j = v_{k+1,1} \
0 & \text{if } v_i = v_{k,3} \text{ and } v_j = v_{k+1,2}
\end{cases}
\tag{2}
$$

B. 增量上传规划算法

我们的增量上传计划问题在于决定在上传分区中包含哪些层,以及以何种顺序上传这些层,以最小化客户端设备执行DNN查询时的能量消耗。为此,我们求解该问题分为两步解决。首先,找到最节能的执行路径,并确定在边缘服务器上执行的DNN层;其次,使用启发式算法创建上传计划。在第一步中,通过在神经网络执行能耗图中寻找最短路径,以确定最小能耗路径。在第二步中,启发式算法基于以下规则:优先上传上传开销较低的 DNN层(当模型大小相同时,选择更节能的层)。通过这种方式,在增量上传过程中,可以分多个步骤逐步实现最优节能划分。当小型模型开始上传时,我们只需等待较短时间,即可采用更节能的分区方案执行神经网络计算。因此,在模型上传过程中可尽快降低能耗。直到所有层都上传至服务器后,将采用最节能的分区方案进行性能执行。

算法1描述了我们的增量上传规划算法,该算法创建一个上传计划,即名为Plan的DNN分区列表,初始为空列表(第1行)。我们首先利用DNN模型描述、预测函数和当前可用带宽构建神经网络执行能耗图G(第2行)。接着,我们使用Dijkstra方法在其输入节点到输出节点之间搜索最短路径p ,并通过遍历路径p获取在最节能方案中位于服务器端执行的层Ledge (第3‐4行)。如果该最节能方案将所有层均在设备端本地执行,则返回空计划并终止(第5‐7行)。接下来,对于每一个在服务器端执行的层Lk,我们计算其能耗差异 Gk,即当第 k层在服务器上执行而其他层在客户端运行时的能量ESk减去本地执行能耗ED,以及第k层模型的上传时间TSk(第8‐13行)。然后,我们寻找相较于本地执行而言,在服务器端执行连续层Hi 的节能卸载方案(第14‐23行)。接下来,我们优先上传上传开销较低的DNN层(在模型大小相同的情况下选择更节能的层),并将连续层添加到上传计划中 (第26‐32行)。我们将所添加计划Ti的已上传层成本设为零,从候选集L′中移除这些层(第33‐36行),并更新能耗差异Gk和模型上传成本THi。相反,连续层Hi在服务器上执行(第37‐39行)。通过重复上述步骤,直到候选集L′为空,我们得到完整的上传计划。

算法1 增量上传规划算法
要求选: 定的深度神经网络(DNN)模型:M,当前可用网络带宽:B
确保: 一个上传计划:Plan。
1: Plan←[]
2: Construct神经网络执行能耗图 G使用输入参数;
3: Search用于图 G中的最短路径 p;
4: Acquire在最节能方案中于服务器执行的层 Ledge通过遍历路径 p,以及 Ledge 中的元素数量: Nedge;
5: if Ledge= ∅那么
6: 返回 Plan
7: end if
8: Calculate本地执行能耗: ED;
9: for Lk在 Ledge do
10: 计算第 k 层在服务器上执行而其他层在客户端执行时的能量:ESk;
11: Gk← ED − ESk(M);
12: TS k← Sk(M)/B;
13: end for
14: for s= 1→ Nedge −1 do
15: 对于 Li in Ledge do
16: if Gi ≤ 0 then
17: Hi ← {Li, Li+1,…, Li+s ∈ Ledge}
18: 计算在服务器上执行模型 M 的 Hi 层时的能量消耗:ESH i(M);
19: GHi ← ED − ESHi(M)
20: THi ← ∑Lj∈Hi TSj
21: 结束如果
22: 结束循环
23: end for
24: L′ ← Ledge
25: while L′ ≠ ∅执行
26: Set ← arg min(THi)
27: 如果 length(Set) > 1则
28: j ← arg max(GHi) 而 THi ∈ Set
29: else
30: j ← k
31: 结束 if
32: Plan ← Plan ∪ {Hj};
33: for Li in Hj do
34: Ti ← 0
35: L′ ← L′ − {Li}
36: end for
37: 对于 Li in L′ do
38: 将GHi、THi更新为与第16‐21行相同
39: 结束循环
40: end while
41: return Plan

VI. 评估

在本节中,我们使用Matlab基于能耗的预测函数(见第四节)对算法1进行评估。我们评估了分区卸载的节能效果以及增量上传规划算法的有效性。

A. 节能的分区卸载

我们构建了一个认知辅助场景,并假设客户端逐一重复发起用于图像分类的DNN查询。我们模拟了在不同可用网络带宽条件下对DNN的分割选择。模型为AlexNet。可用带宽从0.1 Mbps增加到100 Mbps,每次增加0.1 Mbps。我们记录算法给出的节能划分方案、DNN查询的能耗以及执行时间。

三种不同计算方案的能耗如图7所示。与本地执行和完全卸载到边缘服务器相比,在不同的无线带宽下,我们的方案通过实心红线表示具有更高的能效。当可用带宽小于0.7 Mbps时,本地执行方案更节能;而当可用带宽大于或等于0.7 Mbps时,将部分或全部层卸载到边缘服务器更加节能。因此,我们的算法能够在计算和通信的能耗之间进行权衡,并在不同的可用网络带宽下找到最佳的节能计算方案。

图8展示了在不同无线带宽下的节能卸载方案(如实心红线所示)。我们发现对应的划分方法是将总DNN层通过分割点p分为两部分:前半部分在设备端执行,后半部分在边缘服务器上执行。此外,p= 1表示所有层都在服务器端执行,然后将推理结果返回给设备;而p = N + 1(其中N表示总层数)表示整个推理过程仅在设备端执行。如图8所示,当可用带宽小于0.7兆比特每秒时,在客户端设备上执行全部层更加节能;当带宽大于等于0.7兆比特每秒且小于3.4兆比特每秒时,将第16至22层卸载到边缘服务器上执行更加节能;当带宽大于17.8兆比特每秒时,将所有层卸载到服务器上执行更加节能。随着网络带宽的增加,更多的DNN层被卸载到服务器执行,从而实现更节能高效的计算。

在节能的最优分区方案下,DNN推理延迟如图9所示。我们的算法最小化客户端设备每次DNN查询的能量消耗,从而相应地优化DNN推理延迟。然而,在网络带宽的临界区域内,当分区方案发生变化时,尽管能量消耗被最小化,DNN推理延迟却会增加。因此,优化DNN推理延迟和能量消耗的算法不能完全相互替代。

B. 我们算法的有效性

我们模拟客户端设备在不同的无线带宽(50 Mbps和 100 Mbps)下开始连接Wi‐Fi接入点,上传AlexNet深度神经网络模型参数,并在60秒内执行DNN查询。与简单的一次性全部上传方法(即一次性上传整个DNN模型)相比,我们采用增量式部分DNN卸载以节省能量。在不同带宽下的测量结果非常相似,因此为了节省空间,我们仅在下方展示100 Mbps带宽的情况。

图10显示了在100 Mbps网络带宽下60秒内DNN执行的能耗情况。在我们的方案中,如实心红线所示,随着 DNN模型的上传,每个DNN查询的能耗将逐渐降低。当所有层的模型均上传至边缘服务器后,DNN执行将根据最优可选DNN分割点完全卸载到边缘服务器上执行,此时其能耗达到最低。在一次性上传方案中,如点划线蓝线所示,在所有层的模型上传完成之前,整个DNN层将在客户端设备上执行;之后,部分或全部DNN层将根据最优可选DNN分割点在边缘服务器上执行。图中曲线上各数据点之间的间隔代表一次DNN查询。此外,当所有层的模型上传完成后,由于整个DNN层都在服务器上执行,DNN推理延迟将显著小于之前。在100 Mbps带宽下,当 DNN模型上传耗时占总上传时间的1/3时,其能耗相比本地执行时降低了约40%,从而减少了DNN执行的总能耗。同时,在100 Mbps带宽下上传DNN模型的总能量消耗相比50 Mbps带宽时降低了33.8%。

VII. 结论

移动边缘计算(MEC)是一种在资源受限的移动设备上运行深度神经网络(DNN)模型的 promising 方法。它按需将设备的 DNN 模型分片上传至最近的边缘服务器,然后将深度神经网络计算卸载到服务器,以节省设备能耗。我们通过两个关键思路来降低设备在 MEC 中的能耗:首先,通过分析移动设备在不同无线网络带宽下的能耗情况,构建基于回归的能耗预测模型;其次,我们提出了一种新的节能型神经网络计算增量式卸载算法。该算法能够在当前网络带宽条件下,权衡计算与通信能耗,找到最节能高效的计算方式。实验结果表明,与简单的一次性方法相比,我们的算法在 DNN 模型上传过程中显著降低了能耗。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值