一种基于机器学习算法的边缘设备中动态资源调度方法
未命名
08-14
阅读:88
评论:0
1.本发明属于异构边缘设备中资源任务动态分配调度技术领域,特别是一种基于机器学习算法的边缘设备中动态资源调度方法。
背景技术:
2.近年来,边缘计算技术的快速发展使得边缘设备在各个领域中得到广泛应用。边缘设备作为部署在网络边缘的计算和存储节点,可以处理和分析数据,以减少数据的传输延迟,降低任务的处理时间,实现实时决策和响应。然而边缘设备的能耗问题成为限制其可持续运行和性能提升的重要因素。因此迫切需要开发新算法通过调度边缘设备上的资源来降低其处理任务的能耗。
3.环境能量收集技术的引入为边缘设备能源供应提供了解决方案,可以实现边缘设备的自供电,长期运行状态,同时也减少了人工充电和电池更换的需求。能量收集边缘设备通过从环境中收集和转换能量源,如:太阳能、热能和风能等,实现为设备充电的能力。这种自供电的特性为边缘设备提供了更大的灵活性和可持续性,使其在智能物联网,智能穿戴设备等应用中具备更长的工作寿命和更广泛的应用场景,例如:可以使用太阳能充电的手表,平常携带即可满足其电量需求,不需要经常更换电池,或者一些太阳能监控设施、红绿灯设施等,可以在无电源的情况下灵活摆放在需要的位置,并且持续运行。能量收集边缘设备的主要目标是实现能量中性操作,即保证设备在任何给定周期消耗的总能量等于周期内收集到的能量,这样即保证了设备的可持续运行,然而实现eno是具有挑战性的,往往会使用最先进的算法制定一个动态优化问题,然而由于这种求解的复杂程度,在资源首先的边缘设备上运行时可能会导致额外的执行时间和能量开销,因此需要一个低开销迅速决策的资源调度算法进行处理。kai等人(k.geissdoerfer,b.kusy,r.jurdak and m.zimmerling,"getting more out of energy-harvesting systems:energy management under time-varying utility with preact,"201918th acm/ieee international conference on information processing in sensor networks(ipsn),montreal,qc,canada,2019,pp.109-120,doi:10.1145/3302506.3310393.)提出了一种动态资源管理算法,在收集能量方面提高了决策效率,但是开销也是不容忽视的。
技术实现要素:
4.本发明的目的在于针对现有技术存在的缺陷或者不足,提供一种操作简单、实用性强、既能保证设备可靠性又能兼顾温度和能量安全阈值之间的异构边缘设备资源动态调度方法。
5.实现本发明目的的技术解决方案为:一方面,提供了一种基于机器学习算法的边缘设备中动态资源调度方法,所述方法包括以下步骤:
6.步骤1,建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;
7.步骤2,利用改进的萤火虫算法生成模仿学习oracle策略;
8.步骤3,利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;
9.步骤4,利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。
10.进一步地,步骤1所述建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型,具体包括:
11.步骤1.1,建立包含边缘设备和能量采集设备的硬件模型框架:考虑一个温度受限的多核嵌入式边缘cpu-gpu异构平台,其包括一个gpu核心ρg和数个cpu核心{ρ1,...,ρm},m表示cpu的总核数,每个核心彼此相同,将gpu抽象化视为一个处理器;当gpu的所有内核都没有任何任务在处理时,视作空闲状态;同一集群中的核心均配备动态电压频率调整技术即dvfs技术,以相同的工作频率运行;在多核嵌入式边缘cpu-gpu异构平台上,cpu核和gpu核均支持一定范围内的电压频率调节,将频率表示为和其中f
vg
表示gpu第v种支持的频率数,f
nc
表示cpu第n种支持的频率数,v表示gpu支持可变的频率个数,n表示cpu支持可变的频率个数,1≤v≤v,1≤n≤n,f
1g
和分别为gpu核心的最小和最大频率,f
1c
和分别为cpu核心的最小和最大频率;
12.步骤1.2,建立在边缘设备上的处理器运行的神经网络任务模型:
13.τi→
{ei,di,xi}
14.式中,ei为任务τi的执行时间,di为每个任务τi的截止时间,xi=0表示任务τi主要在cpu某些核上进行处理,xi=1表示任务主要在gpu上进行处理;
15.步骤1.3,建立在边缘设备上的处理器的温度模型,包括单处理器温度模型和异构多核温度模型;
16.(1)单处理器温度模型
17.处理任务时即工作阶段时,单处理器温度模型建模为:
18.θ(t)=α+(θ(t0)-α)e
βt
[0019][0020]
式中,θ(t)为处理器核心θ在以固定时间频率工作t个时间单位后的温度,a为处理器工作消耗,θ(t0)为处理器核心θ在初始时刻t0时的温度,被建模为处理器工作频率的凸函数,rc表示rc电路,κ0,κ1,η是取决于所使用的材料的系统常数,即α>0,β<0为常数,fi表示第i个处理器的频率;
[0021]
没有任务时即冷却阶段时,单处理器温度模型建模为:
[0022]
θ(t)=θ(t0)e
βt
;
[0023]
(3)异构多核温度模型建模为:
[0024]
[0025]
式中,θi(t0+t)表示第i个处理器经过t个时间单位后的温度,θ(t0)为处理器核心θ在初始时刻t0时的温度,该部分表示m个cpu核心共同产生的温度,j表示第j个处理器,γ
ij
表示第i个处理器和第j个处理器的影响参数;θj(t0+t)表示第j个处理器经过t个时间单位后的温度;
[0026]
步骤1.4,建立异构边缘设备平台的可靠性模型r'为:
[0027][0028]
式中,rg和ri分别为ρg、ρi的软错误可靠性,ρi为第i个cpu核心即第i个处理器;
[0029]
其中,软错误可靠性r的计算公式为:
[0030]
r=e-λ(f)
×u×
|δt|
[0031][0032]
式中,f表示cpu或gpu核的频率,f
min
表示cpu或gpu核的最小频率,|δt|表示时间间隔的长度,u为cpu或gpu核心在一定时间间隔|δt|内的利用率,λ(f)为平均故障率,λ0为核心处于最大频率下的平均故障率,d为硬件特定常数,表示故障率对频率缩放的敏感性,d>0;
[0033]
步骤1.5,建立异构边缘设备平台处理任务的能量模型:
[0034]ebat
(tn,t
n+1
)=e
avl
(t
n-1
,tn)-e
dem
(t
n-1
,tn)
[0035]
其中,
[0036]eavl
(t
n-1
,tn)=e
bat
(t
n-1
,tn)+e
harv
(t
n-1
,tn)
[0037][0038][0039]
其中,e
bat
(t
n-1
,tn)、e
bat
(tn,t
n+1
)分别表示t
n-1
时刻、tn时刻电池的电量,e
avl
(t
n-1
,tn)表示从t
n-1
时刻到tn时刻即δt阶段的可用预算能量,e
dem
(t
n-1
,tn)表示从t
n-1
时刻到tn时刻的实际能量消耗,e
harv
(t
n-1
,tn)表示从t
n-1
时刻到tn时刻收集到的能量;p
sta
表示静态功率,p
act
表示有功功率,p
act
(τi)表示任务τi产生的有功功率,p
act
=cv2f,c为系统相关常数,v表示系统电压,f表示频率,ei为第i个任务的执行时间,γ为任务集;p
harv
(t)表示收集功率;
[0040]
步骤1.6,在给定周期t内,建立资源调度优化模型:
[0041][0042]
约束如下:
[0043]
[0044]
式中,e
dem
表示在δt阶段的能量消耗,t表示总时间,δt表示时间间隔,在约束部分,第一个约表示在δt阶段任务消耗的能量不能高于可用能量,其中e
dem
(tn,t
n+1
)表示从tn时刻到t
n+1
时刻的实际能量消耗,e
avl
(tn,t
n+1
)表示从tn时刻到t
n+1
时刻的可用预算能量;e
bat
(t
n+1
,t
n+2
)表示t
n+1
时刻电池的电量;r
sys
表示系统的可靠性,r
aim
表示目标可靠性值;θ
aim
表示目标温度。
[0045]
进一步地,步骤2中所述改进的萤火虫算法包括:
[0046]
该算法的位置线性更新方程为:
[0047][0048]
式中,α=1-β,β为吸引度,和分别是萤火虫i在第k次和第k+1次迭代中的位置,θ
*
为最优解的位置,ε为固定范围随机数。
[0049]
进一步地,步骤2所述利用改进的萤火虫算法生成模仿学习oracle策略,具体包括:
[0050]
步骤2.1,对oracle策略的表示方法进行定义:将一个政策π表示为一个由cpu和gpu频率组成的二元组,s
t
表示系统当前的频率配置,a表示cpu活动核数,表示cpu频率,表示gpu频率,同时将π
*
表示为最优配置,v*n为总策略数量;
[0051][0052]
π=(π1,π2,...,π
v*n
)
[0053]
步骤2.2,基于步骤2.1的定义,利用改进的萤火虫算法生成模仿学习oracle策略,即最优oracle策略。
[0054]
进一步地,步骤3所述利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化,具体包括:
[0055]
步骤3-1,在每个目标应用程序上执行最优oracle策略,输出相应的特征值;
[0056]
步骤3-2,构建训练样本数据集,包括所述最优oracle策略和每个目标应用程序对应的特征值;
[0057]
步骤3-3,基于训练样本数据集,利用回归学习算法对所述资源调度优化模型进行训练优化,同时输出预测策略π即资源调度方案。
[0058]
进一步地,所述回归学习算法中的代价函数为:
[0059][0060]
运用的梯度下降算法为:
[0061][0062]
式中,j(μo,μ1,...,μn)为预测策略μn的代价函数,m'表示训练样本的数量,π
predict
(f(i))表示训练样本数据集f中第i个特征的预测值,其对应的π
*(i)
即为第i个特征的最优值;μj表示第j个待更新的预测值,α代表学习率,m表示预测样本个数,y(i)表示第i个特征的真实值,也为最优值,为第j个预测中第i个特征的预测值。
[0063]
进一步地,步骤3还包括:
[0064]
步骤3-4,利用数据聚合dagger算法更新所述训练样本数据集,具体包括:
[0065]
判断步骤3-3的预测策略π与最优oracle策略是否相同,若相同,则将所述预测策略π添加至训练样本数据集。
[0066]
另一方面,提供了一种基于机器学习算法的边缘设备中动态资源调度系统,所述系统包括:
[0067]
第一模块,用于建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;
[0068]
第二模块,用于利用改进的萤火虫算法生成模仿学习oracle策略;
[0069]
第三模块,用于利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;
[0070]
第四模块,用于利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。
[0071]
本发明与现有技术相比,其显著优点为:
[0072]
(1)操作简单,实用性强:本发明针对的是在边缘设备上执行的神经网络任务,这种使用场景十分广泛,相较于现在的强化学习技术,具有快速收敛的特性,能保证得到最优调度结果,也能保证定义的约束不被违反。
[0073]
(2)有效地降低了设备的功耗:边缘设备的运行场景一般对电量,稳定性和资源等方面要求很严格,本发明的算法开销很低,可以在后台对边缘设备的资源进行调度,显著地降低任务在边缘设备上的执行开销,提高设备的执行效率。
[0074]
下面结合附图对本发明作进一步详细描述。
附图说明
[0075]
图1是基于机器学习算法的边缘设备中动态资源调度方法的流程图。
[0076]
图2是基于机器学习算法的边缘设备中动态资源调度方法的全部执行流程示意图。
具体实施方式
[0077]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0078]
需要说明,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
[0079]
在一个实施例中,结合图1和图2,提供了一种基于机器学习算法的边缘设备中动态资源调度方法,所述方法包括:
[0080]
步骤1,建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;
[0081]
步骤2,利用改进的萤火虫算法生成模仿学习oracle策略;
[0082]
步骤3,利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;
[0083]
步骤4,利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。
[0084]
进一步地,在其中一个实施例中,步骤1所述建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型,具体包括:
[0085]
步骤1.1,建立包含边缘设备和能量采集设备的硬件模型框架:考虑一个温度受限的多核嵌入式边缘cpu-gpu异构平台,其包括一个gpu核心ρg和数个cpu核心{ρ1,...,ρm},m表示cpu的总核数,每个核心彼此相同,将gpu抽象化视为一个处理器;当gpu的所有内核都没有任何任务在处理时,视作空闲状态;同一集群中的核心均配备动态电压频率调整技术即dvfs技术,以相同的工作频率运行;在多核嵌入式边缘cpu-gpu异构平台上,cpu核和gpu核均支持一定范围内的电压频率调节,将频率表示为和其中f
vg
表示gpu第v种支持的频率数,f
nc
表示cpu第n种支持的频率数,v表示gpu支持可变的频率个数,n表示cpu支持可变的频率个数,1≤v≤v,1≤n≤n,f
1g
和f
vg
分别为gpu核心的最小和最大频率,f
1c
和分别为cpu核心的最小和最大频率;
[0086]
步骤1.2,建立在边缘设备上的处理器运行的神经网络任务模型:
[0087]
τi→
{ei,di,xi}
[0088]
式中,ei为任务τi的执行时间,di为每个任务τi的截止时间,xi=0表示任务τi主要在cpu某些核上进行处理,xi=1表示任务主要在gpu上进行处理;本发明中将边缘设备gpu抽象为一个处理器,而任务被分配到哪个cpu上由边缘设备的操作系统决定,由于我们固定了边缘设备的所有cpu活动核为相同频率,所以可以只看cpu的活动核数和占用率。
[0089]
步骤1.3,建立在边缘设备上的处理器的温度模型,包括单处理器温度模型和异构多核温度模型;取决于处理器频率、是否为功耗密集型和边缘异构设备散热等因素,主要关注cpu核,gpu核,为了简单起见,假设由其他嵌入式组件(例如外设和缓存)产生的温度是可以忽略或可以接受的;
[0090]
(1)单处理器温度模型
[0091]
单处理器的热模型被建模为rc电路。处理任务时即工作阶段时,单处理器温度模型建模为:
[0092]
θ(t)=α+(θ(t0)-α)e
βt
[0093][0094]
式中,θ(t)为处理器核心θ在以固定时间频率工作t个时间单位后的温度,a为处理器工作消耗,θ(t0)为处理器核心θ在初始时刻t0时的温度,被建模为处理器工作频率的凸函
数,rc表示rc电路,κ0,κ1,η是取决于所使用的材料的系统常数,即α>0,β<0为常数,fi表示第i个处理器的频率;
[0095]
没有任务时即冷却阶段时,单处理器温度模型建模为:
[0096]
θ(t)=θ(t0)e
βt
;
[0097]
(2)但随着多核和其他耗能资源的存在,在运行时同样对环境有散热,在节点部件之间也存在散热,核的温度不仅取决于当前的温度和功耗,还取决于相邻的温度和功耗,本发明只将cpu和gpu核视为耗电节点,因为其他组件功耗会低的多,导致的热影响可以忽略不计。
[0098]
根据热传递与初始温度θ(t0)的热合成特性,异构多核温度模型建模为:
[0099][0100]
式中,θi(t0+t)表示第i个处理器经过t个时间单位后的温度,θ(t0)为处理器核心θ在初始时刻t0时的温度,该部分表示m个cpu核心共同产生的温度,j表示第j个处理器,γ
ij
表示第i个处理器和第j个处理器的影响参数;θj(t0+t)表示第j个处理器经过t个时间单位后的温度;
[0101]
在异构平台中,cpu和gpu的核心工作温度可以通过其平台支持的开发者工具jtop、rc热建模工具hotspot或其他热传感器来估计和记录。一般来说较高的工作温度会导致较低的寿命和可靠性,在本发明中要求操作温度低于阈值。
[0102]
步骤1.4,建立异构边缘设备平台的可靠性模型r'为:
[0103][0104]
式中,rg和ri分别为ρg、ρi的软错误可靠性,ρi为第i个cpu核心即第i个处理器;
[0105]
其中,软错误可靠性r的计算公式为:
[0106]
r=e-λ(f)
×u×
|δt|
[0107][0108]
式中,f表示cpu或gpu核的频率,f
min
表示cpu或gpu核的最小频率,|δt|表示时间间隔的长度,u为cpu或gpu核心在一定时间间隔|δt|内的利用率,λ(f)为平均故障率,λ0为核心处于最大频率下的平均故障率,d为硬件特定常数,表示故障率对频率缩放的敏感性,d>0;
[0109]
步骤1.5,建立异构边缘设备平台处理任务的能量模型:
[0110]ebat
(tn,t
n+1
)=e
avl
(t
n-1
,tn)-e
dem
(t
n-1
,tn)
[0111]
其中,
[0112]eavl
(t
n-1
,tn)=e
bat
(t
n-1
,tn)+e
harv
(t
n-1
,tn)
[0113]
[0114][0115]
其中,e
bat
(t
n-1
,tn)、e
bat
(tn,t
n+1
)分别表示t
n-1
时刻、tn时刻电池的电量,e
avl
(t
n-1
,tn)表示从t
n-1
时刻到tn时刻即δt阶段的可用预算能量,e
dem
(t
n-1
,tn)表示从t
n-1
时刻到tn时刻的实际能量消耗,e
harv
(t
n-1
,tn)表示从t
n-1
时刻到tn时刻收集到的能量;p
sta
表示静态功率,p
act
表示有功功率,p
act
(τi)表示任务τi产生的有功功率,p
act
=cv2f,c为系统相关常数,v表示系统电压,f表示频率,ei为第i个任务的执行时间,γ为任务集;p
harv
(t)表示收集功率;
[0116]
步骤1.6,在给定周期t内,建立资源调度优化模型:
[0117][0118]
约束如下:
[0119][0120]
式中,e
dem
表示在δt阶段的能量消耗,t表示总时间,δt表示时间间隔,在约束部分,第一个约束表示在δt阶段任务消耗的能量不能高于可用能量,其中e
dem
(tn,t
n+1
)表示从tn时刻到t
n+1
时刻的实际能量消耗,e
avl
(tn,t
n+1
)表示从tn时刻到t
n+1
时刻的可用预算能量;第二个约束表示在t
n+2
刻电池能量应该不低于t
n+1
时间并且始终大于0,以确保设备可以平稳运行,e
bat
(t
n+1
,t
n+2
)表示t
n+1
时刻电池的电量;第三个约束表示系统的可靠性r
sys
应该不低于目标可靠性值r
aim
;第四个约束表明处理器i在t时刻的的温度θi(t0+t)应该不高于目标温度θ
aim
。
[0121]
进一步地,在其中一个实施例中,步骤2对萤火虫算法进行了改进,使其收敛性更强。在电源管理领域,oracle通常是通过在目标平台上执行一组已知的应用程序来离线构建的,初步选择使用fa萤火虫算法作为生成oracle的方法,但由于基本的fa萤火虫算法可能存在收敛困难的特性,为了让oracle解可以快速收敛,进一步使用一种改进的能快速收敛的ifcfa(improvedfastconvergencefireflyalgorithm)算法作为oracle的生成算法,将萤火虫种群定义为ω={ω1,ω2,...,ω
|ω|
},其中|ω|表示总大小,ωi表示一个调度解。在经典fa萤火虫算法中的策略是:亮度低的萤火虫会被较亮的萤火虫吸引,并且向较亮的萤火虫移动,在本发明方法中,对萤火虫算法策略进行了改进,将萤火虫的亮度定义为f(ωi),也就是调度的优化目标值。同时定义了萤火虫ωi的位置为θi。在ifcfa的进化过程中,其使用了一种有效的位置更新策略,首先介绍标准fa中的原始更新规则,当萤火虫ωi向更亮的萤火虫移动时,位置更新方程为:
[0122][0123]
其中第一项表示萤火虫ωi的当前位置,第二项表示萤火虫ωi由于吸引从当前位置移动到新位置,其中β为吸引度,γ为吸收系数,r
ij
表示两只萤火虫之间的欧式距离
d表示问题的维数,第三项表示位置的随机变化。在标准fa萤火虫算法中,一只萤火虫需要向所有比它更亮的萤火虫移动,并不断更新自己的位置,考虑到欧几里得距离计算量大,ifcfa提出了一种新的移动策略,即任何萤火虫只需要朝着种群中最亮的萤火虫移动,所以位置线性更新方程变为:
[0124][0125]
式中,α=1-β,β为吸引度,和分别是萤火虫i在第k次和第k+1次迭代中的位置,θ
*
为最优解的位置,ε为固定范围随机数。
[0126]
ifcfa算法的生成初始萤火虫种群和初始化的复杂性为o(n)和o(n*logn),其次所提出的位置更新策略的复杂度为o(n),与复杂度为o(n2)的传统更新规则相比,本发明所提出的ifcfa具有更高的计算效率。
[0127]
进一步地,在其中一个实施例中,步骤2所述利用改进的萤火虫算法生成模仿学习oracle策略,具体包括:
[0128]
步骤2.1,对oracle策略的表示方法进行定义:将一个政策π表示为一个由cpu和gpu频率组成的二元组,s
t
表示系统当前的频率配置,a表示cpu活动核数,f
nc
表示cpu频率,f
vg
表示gpu频率,同时将π
*
表示为最优配置,v*n为总策略数量;
[0129]
π:s
t
→
{a,f
nc
,f
vg
}
[0130]
π=(π1,π2,...,π
v*n
)
[0131]
步骤2.2,基于步骤2.1的定义,利用改进的萤火虫算法生成模仿学习oracle策略,即最优oracle策略。
[0132]
进一步地,在其中一个实施例中,步骤3所述利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化,具体包括:
[0133]
步骤3-1,在每个目标应用程序上执行最优oracle策略,输出相应的特征值;
[0134]
步骤3-2,构建训练样本数据集,包括所述最优oracle策略和每个目标应用程序对应的特征值;
[0135]
步骤3-3,基于训练样本数据集,利用回归学习算法对所述资源调度优化模型进行训练优化,同时输出预测策略π即资源调度方案。
[0136]
这里,所述回归学习算法中的代价函数为:
[0137][0138]
运用的梯度下降算法为:
[0139][0140]
式中,j(μo,μ1,...,μn)为预测策略μn的代价函数,m'表示训练样本的数量,π
predict
(f(i))表示训练样本数据集f中第i个特征的预测值,其对应的π
*(i)
即为第i个特征的最优值;μj表示第j个待更新的预测值,α代表学习率,m表示预测样本个数,y(i)表示第i个特征的
真实值,也为最优值,为第j个预测中第i个特征的预测值。
[0141]
经过不断迭代,当代价函数无限接近于0时达到了预测目的,保存所有最优的参数μ,使用训练得到的模型参数来预测新的输入特征对应的输出变量。
[0142]
进一步地,步骤3还包括:
[0143]
步骤3-4,利用数据聚合dagger算法更新所述训练样本数据集,具体包括:
[0144]
判断步骤3-3的预测策略π与最优oracle策略是否相同,若相同,则将所述预测策略π添加至训练样本数据集。
[0145]
这里,步骤3-4是对上述训练过程进行了补充优化。由于模仿学习中通常使用上述监督学习方法,使用人类专家或者高精度求解算法指导和产生的数据来训练一个行为策略模型,然而在实际应用中我们可能发现即使是专家指导数据或高精度求解算法数据也都有不够充分或考虑范围不完整的缺点,例如某些特征组合没有数据覆盖,或边缘设备在运行中发生了主动的频率改变,导致预测出错等情况。因此需要通过增量学习的方法逐步完善行为策略模型,提高性能和准确度。
[0146]
综上,本发明提出的基于机器学习中的模仿学习算法的异构边缘设备中资源调度方法,旨在降低边缘设备功耗,保证设备可靠性和温度约束。该方法主要采用了机器学习中的模仿学习算法,其基本思想是通过学习人类的行为来指导机器的决策。具体而言,在本发明所提出的方法中,使用多特征线性回归监督学习算法来学习人类对资源调度的决策。通过对人类的行为进行观察和记录,可以得到一组具有代表性的数据集。然后,将这些数据集输入到监督学习算法中进行训练,从而得到一个模型。该模型可以对输入的任务进行判断,然后指导边缘设备对资源进行调度。在边缘设备中,每个设备都具有不同的计算能力、存储能力和网络带宽。因此,在任务调度时,需要考虑设备的异构性。为了解决这个问题,本发明提出了一种快速收敛的萤火虫算法作为oracle算法,即在每一步选择最优的边缘设备进行任务调度。在资源分配过程中,不仅考虑了设备的计算能力和存储能力,还考虑了设备的温度约束。通过对设备的温度进行监测和控制,可以保证设备的可靠性。
[0147]
在一个实施例中,提供了一种基于机器学习算法的边缘设备中动态资源调度系统,所述系统包括:
[0148]
第一模块,用于建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;
[0149]
第二模块,用于利用改进的萤火虫算法生成模仿学习oracle策略;
[0150]
第三模块,用于利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;
[0151]
第四模块,用于利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。
[0152]
关于基于机器学习算法的边缘设备中动态资源调度系统的具体限定可以参见上文中对于基于机器学习算法的边缘设备中动态资源调度方法的限定,在此不再赘述。上述基于机器学习算法的边缘设备中动态资源调度系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0153]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0154]
步骤1,建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;
[0155]
步骤2,利用改进的萤火虫算法生成模仿学习oracle策略;
[0156]
步骤3,利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;
[0157]
步骤4,利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。
[0158]
关于每一步的具体限定可以参见上文中对于基于机器学习算法的边缘设备中动态资源调度方法的限定,在此不再赘述。
[0159]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0160]
步骤1,建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;
[0161]
步骤2,利用改进的萤火虫算法生成模仿学习oracle策略;
[0162]
步骤3,利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;
[0163]
步骤4,利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。
[0164]
关于每一步的具体限定可以参见上文中对于基于机器学习算法的边缘设备中动态资源调度方法的限定,在此不再赘述。
[0165]
本发明提出的方法操作简单,实用性强,在保证边缘设备可靠性、温度和电池电量约束的同时,降低了神经网络任务在边缘设备上运行的能耗,延长了电池的使用时间。
[0166]
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,所述方法包括以下步骤:步骤1,建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;步骤2,利用改进的萤火虫算法生成模仿学习oracle策略;步骤3,利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;步骤4,利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。2.根据权利要求1所述的基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,步骤1所述建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型,具体包括:步骤1.1,建立包含边缘设备和能量采集设备的硬件模型框架:考虑一个温度受限的多核嵌入式边缘cpu-gpu异构平台,其包括一个gpu核心ρ
g
和数个cpu核心{ρ1,...,ρ
m
},m表示cpu的总核数,每个核心彼此相同,将gpu抽象化视为一个处理器;当gpu的所有内核都没有任何任务在处理时,视作空闲状态;同一集群中的核心均配备动态电压频率调整技术即dvfs技术,以相同的工作频率运行;在多核嵌入式边缘cpu-gpu异构平台上,cpu核和gpu核均支持一定范围内的电压频率调节,将频率表示为和其中表示gpu第v种支持的频率数,表示cpu第n种支持的频率数,v表示gpu支持可变的频率个数,n表示cpu支持可变的频率个数,1≤v≤v,1≤n≤n,f
1g
和分别为gpu核心的最小和最大频率,f
1c
和分别为cpu核心的最小和最大频率;步骤1.2,建立在边缘设备上的处理器运行的神经网络任务模型:τ
i
→
{e
i
,d
i
,x
i
}式中,e
i
为任务τ
i
的执行时间,d
i
为每个任务τ
i
的截止时间,x
i
=0表示任务τ
i
主要在cpu某些核上进行处理,x
i
=1表示任务主要在gpu上进行处理;步骤1.3,建立在边缘设备上的处理器的温度模型,包括单处理器温度模型和异构多核温度模型;(1)单处理器温度模型处理任务时即工作阶段时,单处理器温度模型建模为:θ(t)=α+(θ(t0)-α)e
βt
式中,θ(t)为处理器核心θ在以固定时间频率工作t个时间单位后的温度,a为处理器工作消耗,θ(t0)为处理器核心θ在初始时刻t0时的温度,被建模为处理器工作频率的凸函数,rc表示rc电路,κ0,κ1,η是取决于所使用的材料的系统常数,即α>0,β<0为常数,f
i
表示第i个处理器的频率;
没有任务时即冷却阶段时,单处理器温度模型建模为:θ(t)=θ(t0)e
βt
;(2)异构多核温度模型建模为:式中,θ
i
(t0+t)表示第i个处理器经过t个时间单位后的温度,θ(t0)为处理器核心θ在初始时刻t0时的温度,该部分表示m个cpu核心共同产生的温度,j表示第j个处理器,γ
ij
表示第i个处理器和第j个处理器的影响参数;θ
j
(t0+t)表示第j个处理器经过t个时间单位后的温度;步骤1.4,建立异构边缘设备平台的可靠性模型r'为:式中,r
g
和r
i
分别为ρ
g
、ρ
i
的软错误可靠性,ρ
i
为第i个cpu核心即第i个处理器;其中,软错误可靠性r的计算公式为:r=e-λ
(f)
×
u
×
δt
式中,f表示cpu或gpu核的频率,f
min
表示cpu或gpu核的最小频率,δt表示时间间隔的长度,u为cpu或gpu核心在一定时间间隔δt内的利用率,λ(f)为平均故障率,λ0为核心处于最大频率下的平均故障率,d为硬件特定常数,表示故障率对频率缩放的敏感性,d>0;步骤1.5,建立异构边缘设备平台处理任务的能量模型:e
bat
(t
n
,t
n+1
)=e
avl
(t
n-1
,t
n
)-e
dem
(t
n-1
,t
n
)其中,e
avl
(t
n-1
,t
n
)=e
bat
(t
n-1
,t
n
)+e
harv
(t
n-1
,t
n
))其中,e
bat
(t
n-1
,t
n
)、e
bat
(t
n
,t
n+1
)分别表示t
n-1
时刻、t
n
时刻电池的电量,e
avl
(t
n-1
,t
n
)表示从t
n-1
时刻到t
n
时刻即δt阶段的可用预算能量,e
dem
(t
n-1
,t
n
)表示从t
n-1
时刻到t
n
时刻的实际能量消耗,e
harv
(t
n-1
,t
n
)表示从t
n-1
时刻到t
n
时刻收集到的能量;p
sta
表示静态功率,p
act
表示有功功率,p
act
(τ
i
)表示任务τ
i
产生的有功功率,p
act
=cv2f,c为系统相关常数,v表示系统电压,f表示频率,e
i
为第i个任务的执行时间,γ为任务集;p
harv
(t)表示收集功率;步骤1.6,在给定周期t内,建立资源调度优化模型:约束如下:
式中,e
dem
表示在δt阶段的能量消耗,t表示总时间,δt表示时间间隔,e
dem
(t
n
,t
n+1
)表示从t
n
时刻到t
n+1
时刻的实际能量消耗,e
avl
(t
n
,t
n+1
)表示从t
n
时刻到t
n+1
时刻的可用预算能量;e
bat
(t
n+1
,t
n+2
)表示t
n+1
时刻电池的电量;r
sys
表示系统的可靠性,r
aim
表示目标可靠性值;θ
aim
表示目标温度。3.根据权利要求2所述的基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,步骤2中所述改进的萤火虫算法包括:该算法的位置线性更新方程为:式中,α=1-β,β为吸引度,和分别是萤火虫i在第k次和第k+1次迭代中的位置,θ
*
为最优解的位置,ε为固定范围随机数。4.根据权利要求3所述的基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,步骤2所述利用改进的萤火虫算法生成模仿学习oracle策略,具体包括:步骤2.1,对oracle策略的表示方法进行定义:将一个政策π表示为一个由cpu和gpu频率组成的二元组,s
t
表示系统当前的频率配置,a表示cpu活动核数,表示cpu频率,表示gpu频率,同时将π
*
表示为最优配置,v*n为总策略数量;π=(π1,π2,...,π
v*n
)步骤2.2,基于步骤2.1的定义,利用改进的萤火虫算法生成模仿学习oracle策略,即最优oracle策略。5.根据权利要求4所述的基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,步骤3所述利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化,具体包括:步骤3-1,在每个目标应用程序上执行最优oracle策略,输出相应的特征值;步骤3-2,构建训练样本数据集,包括所述最优oracle策略和每个目标应用程序对应的特征值;步骤3-3,基于训练样本数据集,利用回归学习算法对所述资源调度优化模型进行训练优化,同时输出预测策略π即资源调度方案。6.根据权利要求5所述的基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,所述回归学习算法中的代价函数为:运用的梯度下降算法为:
式中,j(μ
o
,μ1,...,μ
n
)为预测策略的代价函数,μ
o
,μ1,μ2,
…
,μ
n
表示资源调度优化模型参数,m'表示训练样本的数量,π
predict
(f
(i)
)表示训练样本数据集f中第i个特征的预测值,其对应的π
*(i)
即为第i个特征的最优值;μ
j
表示第j个待更新的预测值,α代表学习率,m表示预测样本个数,y
(i)
表示第i个特征的真实值,也为最优值,为第j个预测中第i个特征的预测值。7.根据权利要求6所述的基于机器学习算法的边缘设备中动态资源调度方法,其特征在于,步骤3还包括:步骤3-4,利用数据聚合dagger算法更新所述训练样本数据集,具体包括:判断步骤3-3的预测策略π与最优oracle策略是否相同,若相同,则将所述预测策略π添加至训练样本数据集。8.基于权利要求1至7任意一项所述方法的基于机器学习算法的边缘设备中动态资源调度系统,其特征在于,所述系统包括:第一模块,用于建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;第二模块,用于利用改进的萤火虫算法生成模仿学习oracle策略;第三模块,用于利用所述模仿学习oracle策略对所述资源调度优化模型进行训练优化;第四模块,用于利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
技术总结
本发明公开了一种基于机器学习算法的边缘设备中动态资源调度方法,包括以下步骤:建立一个包含边缘设备和能量采集设备的硬件模型框架,定义任务模型、能量模型、可靠性模型、温度模型,构建资源调度优化模型;利用改进的萤火虫算法生成模仿学习Oracle策略;利用所述模仿学习Oracle策略对所述资源调度优化模型进行训练优化;利用训练后的模型预测新的输入特征对应的输出变量即资源调度方案。该方法操作简单、实用性强,在保证设备的可靠性、温度和电池电量约束的前提下,降低了在设备上运行的神经网络任务的执行能耗,提升了边缘设备在特定条件下的续航能力。定条件下的续航能力。定条件下的续航能力。
技术研发人员:周俊龙 赵铭洲 李丽颖 丛佩金
受保护的技术使用者:南京理工大学
技术研发日:2023.05.26
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
