CN113946428A - 一种处理器动态控制方法、电子设备和存储介质 - Google Patents
一种处理器动态控制方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113946428A CN113946428A CN202111288651.1A CN202111288651A CN113946428A CN 113946428 A CN113946428 A CN 113946428A CN 202111288651 A CN202111288651 A CN 202111288651A CN 113946428 A CN113946428 A CN 113946428A
- Authority
- CN
- China
- Prior art keywords
- processor
- duration
- value table
- state
- value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000009471 action Effects 0.000 claims abstract description 58
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 25
- 230000000875 corresponding effect Effects 0.000 claims description 51
- 230000007613 environmental effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 5
- 230000002787 reinforcement Effects 0.000 abstract description 6
- 230000008859 change Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本公开实施例提供一种处理器动态控制方法、电子设备和存储介质。其中,所述方法包括:根据处理器的当前状态信息查找Q值表获取控制动作;根据所述控制动作对应的处理器运行参数调整所述处理器,其中,所述Q值表根据Q‑learning算法预先建立,所述Q值表对应的状态集为根据处理器状态信息划分的多种状态的集合,所述Q值表对应的动作集为将处理器的运行参数调整为不同目标运行参数的多种调整动作的集合。本公开实施例提供的处理器动态控制方案,结合强化学习方案,根据处理器的当前系统状态和既往的学习结果动态确定最优控制目标,能够自适应地选择最佳控制方案,有效达成控制目标。
Description
技术领域
本发明涉及但不限于处理器控制领域,具体涉及一种处理器动态控制方法、电子设备和存储介质。
背景技术
处理器运行模式或参数的动态控制是处理器控制领域一直探索持续优化的方向,其目标为芯片节能和/或性能优化,涉及很多不同方面,例如常见的处理器芯片节能技术——DVFS方案,以及CPU idle方案等。
以处理器芯片节能方案为例,CMOS电路的功耗分为动态功耗和静态功耗,可表述为公式:
P=αCLV2f+αVIshort+VIleak
第一项为动态功耗,其中α是CMOS的活性因子(即翻转率),CL代表负载电容,V为供电电压,f为时钟频率。其余两项为静态功耗,主要由漏电流引起。想要降低功耗的话,通常只能从动态功耗入手,对V和f进行调节。
DVFS(Dynamic Voltage and Frequency Scaling),即动态电压频率调整,是一种常见的芯片节能技术。这项技术通过在运行时动态调整,性能冗余时降低电压和频率以降低功耗,需要高性能时提高电压和频率满足工作需求,在功耗和性能间进行合理取舍。
DVFS是一项对软硬件有综合要求的技术。硬件方面有Intel的SpeedStep技术,使CPU能在高、低两个确定的频率间切换,通常设置为用电池时降为低频,用交流电源时恢复到高频。由此衍生出EIST(Enhanced Intel SpeedStep Technology),当CPU使用率低下的时候动态降低CPU的频率,一旦监测到CPU使用率很高的时候恢复到原始的频率。ARM公司提出的IEM(Intelligent Energy Manager)解决方案以软件为中心,和IEC(IntelligentEnergy Controller)硬件联合工作,与操作系统相互衔接,使用计数器、定时器和从操作系统获得的参数测出当前的系统性能水平,并产生对未来性能的预测。ARM公司还提出了AVS(Adaptive Voltage Scaling)技术,这是一种闭环方案,可评估不同的因素,例如芯片之间器件之间的工艺差异,芯片工作期间的温度波动以及负载变化,并在这些条件下确定最佳电压频率关系。
纯软件方面,Linux提供了支持不同策略(governor)的CPU调频框架cpufreq。目前常见的策略有:
可以看到,在满足处理器使用需求的前提下,如何精准有效地控制功耗是处理器控制领域一直探索改进的方向。
发明内容
本公开实施例提供一种处理器动态控制方法、电子设备和存储介质,结合强化学习方案,根据处理器的当前系统状态和既往的学习结果动态确定最优控制目标,实现对控制器运行参数的控制,能够自适应地选择最佳控制方案,有效达成控制目标。
本公开实施例提供一种处理器动态控制方法,包括:
根据处理器的当前状态信息查找Q值表获取控制动作;
根据所述控制动作对应的处理器运行参数调整所述处理器;
其中,所述Q值表根据Q-learning算法预先建立,所述Q值表对应的状态集为根据处理器状态信息划分的多种状态的集合,所述Q值表对应的动作集为将处理器的运行参数调整为不同目标运行参数的多种调整动作的集合。
本公开实施例还提供一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开任一实施例所述的处理器动态控制方法。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任一实施例所述的处理器动态控制方法。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本公开实施例中一种处理器动态控制方法的流程图;
图2为本公开实施例中一种Q值表更新方法的流程图;
图3为本公开实施例中另一种Q值表更新方法的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本领域有关处理器芯片节能的方案,以及系统级别的电压管理方案需要考虑来自环境、应用与硬件多方面的不确定性和多变性。可以看到,相关技术仍然是在被动应对负载变化,基于先验的设定或者上一个观测周期的统计数据进行决策,有滞后性,难以及时响应突发要求高性能的场景。对于周期性变化的负载(在基带芯片工作场景中比较常见),不能记录过去的决策以节约制定决策的开销,也不能超前调节以实现性能和功耗的综合最优。更强大的处理器控制技术以及电源管理技术需要能够根据过去发生的事件进行学习,从而自适应地做出最佳决策。
本公开实施例提供的处理器动态控制方案为基于强化学习的动态控制方案。相关方案中,Q-learning是强化学习算法中value-based的算法。该算法将学习过程建模成一条状态state和动作action的序列,假设状态满足马尔科夫决策过程(Markov decisionprocess,MDP),即下一个状态仅依赖于上一个状态,与更远的过去无关。可用概率表示为:
P(sn|sn-1)=P(sn|sn-1,…,s0)
MDP是对完全可观测的环境进行描述的,也就是说观测到的状态内容完整地决定了决策的需要的特征。如果满足这个假设,则可以用概率模型P(s′|s,a)来描述状态变化,即在状态s下执行动作a,有相应的概率转移到状态s′。
该算法的主要思想是将状态与动作构建出一张Q值表,通过学习进行更新,然后根据Q值选取在当前状态下获得最大收益的动作。在Q值表完成更新后,维护和查表的开销都极小,符合嵌入式系统对性能的苛刻要求。
定义π(a|s)为在状态s下采取动作a的策略,R(s′|s,a)表示在状态s下采取动作a并转移到状态s′获得的奖励reward。则目标是求出使累计奖励最大的策略,即:
其中γ是衰变值,γ越接近1代表越重视后续状态,越接近0代表越侧重于当前利益。
使用贝尔曼方程求解MDP的最佳决策序列,用状态值函数Vπ(s)评价当前状态,值函数由当前状态和后面的状态共同决定:
Vπ(s)=Eπ[rt+1+γ[rt+2+γ[…]]|St=s]
Vπ(s)=Eπ[rt+1+γV(s′)|St=s]
用V*(s)表示最优累积期望,可知:
V*(s)=maxπVπ(s)
相应地,Q-learning算法中Q值函数Q(s,a)有:
qπ(s,a)=Eπ[rt+1+γrt+2+γ2rt+3+…|At=a,St=s]
qπ(s,a)=Eπ[rt+1+γqπ(St+1,At)|At=a,St=s]
最优Q值Q*(s,a)=maxπQ*(s,a)有:
Q*(s,a)=∑s′P(s′|s,a)(R(s,a,s′)+γmaxa′Q*(s′,a′))
即得Q值计算公式:
根据以上推导可以进行学习,迭代更新Q值:
Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)-Q(s,a)]
其中α为学习率,用以控制更新的速度。
Q-learning是对时间差分法的一种改进(融合了蒙特卡洛和动态规划),能够进行离线学习(off-learning)。Q-learning并不完全遵循交互序列,在下一时刻就选择使价值最大的动作,从算法的思想上来说Q-learning结合了子部分的最优价值,希望每次学习都使用迭代累积的最优结果进行更新。这也给Q-learning算法带来了对动作后果过高估计的问题。由于它使用最优价值的动作,对没采样到的状态动作进行了忽视,这两者之间可能会产生较大误差。
本公开实施例提供的方案采用Q-learning学习与处理器运行参数控制相结合,以实现处理器动态控制。
本公开实施例提供一种处理器动态控制方法,如图1所示,包括:
步骤110,根据处理器的当前状态信息查找Q值表获取控制动作;
步骤120,根据所述控制动作对应的处理器运行参数调整所述处理器;
其中,所述Q值表根据Q-learning算法预先建立,所述Q值表对应的状态集为根据处理器状态信息划分的多种状态的集合,所述Q值表对应的动作集为将处理器的运行参数调整为不同目标运行参数的多种调整动作的集合
一些示例性实施例中,所述处理器包括:中央处理器CPU、微控制单元MCU、图形处理器GPU或嵌入式神经网络处理器NPU等。
一些示例性实施例中,处理器的运行参数包括:电压和/或频率;相应地,所述处理器动态控制方案也称为处理器的动态电压频率调整DVFS方案。
一些示例性实施例中,处理器的运行参数包括:处理器进入和/或退出空闲idle状态的时间戳;相应地,所述处理器动态控制方案也称为处理器的IDLE方案。
一些示例性实施例中,所述状态信息包括:第一时长内活跃的处理器时钟周期数量;
所述Q值表对应的状态集中的多个状态分别对应于多个第一时长内活跃的处理器时钟周期数量区间。
即,状态集中的每一个状态对应第一时长内活跃的一个处理器时钟周期数量区间。
一些示例性实施例中,所述状态信息包括:第一时长内活跃的处理器时钟周期数量和第一时长内系统任务松弛度;
所述Q值表对应的状态集中的多个状态分别对应于第一时长内活跃的处理器时钟周期数量区间和第一时长内系统任务松弛度区间的多种组合。
即,状态集中的每一个状态对应第一时长内活跃的一个处理器时钟周期数量区间和第一时长内系统任务松弛度区间的组合。
需要说明的是,以CPU为例,第一时长内活跃的处理器时钟周期数量即为第一时长内活跃的CPU时钟周期数量。一些示例性实施例中,硬件电路将CPU的POWER_OFF/WFI/WFE(电源/Wait for interrupt,等待中断/Wait for event,等待事件)信号经过或门,再和CPU的时钟信号汇入与非门,最终连接计数器即可获得设定时长内活跃的CPU时钟周期数量。
一些示例性实施例中,所述第一时长内活跃的处理器时钟周期数量根据所述第一时长内所述处理器的电源信号(POWER_OFF)、等待中断信号(WFI)、等待事件(WFE)信号、所述处理器的时钟信号和计数器确定。
一些示例性实施例中,所述第一时长内活跃的处理器时钟周期数量根据以下方式确定:
所述第一时长内,所述处理器的电源信号、等待中断信号和等待事件信号输入或门,经或门后的输出信号与所述处理器的时钟信号汇入与非门,经与非门后的输出信号连接计数器,获得所述第一时长内活跃的处理器时钟周期数量。
需要说明的是,处理器处于活跃状态Active是指处理器的正常工作状态,指相比于其他低功耗待机状态而言的正常工作状态。以嵌入式系统为例,ARM架构有两个指令WFI/WFE可以上ARM内核立即进入低功耗待机模式,等待相关唤醒事件来唤醒。X86系统也有类似的低功耗待机(Low-power Standly)机制。在这些低功耗待机状态也成为非活跃状态Inactive。
相应地,第一时长内活跃的处理器时钟周期数量即第一时长内处理器处于正常工作状态的时钟周期的数量。
一些示例性实施例中,所述第一时长内活跃的处理器时钟周期数量区间根据以下方式划分:
其中,c为第一时长内活跃的处理器时钟周期数量,cb为处理器利用率为第一百分比时第一时长内活跃的处理器时钟周期的数量,Δc为处理器利用率变化第一百分比变化幅度时对应的第一时长内活跃的处理器时钟周期数量变化幅度,d为大于或等于1的整数。
一些示例性实施例中,d=4,所述第一时长内活跃的处理器时钟周期数量区间根据以下方式划分:
一些示例性实施例中,第一百分比为50%;本领域技术人员还可以设定其他数值。
一些示例性实施例中,第一百分比变化幅度为10%,表示处理器利用率变化幅度为10%;本领域技术人员还可以设定其他数值。
一些示例性实施例中,根据上述区间划分方式确定的Q值表对应的状态集S记为S{C}。本领域技术人员还可以采用其他的数量区间划分标准,其中,区间数量,区间边界均可以根据所需控制的处理器的特性对应调整,不限于本公开实施例所示例的方面。
一些示例性实施例中,所述第一时长内系统任务松弛度区间根据以下方式划分:
其中,L为第一时长内系统任务松弛度,a,b为正整数,a大于b。
一些示例性实施例中,a=30,b=5,相应地,所述第一时长内系统任务松弛度区间根据以下方式划分:
其中,L为第一时长内系统任务松弛度。
本领域技术人员还可以采用其他的区间划分标准对系统任务松弛度L进行区间划分,其中,区间数量,区间边界均可以根据所需控制的处理器的特性对应调整,不限于本公开实施例所示例的方面。
需要说明的是,相关方案中任务松弛时间slack time,以时间为单位,例如,一个任务在200ms时必须完成,而它本身所需的运行时间为100ms,因此,调度程序必须在100ms之前调度该任务执行,该任务的松弛时间为100ms。本公开实施例中任务松弛度Laxity表示松弛时间占总截止时间的百分比,例如,个任务在200ms时必须完成,而它本身所需的运行时间为100ms,因此,调度程序必须在100ms之前调度该任务执行,该任务的松弛时间为100ms,该任务的任务松弛度为100/200=50%。又如,另一任务在400ms时必须完成,它本身需要运行150ms,则其松弛时间为250ms,松弛度为250/400=62.5%。
第一时长内系统任务松弛度是指第一时长内全部或部分任务的松弛度平均松弛度,或者加权平均松弛度。其中,部分任务可以是全部系统中预设类型的任务,或者,全部系统任务中预设比例的系统任务。
如果处理器进行了DVFS调整,会导致原本需要100ms可以完成的任务,调整后需要150ms才能完成,则调度程序必须在50ms之前调度该任务执行,该任务的松弛时间变为50ms,该任务的任务松弛度为50/200=25%。可以看到,第一时长内系统任务松弛度可以表征处理器的状态。
需要说明的是,第一时长也称为观测周期,即以第一时长为周期,统计活跃的处理器时钟周期数量和/或系统任务松弛度。
一些示例性实施例中,根据上述区间划分方式确定的Q值表对应的状态集S记为S{C,L}。
一些示例性实施例中,Q值表对应的动作集合中的多个动作分别对应多个目标运行参数。执行某一动作就是将所述处理器的运行参数调整对该动作对应的目标运行参数。
一些示例性实施例中,CPU的运行参数包括:电压和频率;则动作集A为CPU可选的(可配置)的电压频率组合A{v,f}。
一些示例性实施例中,可选的电压、频率各有四档时,在状态集为S{C}的情况下,Q值表的大小为:|S{C}|×|A{v,f}|=160;在状态集为S{C,L}的情况下,Q值表的大小为:|S{C,L}|×|A{v,f}|=800。
一些示例性实施例中,步骤110中根据处理器的当前状态信息查找Q值表获取控制动作包括:
根据处理器的当前状态信息确定对应在所述Q值表的状态集中的状态;
根据所确定的状态查找所述Q值表获取最大Q值对应的动作作为所述控制动作。
其中,最大Q值对应的动作也称为该状态对应的最优动作。
一些示例性实施例中,以DVFS方案为例,根据所确定的状态查找所述Q值表获取最大Q值对应的动作,该动作为当前状态下的最优选的动作,对应一个电压频率组合A{v,f},也称为目标电压频率;执行此动作,所述处理器的电压和频率分别调整为v,f。
可以看到,根据本公开实施例提供的处理器动态控制方案,可以利用通过强化学习已建立的Q值表,确定控制动作,进一步对控制器的运行参数进行调整,达到成控制目标。该控制过程,所利用的Q值表数据量不大,查表开销较小,也无需复杂计算,实现该控制方案的资源需求较小,控制延时短,这对于计算资源有限或性能要求苛刻的嵌入式系统都能满足使用。
一些示例性实施例中,所述方法还包括:
步骤130,在满足更新条件的情况下,执行Q值更新算法更新所述Q值表。
一些示例性实施例中,所述满足更新条件,至少包括以下之一:
在所述处理器运行期间,设定的更新周期到来时,即满足更新条件;
在所述处理器运行期间,设定的触发事件发生时,即满足更新条件;
一些示例性实施例中,触发事件至少包括以下之一:
两次控制动作对应的运行参数变化幅度大于设定阈值;
处理器的占用率低于设定阈值。
根据上述示例,本领域技术人员还可以设定其他更新条件和/或触发事件,不限于本公开实施例示例的方面。
需要说明的是,根据步骤130,可以对初始的Q值表,在测试环境下进行控制测试,以完成Q-learning算法的初步学习过程,建立可用于步骤110的Q值表;还可以在处理器的非测试态的正常运行和控制过程中,在满足更新条件时执行,持续学习,进一步更新Q值表,使其Q值表更贴近处理器运行环境现状,进而保障基于更新后的Q值表执行的控制方案更加合理。步骤130中更新所述Q值表的过程,也称为Q-learning学习过程,或Q-learning学习阶段。
一些示例性实施例中,如图2所示,步骤130中根据以下方法执行Q值更新算法更新所述Q值表:
步骤1301,确定第二时长内活跃的处理器时钟周期数量的统计值;
步骤1302,根据所述统计值确定对应在所述Q值表的状态集中的状态;
步骤1303,根据所述状态和所述Q值表,采用∈-greedy算法确定开发或探索对应的动作;
步骤1304,执行所述开发或探索对应的动作,调整所述处理器的运行参数,并获得环境奖励;
步骤1305,根据所述环境奖励更新所述Q值表。
需要说明的是,第二时长也称为统计时长,即表示一个统计周期的时长,对第二时长所包括的各观测周期(第一时长)得到的数据进行统计,得到对应的统计值。
一些示例性实施例中,所述确定第二时长内活跃的处理器时钟周期数量的统计值,包括:
根据以下方式确定所述统计值:
其中,为第t个统计周期内活跃的处理器时钟周期数量的平均数,ct为第t个统计周期内最后一个第一时长内活跃的处理器时钟周期数量,为所述统计值,β为加权系数,一个统计周期的时长为第二时长,所述第二时长大于或等于所述第一时长。
一些示例性实施例中,第二时长=n*第一时长,n为大于1的整数。
需要说明的是,加权系数β为可变超参数值,本质是以指数式递减加权的移动平均,使得越近期的数据权重越大。
一些示例性实施例中,统计值可以是多个第一时长内过活跃的处理器时钟周期数量的平均值;也可以是多个第一时长内过活跃的处理器时钟周期数量的指数加权平均值。可以看到,在学习阶段基于处理器时钟周期数量的统计值来确定对应在Q值表中的状态,进而基于此状态确定控制动作,并执行控制,再获取环境奖励,并更新Q值表,使得Q值表中的Q值可根据过去发生的多个事件进行的学习,可以利用周期性的负载变化和对应的控制事件进行学习,使得学习成果(Q值表)更优化。在控制方案运行期间,仍可以自适应地进行学习,持续提升学习效果。
一些示例性实施例中,在MSEt>(1+λ)MSEref-new的情况下,所述加权系数β为1;
其中,
1>λ>0为限定误差范围的常数,MSEref-old初始值为0。
需要说明的是,在学习过程中很重要的一个点是处理负载的突变,以求更快的响应速度,上述统计值计算方法中设置β为动态变化的参数,基于平均平方误差(mean squareerror,MSE)修改:
如果MSEt>(1+λ)MSEref-new,则β←1。
可以看到,在计算处理器时钟周期数量的统计值时,如果确定MSEt>(1+λ)MSEref-new,则表明存在负载突变的情况,则重置加权系数β,修改参数β为1,使得最近(最后)一个第一时长内的时钟周期数量ct权重最重。
一些示例性实施例中,步骤1302中根据所述统计值确定对应在所述Q值表的状态集中的状态,包括:
在所述Q值表对应的状态集中的多个状态分别对应于多个第一时长内活跃的处理器时钟周期数量区间的情况下,根据所述统计值确定处理器时钟周期数量区间,根据该处理器时钟周期数量区间确定对应状态。
一些示例性实施例中,步骤1302中根据所述统计值确定对应在所述Q值表的状态集中的状态,包括:
在所述Q值表对应的状态集中的多个状态分别对应于第一时长内活跃的处理器时钟周期数量区间和第一时长内系统任务松弛度区间的多种组合的情况下,根据所述统计值确定处理器时钟周期数量区间,根据最近一个第一时长内系统任务松弛度确定任务松弛度区间,根据该处理器时钟周期数量区间和任务松弛度区间确定对应状态。
一些示例性实施例中,所述环境奖励rt根据以下公式计算:
rt=k(|Lt+1|-|Lt|)
其中,k为常数,rt为第t个统计周期的环境奖励,Lt表示第t个统计周期内系统任务松弛度,Lt+1表示第t+1个统计周期内系统任务松弛度;一个统计周期的时长为第二时长,所述第二时长大于或等于所述第一时长。
一些示例性实施例中,k为非负数。一些示例性实施例中,k为2的倍数。
其中,Lt的计算方法与前述第一时长内系统任务松弛度L的计算方法一致。
一些示例性实施例中,环境奖励rt根据所述处理器的负载百分比变化来计算。例如,在状态集未引入松弛度的情况下,可以采用该方式确定环境奖励。
一些示例性实施例中,所述环境奖励rt根据以下公式计算:
rt=m(Loadt+1-Loadt)
其中,m为常数,rt为第t个统计周期的环境奖励,Loadt表示第t个统计周期内系统负载百分比,Loadt+1表示第t+1个统计周期内系统负载百分比;一个统计周期的时长为第二时长,所述第二时长大于或等于所述第一时长。
一些示例性实施例中,m为非负数。一些示例性实施例中,m为2的倍数。
需要说明的是,根据环境奖励,利用Q值函数计算新的Q值,并对应更新Q值表的具体方面,本领域技术人员根据Q-learning算法的相关方面实施即可,不属于本公开限定或保护的范围。
一些示例性实施例中,学习过程中,步骤1303中策略的需要权衡开发(exploit)与探索(explore)。探索是找到关于环境的更多信息。开发是利用已知信息来得到最多的奖励。目标是将预期累积奖励最大化,但它有时候会陷入一种局部最优的困境,所以需要适时跳出局部最优解,寻找新的平衡。
一些示例性实施例中,开发指选择最大化当前期望收益,探索则是随机选择。这里采用∈-greedy算法:
A*←maxaQ(s,a)
根据∈-greedy算法确定开发或探索对应的动作;
如果步骤1303根据∈-greedy算法确定的是开发对应的最优动作,则步骤1304就执行该开发对应的最优动作,调整处理器的运行参数,并计算环境奖励;如果步骤1303根据∈-greedy算法确定的是探索对应的随机动作,则步骤1304就执行该探索对应的随机动作,调整处理器的运行参数,并计算环境奖励。可以看到,学习过程中利用探索能够更全面的进行强化学习,使不断更新的Q值表达到最优学习效果。
一些示例性实施例中,探索下也可以采用其他方式选定动作,不限于上述示例的随机选择方式。
一些示例性实施例中,步骤130中执行Q值更新算法更新所述Q值表,如图3所示,包括:
步骤130-1,判断是否存在负载突变?如果存在则执行步骤130-2,不存在则执行步骤130-3;
步骤130-2,重置加权系数β为1;
步骤130-3,计算第二时长内活跃的处理器时钟周期数量的统计值;
步骤130-4,根据所述统计值确定对应在Q值表的状态;
步骤130-5,根据采用∈-greedy算法确定开发或探索对应的动作;
步骤130-6,开发,则查表获取最优动作;
步骤130-7,执行最优动作,调整所述处理器的运行参数,并获得环境奖励;
步骤130-8,探索,则获取随机动作;
步骤130-9,执行随机动作,调整所述处理器的运行参数,并获得环境奖励;
步骤130-10,根据所获取的环境奖励更新Q值表。
一些示例性实施例中,所述方法可用于CPU idle的决策,根据CPUidle方案的控制参数,以及对应的控制效果评价,建立对应的状态集、动作集,以及修订环境奖励计算方案,即可实现CPU idle控制方案。
进一步地,CPU idle(空闲)和DVFS相结合,通过升频在短时间高功耗地完成任务后,系统进入长期的idle状态来实现总的功耗最低。让系统可以自适应地寻找到idle和DVFS的平衡点,以达到最佳的节能效果。
本公开实施例还提供一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例中所述的处理器动态控制方法。
本公开实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一实施例中所述的处理器动态控制方法。
可以看到,本公开实施例中提出了一种基于强化学习的DVFS算法,相比传统的电源管理策略更加智能,使得嵌入式系统可以在运行中自适应地调整调频策略,对于规律性的变化能够超前应对能够实现一定的预测性,更好地适应负载变化;能够利用上过去的调频信息,减少重复计算,做出调频决策的开销更小,延时更低,提高系统的实时性,相比传统的机器学习策略对负载的变化响应更快,平均能够节省20%的能源消耗。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种处理器动态控制方法,其特征在于,包括:
根据处理器的当前状态信息查找Q值表获取控制动作;
根据所述控制动作对应的处理器运行参数调整所述处理器;
其中,所述Q值表根据Q-learning算法预先建立,所述Q值表对应的状态集为根据处理器状态信息划分的多种状态的集合,所述Q值表对应的动作集为将处理器的运行参数调整为不同目标运行参数的多种调整动作的集合。
2.如权利要求1所述的方法,其特征在于,
所述状态信息包括:第一时长内活跃的处理器时钟周期数量;
所述Q值表对应的状态集中的多个状态分别对应于多个第一时长内活跃的处理器时钟周期数量区间。
3.如权利要求1所述的方法,其特征在于,
所述状态信息包括:第一时长内活跃的处理器时钟周期数量和第一时长内系统任务松弛度;
所述Q值表对应的状态集中的多个状态分别对应于第一时长内活跃的处理器时钟周期数量区间和第一时长内系统任务松弛度区间的多种组合。
4.如权利要求1-3任一项所述的方法,其特征在于,
所述根据处理器的当前状态信息查找Q值表获取控制动作,包括:
根据所述当前状态信息确定对应在所述Q值表的状态集中的状态;
根据所确定的状态查找所述Q值表获取最大Q值对应的动作作为所述控制动作。
5.如权利要求1-3任一项所述的方法,其特征在于,
所述方法还包括:
在满足更新条件的情况下,根据以下方法执行Q值更新算法更新所述Q值表:
确定第二时长内活跃的处理器时钟周期数量的统计值;
根据所述统计值确定对应在所述Q值表的状态集中的状态;
根据所述状态和所述Q值表,采用∈-greedy算法确定开发或探索对应的动作;
执行所述开发或探索对应的动作,调整所述处理器的运行参数,并获得环境奖励;
根据所述环境奖励更新所述Q值表。
7.如权利要求5所述的方法,其特征在于,
所述环境奖励rt根据以下公式计算:
rt=k(|Lt+1|-|Lt|)
其中,k为常数,rt为第t个统计周期的环境奖励,Lt表示第t个统计周期内系统任务松弛度,Lt+1表示第t+1个统计周期内系统任务松弛度;一个统计周期的时长为第二时长,所述第二时长大于或等于所述第一时长;
或者,
所述环境奖励rt根据以下公式计算:
rt=m(Loadt+1-Loadt)
其中,m为常数,rt为第t个统计周期的环境奖励,Loadt表示第t个统计周期内系统负载百分比,Loadt+1表示第t+1个统计周期内系统负载百分比。
8.如权利要求1-3任一项所述的方法,其特征在于,
所述处理器的运行参数包括:电压和/或频率。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一项所述的处理器动态控制方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一项所述的处理器动态控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288651.1A CN113946428B (zh) | 2021-11-02 | 2021-11-02 | 一种处理器动态控制方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288651.1A CN113946428B (zh) | 2021-11-02 | 2021-11-02 | 一种处理器动态控制方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113946428A true CN113946428A (zh) | 2022-01-18 |
CN113946428B CN113946428B (zh) | 2024-06-07 |
Family
ID=79337400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111288651.1A Active CN113946428B (zh) | 2021-11-02 | 2021-11-02 | 一种处理器动态控制方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946428B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115766453A (zh) * | 2022-12-07 | 2023-03-07 | 中国工商银行股份有限公司 | 报警系统配置方法、装置、设备、介质及产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01279314A (ja) * | 1988-05-02 | 1989-11-09 | Nec Corp | 前置通信処理装置の運転方式 |
JP2011030404A (ja) * | 2009-06-22 | 2011-02-10 | Felica Networks Inc | 情報処理装置、プログラム、および情報処理システム |
CN107367929A (zh) * | 2017-07-19 | 2017-11-21 | 北京上格云技术有限公司 | 更新q值矩阵的方法、存储介质和终端设备 |
CN108924944A (zh) * | 2018-07-19 | 2018-11-30 | 重庆邮电大学 | 基于Q-learning算法的LTE与WiFi共存竞争窗口值的动态优化方法 |
CN109974737A (zh) * | 2019-04-11 | 2019-07-05 | 山东师范大学 | 基于安全疏散标志和强化学习结合的路径规划方法及系统 |
CN110025959A (zh) * | 2019-01-25 | 2019-07-19 | 清华大学 | 用于控制智能体的方法和设备 |
CN110968458A (zh) * | 2019-11-26 | 2020-04-07 | 山东大学 | 一种面向非易失处理器的基于增强学习的备份系统及方法 |
CN112905315A (zh) * | 2021-01-29 | 2021-06-04 | 北京邮电大学 | 移动边缘计算mec网络中的任务处理方法、装置及设备 |
-
2021
- 2021-11-02 CN CN202111288651.1A patent/CN113946428B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01279314A (ja) * | 1988-05-02 | 1989-11-09 | Nec Corp | 前置通信処理装置の運転方式 |
JP2011030404A (ja) * | 2009-06-22 | 2011-02-10 | Felica Networks Inc | 情報処理装置、プログラム、および情報処理システム |
CN107367929A (zh) * | 2017-07-19 | 2017-11-21 | 北京上格云技术有限公司 | 更新q值矩阵的方法、存储介质和终端设备 |
CN108924944A (zh) * | 2018-07-19 | 2018-11-30 | 重庆邮电大学 | 基于Q-learning算法的LTE与WiFi共存竞争窗口值的动态优化方法 |
CN110025959A (zh) * | 2019-01-25 | 2019-07-19 | 清华大学 | 用于控制智能体的方法和设备 |
CN109974737A (zh) * | 2019-04-11 | 2019-07-05 | 山东师范大学 | 基于安全疏散标志和强化学习结合的路径规划方法及系统 |
CN110968458A (zh) * | 2019-11-26 | 2020-04-07 | 山东大学 | 一种面向非易失处理器的基于增强学习的备份系统及方法 |
CN112905315A (zh) * | 2021-01-29 | 2021-06-04 | 北京邮电大学 | 移动边缘计算mec网络中的任务处理方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
ZHIYUAN YANG 等: "Phase-driven learning-based dynamic reliability management for multi-core processors", 《2017 54TH ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC)》, 9 October 2017 (2017-10-09), pages 1 - 6 * |
余涛 等: "基于Q学习的互联电网动态最优CPS控制", 《中国电机工程学报》, 7 July 2010 (2010-07-07), pages 13 - 19 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115766453A (zh) * | 2022-12-07 | 2023-03-07 | 中国工商银行股份有限公司 | 报警系统配置方法、装置、设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN113946428B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960395A (zh) | 资源调度方法和计算机设备 | |
US11422607B2 (en) | Terminal and method for managing the same | |
US9285855B2 (en) | Predicting future power level states for processor cores | |
Mannor et al. | Online Learning with Sample Path Constraints. | |
US7904287B2 (en) | Method and system for real-time prediction of power usage for a change to another performance state | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
US20130290758A1 (en) | Sleep mode latency scaling and dynamic run time adjustment | |
CN101211215A (zh) | 管理数据处理设备中的处理器的性能 | |
US20130097415A1 (en) | Central Processing Unit Monitoring and Management Based On A busy-Idle Histogram | |
CN103890694A (zh) | 基于任务紧急性来管理时钟速率的系统和方法 | |
Dey et al. | User interaction aware reinforcement learning for power and thermal efficiency of CPU-GPU mobile MPSoCs | |
CN109117255A (zh) | 基于强化学习的异构多核嵌入式系统能耗优化调度方法 | |
WO2017184347A1 (en) | Adaptive doze to hibernate | |
US11460905B2 (en) | Frequency scaling responding to a performance change method and apparatus and computer-readable storage medium | |
US11640195B2 (en) | Service-level feedback-driven power management framework | |
Huang et al. | Double-Q learning-based DVFS for multi-core real-time systems | |
CN113946428B (zh) | 一种处理器动态控制方法、电子设备和存储介质 | |
US20160091949A1 (en) | Performance management for a multiple-cpu platform | |
CN115705275A (zh) | 参数获取方法、装置以及电子设备 | |
Triki et al. | Reinforcement learning-based dynamic power management of a battery-powered system supplying multiple active modes | |
Zhou et al. | CPU frequency scheduling of real-time applications on embedded devices with temporal encoding-based deep reinforcement learning | |
Chen et al. | Data center optimal regulation service reserve provision with explicit modeling of quality of service dynamics | |
CN115145383A (zh) | 一种面向cpu/gpu服务器的自适应节能选择方法 | |
CN109643151A (zh) | 用于降低计算设备功耗的方法和设备 | |
Carraro et al. | Performance and Energy Savings Trade-Off with Uncertainty-Aware Cloud Workload Forecasting |
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 |