一种调频方法、装置及电子设备与流程

文档序号:30089216发布日期:2022-05-18 07:59阅读:75来源:国知局
一种调频方法、装置及电子设备与流程

1.本发明涉及电子技术领域,特别是涉及一种调频方法、装置及电子设备。


背景技术:

2.现代科技发展越来越快,尤其是电子设备,例如智能手机、平板电脑等移动终端的兴起,导致与之对应的应用程序,例如聊天程序、游戏程序等程序的快速发展,其功耗要求越来越大,而电子设备的电池却难以满足长时间持续的大功耗要求。
3.为了降低电子设备的功耗,通常通过调整各个器件或模块的频率来实现,例如:cpu、ddr、gpu等运算资源,现有技术一般通过多个器件或模块进行投票的方式来决定频率,或者,通过利用窗口的方式来决定负载,再由负载来确定是否提高或降低频率。
4.发明人在实现本发明的过程中发现,现有技术的方案容易导致掉帧现象的出现,并且,功耗浪费的问题没有得到很好的解决。
5.有鉴于此,现有技术亟待改进。


技术实现要素:

6.本发明实施例旨在提供一种调频方法、装置及电子设备,其解决了目前调频出现掉帧以及功耗浪费的技术问题,实现在不掉帧的前提下节约功耗。
7.为解决上述技术问题,本发明实施例提供以下技术方案:
8.第一方面,本发明实施例提供一种调频方法,应用于电子设备,所述方法包括:
9.根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;
10.根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;
11.根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;
12.确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
13.在一些实施例中,所述根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载,包括:
14.对当前帧之前的至少一帧的负载状态求平均值,将所述平均值确定为当前帧的预测负载。
15.在一些实施例中,所述根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载,包括:
16.将所述负载状态划分为至少两个负载档位,建立负载档位模型;
17.确定当前帧之前的至少一帧中的每一帧对应的负载档位;
18.根据当前帧之前的至少一帧中的每一帧对应的负载档位,预测当前帧的预测负载
对应的负载档位;
19.根据所述当前帧的预测负载对应的负载档位,确定当前帧的预测负载。
20.在一些实施例中,所述根据当前帧之前的至少一帧中的每一帧对应的负载档位,预测当前帧的预测负载对应的负载档位,包括:
21.获取所述负载档位模型中与当前帧之前的至少一帧中的每一帧对应的负载档位相同的情况下,下一帧对应的负载档位的发生次数;
22.将发生次数最多的负载档位确定为当前帧的预测负载对应的负载档位。
23.在一些实施例中,所述根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载,包括:
24.训练一负载预测模型;
25.将所述当前帧之前的至少一帧的负载状态输入所述负载预测模型,输出当前帧的预测负载。
26.在一些实施例中,所述根据所述预测负载,预估当前线程基于至少一个模块的预设频点组合运行所需的运行时间,包括:
27.离线训练一性能模型,所述性能模型存储至少一个模块的预设频点组合与运行时间的对应关系;
28.根据所述至少一个模块的预设频点组合,基于所述性能模型,确定当前线程基于至少一个模块的预设频点组合运行所需的运行时间。
29.在一些实施例中,所述根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗,包括:
30.离线训练一功耗模型,所述功耗模型存储所述运行时间和至少一个功耗特征与功耗的对应关系;
31.根据所述运行时间和至少一个功耗特征,基于所述功耗模型,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗。
32.在一些实施例中,所述确定初始时间约束,包括:
33.在当前帧之前的预设时间段内,统计所述预设时间段内的每一帧的帧率;
34.计算所述预设时间段内的平均帧率;
35.若所述平均帧率小于期望帧率,则减少当前帧的上一帧的时间约束,以确定初始时间约束;
36.若所述平均帧率大于或等于期望帧率,则增加当前帧的上一帧的时间约束,以确定初始时间约束。
37.在一些实施例中,所述方法还包括:
38.将预设时间段划分为若干个时间片段;
39.统计所述预设时间段内的每一时间片段的平均帧率;
40.比较每一时间片段的平均帧率与期望帧率,确定每一时间片段的时间约束调整倾向,所述时间约束调整倾向包括增加时间约束或减少时间约束;
41.统计预设时间段内的每一时间约束调整倾向的数量,根据预设时间段内的每一时间约束调整倾向的数量,确定增加或减少当前帧的上一帧的时间约束,以确定当前帧的时间约束。
42.在一些实施例中,所述根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,包括:
43.动态调整所述初始时间约束,基于至少一个模块的预设频点组合集合,确定满足所述初始时间约束的第一频点组合集合;
44.根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于初始时间约束,并且功耗最小;
45.将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
46.在一些实施例中,所述方法还包括:
47.基于所述最佳频点组合运行当前帧,确定运行结果;
48.根据所述运行结果,调整所述初始时间约束,确定更新后的初始时间约束,以使所述当前帧的下一帧基于所述更新后的初始时间约束来确定对应的最佳频点组合。
49.在一些实施例中,所述运行结果包括帧长、cpu频率、gpu频率、ddr频率、掉帧情况、温度、电流中的至少一个。
50.在一些实施例中,所述负载状态包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个;
51.所述至少一个模块包括中央处理单元、图形处理单元、神经网络处理单元、用于存储所述当前帧的存储器中的至少一个;
52.所述至少一个功耗特征包括帧长、cpu频率、gpu频率、ddr频率、npu频率、温度、电量中的至少一个。
53.第二方面,本发明实施例提供一种调频装置,应用于电子设备,所述装置包括:
54.负载预测单元,用于根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;
55.运行时间单元,连接所述负载预测单元,用于根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;
56.功耗单元,连接所述运行时间单元,用于根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;
57.最佳频点组合单元,连接所述负载预测单元、运行时间单元以及功耗单元,用于确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
58.在一些实施例中,所述负载预测单元包括:
59.负载预测模型,所述负载预测模型用于获取当前帧之前的至少一帧的负载状态,并根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载。
60.在一些实施例中,所述运行时间单元包括:
61.性能模型,所述性能模型用于接收负载预测单元发送的预测负载,并根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一
预设频点组合运行所需的运行时间。
62.在一些实施例中,所述功耗单元,包括:
63.功耗模型,所述功耗模型用于接收所述性能模型发送的运行时间,并根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗。
64.在一些实施例中,所述最佳频点组合单元,包括:
65.时间约束模型,用于确定初始时间约束;
66.优化器,所述优化器用于根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
67.第三方面,本发明实施例提供一种电子设备,包括:
68.至少一个处理器;和
69.与所述至少一个处理器通信连接的存储器;其中,
70.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的调频方法。
71.第四方面,本发明实施例提供一种计算机可读存储介质,包括计算机程序,当所述计算机程序在计算机或处理器上运行时,使得所述计算机或处理器执行上述的调频方法。
72.本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种调频方法,应用于电子设备,所述方法包括:根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。通过初始时间约束和运行时间、功耗,基于至少一个模块的预设频点组合集合,确定所述至少一个模块对应的最佳频点组合,本发明实施例能够实现在不掉帧的前提下节约功耗。
附图说明
73.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
74.图1是本发明实施例提供的一种调频系统的结构示意图;
75.图2是本发明实施例提供的一种强化学习模型的示意图;
76.图3是本发明实施例提供的一种基于强化学习的改进模型的示意图;
77.图4是本发明实施例提供的一种调频方法的流程示意图;
78.图5是图4中的步骤s10的细化流程图;
79.图6是图5中的步骤s13的细化流程图;
80.图7是图4中的步骤s20的细化流程图;
81.图8是图4中的步骤s30的细化流程图;
82.图9是图4中的步骤s40的细化流程图;
83.图10是本发明实施例提供的一种调频装置的结构示意图;
84.图11是本发明实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
85.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
86.需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
87.对本发明进行详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
88.(1)fps(frame per second,fps):每秒显示帧数fps,是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。fps是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。
89.(2)efps(expected frames per second,efps):期望帧率,每款游戏或应用程序,都有自己期望的fps(例如游戏《王者荣耀》目前即有两种efps设定可选择:30与60)。一般而言游戏或应用程序在执行时,fps等于efps;但若当前的负载过重,则fps可能小于efps,例如王者荣耀设定efps=60时,fps可能在56-60之间震荡。
90.(3)e-period(expected period、expected frame length,e-period):期望帧长,为1/efps。例如:60fps的游戏,e-period约为16.667ms。
91.(4)帧长(frame length):游戏的画面更新时间间隔,可粗估为1/fps。
92.(5)长帧(long frame):指某帧的帧长大于期望帧长(e-period)。
93.(6)短帧(short frame):指某帧的帧长小于期望帧长(e-period)。
94.(7)超长帧(very long frame):指某帧的帧长远大于e-period,例如帧长为两倍大以上时,此时通常会让用户明显感觉到卡顿。
95.(8)掉帧(jank):当fps小于efps时,即称为掉帧。当efps与fps差距越大,亦称为fps抖动越大,此时用户会明显感觉到卡顿。
96.(9)gpu绘图api:android手机中的利用gpu画图的绘图函数库。
97.(10)绘图线程(render thread):负责绘图使用绘图函式库,因直接呼叫绘图函式,故最容易被辨识为绘图线程。
98.(11)控制线程(control thread):负责叫醒绘图线程、与控制帧长,主要功能为控
制帧率,间接控制绘图线程的绘图开始时间。此线程因没有直接呼叫绘图函数库,故比较难被识别出。
99.(12)运行时间(runtime):在硬件效能充沛,或游戏对性能需求不高的状况下,通常runtime小于或等于frame length。以efps=40的游戏来举例,每帧的帧长是25ms,但游戏本身可能只跑15ms,剩下的10ms会是睡眠时间。另外,绘图线程与控制线程都分别有自己不同的runtime;但帧长(frame length)当下只会有一个。
100.(13)系统调频:指手机原生内建的cpu、ddr调频策略。原本的调频策略为了通用,也通常会留一些性能的余裕,即:系统会使用比原本恰能在e-period内跑完的cpu、ddr频率,再高一点的频率来运行。
101.(14)窗口:用来统计监测线程负载的时间长短单位。
102.(15)离线(off-line)学习:即线下学习,指的是开发人员在开发时,直接分析数据,并用该数据来训练模型。在此阶段学习的好处是开发人员能大幅对模型进行优化。但若算法中使用太多的线下学习,则容易造成游戏或应用一改版,就必须要线下人员重新调整,其泛用性没有在线学习高。
103.(16)在线(on-line)学习:即线上学习,当游戏或应用在电子设备上运行时,实时做模型的训练与调整。在此过程,开发人员无法时刻紧盯、优化学习的成果。模型只能从开发人员原先规划好的步骤与流程学习。但若在线学习能得到不错的效果,则能相当泛用,使得模型不必因为游戏或应用改版,而重新回到线下训练。
104.在现有的技术方案中,各个运算资源(如:cpu、ddr、gpu、npu)频率的选择都是互相独立的。在cpu的频率选择上,不管是传统的dvfs或是后来提出的eas,大体上来说都还是利用窗口的方式来决定负载,再利用负载来决定是否提高目前的频率。在经验法则下,目前cpu频率的技术方案选择了以1.25倍效能来预防任务负载的波动。
105.在电子设备,例如智能手机中,多个器件或模块(cpu、gpu、modem)都会同时使用到双倍速率存储器(double data rate,ddr),因此ddr频率的选择依靠各个模块投票,并取最高频率者。智能手机原生的cpu、ddr调频策略为了通用,也通常会留一些性能的余裕。但具有性能余裕的同时,也代表了功耗浪费。在系统里多个器件对ddr频率投票,并取频率最高者时,某些器件可能会夸大自己需要的ddr频率,造成投票出的ddr频率偏高,导致功耗的浪费。
106.另外,原生ddr的频率选择和cpu的频率选择是互相独立的。但其实ddr频率与cpu频率存在着某种偶合关系:在某些时刻,“低频率ddr与高频率cpu”与“高频率ddr与低频率cpu”,可能都能让游戏不掉帧;但两者比较之下,可能前者较能节省到功耗(依实际测量出来决定),因此单纯对cpu频率或ddr频率进行调整,容易导致功耗的浪费。
107.基于上述问题,本发明实施例提出一种调频方法,在不掉帧的前提下,实现最低功耗的至少一个模块的最佳频点组合。
108.具体地,下面以电子设备为智能手机为例对本发明实施例作具体阐述。
109.请参阅图1,图1是本发明实施例提供的调频系统的结构示意图;
110.如图1所示,该调频系统100,应用于电子设备,例如智能手机,该调频系统为所述电子设备的硬件系统架构,该调频系统100包括:中央处理单元110、图形处理单元120、存储器130、神经网络处理单元140、总线150以及硬件加速器160。
111.可以理解的是,所示调频系统100可以包括在一个或多个芯片中,从而形成一个电子系统。该系统可位于一个电子设备中,该电子设备可以是无线终端、有线终端、用户设备或无连接设备。例如,该电子设备可以是智能手机、个人计算机、平板电脑或游戏机等。
112.其中,所示的中央处理单元110,即(central processing unit,cpu),通过总线150与图形处理单元120、存储器130、神经网络处理单元140以及硬件加速器160连接。
113.其中,所示的图形处理单元120,即(graphics processing unit,gpu),通过总线150与中央处理单元110、存储器130、神经网络处理单元140以及硬件加速器160连接。
114.其中,所示的存储器130例如可以是ddr存储器,该存储器130可以用于存储调频系统100的程序代码和数据。存储器130通过总线150与中央处理单元110、图形处理单元120以及神经网络处理单元140连接。
115.其中,所示的神经网络处理单元140,即(network process units,npu),通过总线150与中央处理单元110、图形处理单元120、存储器130以及硬件加速器160连接。
116.可以理解的是,总线150可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等任一类型总线。所述总线150可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
117.其中,中央处理单元110、图形处理单元120以及神经网络处理单元140可以用于处理图像,中央处理单元110、图形处理单元120以及神经网络处理单元140可以为一个芯片上,并通过用于与所述芯片外部耦合的接口读取存储器130中存储的软件代码来实现相应的功能。该软件代码经由接口和总线150从存储器130被读入芯片内部并被中央处理单元110、图形处理单元120或神经网络处理单元140的至少一个使用。
118.其中,所示的硬件加速器160,通过总线150与中央处理单元110、图形处理单元120、存储器130以及神经网络处理单元140连接。该硬件加速器160可以包括专用集成电路(application-specific integratedcircuit,asic)),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
119.下面结合图1所示的调频系统100,以电子设备为智能手机为例进行详细阐述。
120.请参阅图2,图2是本发明实施例提供的一种强化学习模型的示意图;
121.如图2所示,该强化学习模型20,包括:agent21以及environment22。
122.其中,图示的environment22,即智能手机的内部环境,图示的agent21,即智能体,agent是必须经由学习的模型,agent通过接收state,即负载状态,从而做出action,即行动,所述action为至少一个模块的频点组合,图2中以所述至少一个模块包括cpu和ddr,所述频点组合为cpu frequency和ddr frequency,即cpu频率和ddr频率。
123.其中,所述state,即状态,本发明实施例中的状态指的是负载状态,图2中的状态包括处理当前帧所需要的指令数(instructions)、数据缓存缺失所发生的次数(cache miss)以及使用率(util),其中,该cache miss包括一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数,该util包括cpu使用率、gpu使用率以及npu使用率。
124.在本发明实施例中,所述负载状态还可以包括cpu频率、cpu频率、gpu频率、ddr频率、网络速度以及温度等电子设备的内部信息,即所述负载状态包括处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个。
125.如图2所示,environment将state,所述environment将所述state发送到agent,agent通过接收state,从而生成action,即推荐environment一组频点组合。在电子设备的系统,例如手机系统在以所述频点组合运行后,所跑出来的结果(如游戏是否因此而掉帧、是否因此而比之前节省更多功耗)会以reward(奖励)的形式传回给agent。
126.其中,该reward可能设计的方式包括:当游戏掉帧时,给予-1。当游戏没掉帧,且频率低于手机系统推荐的频率时,给予该频率的差当成reward(正面的奖励)。当游戏没掉帧,但与系统选的频率相等时,给予0。
127.本发明将所述强化学习模型称为model free模型,其中,所述model free模型的agent,通常必须用到强化学习中的tabular solution,比如monte carlo:
128.一开始的一段时间必须用随机试错的方式,尝试各种不同的频点组合,并将其结果记录到第一表格中,所述第一表格为一种高维度表格,所述第一表格包括每种state(si)与采取不同的action(aj)最后得到的reward。
129.在deploy期间,即配置频点组合期间,当发生state=si时,通过在该表格中寻找当si发生时,能得到最高报酬的action(ai*)。最终得到模型认为最好的cpu、ddr频率(i*,j*),此时的作法称为exploit。
130.其中,在deploy期间,有时可能因游戏场景改变,而改变了潜在最佳的action,因此必须有一个微小的机率来尝试其它action是否会得到更高的reward,此时的做法称为随机试错(explor),∈-贪婪算法(epsilon greedy)。
131.可以理解的是,由于表格是离散且个数有限的,但许多系统的状态是连续的,因此必须把这些系统的状态切分档位。例如:instructions的值域是[0,1e10],可以根据处理当前帧所需要的指令数(instructions),确定不同的负载档位,以方便建立所述第一表格:
[0132]
由于计算量不高,所述model free模型可以在线学习,由于是在线学习,因此可以不受运算芯片、游戏的影响。但是,在学习过程中,因为随机试错(explore)的关系,可能会导致掉帧明显、降低使用者体验。
[0133]
综上所述,若要克服上述缺点,则必须改为线下学习。但线下学习必须针对不同运算芯片、游戏、应用程序等,都必须有自己的model(即:高维度表格)。且游戏更新时,也必须跟着变更model。对于手机商来说,如果没有实时确定游戏或应用程序的更新信息,则可能影响用户体验。且因为要线下针对不同游戏、不同运算芯片训练不同模型,必须花费庞大的人力资源。
[0134]
承上,不论是在线或线下学习,都有其局限性。故本发明另外提出了以下的基于强化学习的改进模型,即model based模型,来避免上述的缺点。
[0135]
请参阅图3,图3是本发明实施例提供的一种基于强化学习的改进模型的示意图;
[0136]
如图3所示,该基于强化学习的改进模型30,包括:
[0137]
agent31,即智能体;
[0138]
environment32,即智能手机的内部环境;
[0139]
负载预测模型33,所述负载预测模型用于获取当前帧之前的至少一帧的负载状态,并根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载。
[0140]
性能模型34,所述性能模型用于接收负载预测单元发送的预测负载,并根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间tij。
[0141]
功耗模型35,所述功耗模型用于接收所述性能模型发送的运行时间,并根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗pij。
[0142]
optimizer36,即优化器,所述优化器用于根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
[0143]
在deploy时,即配置频点组合时,整体流程为:
[0144]
environment32将当前帧的之前的至少一帧的系统状态,即负载状态发送到agent31与负载预测模型33。
[0145]
负载预测模型33根据所述负载状态,生成预测负载,将其预测的负载输出给性能模型。其预测的负载包括处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个;
[0146]
性能模型34获取负载预测模型33预测出来的预测负载,估计当前线程的运行时间,例如游戏线程的运行时间runtime(tij)。其中tij代表通过至少一个模块的频点组合执行当前线程后的运行时间,例如:使用cpu频率i与ddr频率j执行游戏线程后的runtime。
[0147]
功耗模型35的输入为性能模型34发送的当前线程的运行时间tij和至少一个功耗特征,其中,所述功耗特征包括帧长、cpu频率、gpu频率、ddr频率、npu频率、温度、电量中的至少一个,所述功耗模型的输出为当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗pij,例如使用cpu频率i与ddr频率j执行游戏线程所需的功耗。
[0148]
optimizer36的输入为至少一个模块的预设频点组合集合的全部频点组合的tij、pij,例如:cpu、ddr的所有排列组合的tij、pij。
[0149]
optimizer从agent获得时间约束tc(time constraint,tc),并计算在不使游戏掉帧的情况下,功耗最小的至少一个模块对应的最佳频点组合,例如cpu、ddr频点组合(i*,j*)。
[0150]
其中,电子设备的系统,例如手机系统使用上述的最佳频点组合(i*,j*)执行一帧的游戏,并将运行结果(帧长、是否掉帧、温度、电流

等系统状态)反馈给agent,并让agent调整系统状态,即负载状态,以便下一帧能更准确的得到合理的时间约束tc。
[0151]
在本发明实施例中,所述智能体agent包括一时间约束模型(time constraint模型),其中,该时间约束模型与优化器(optimizer)、手机系统构成一个强化学习机制:
[0152]
agent观察手机的状态(如:前几帧的instructions、cache miss、cpu频率、ddr频率、gpu频率、温度、电流),采取action(输出tc,或修改前一刻的tc后输出)。optimizer依造
该tc,选出合适的频点组合,例如cpu频率与ddr频率,并推荐该频点组合给手机系统,使得手机系统在当前帧使用所述频点组合来运行。
[0153]
在当前帧结束时(即下一帧的开始时),可以知道以所述频点组合来运行是否掉帧,并将是否掉帧反馈给agent。agent接受反馈,调整系统状态后,再重复步骤,如此不断循环。
[0154]
其中,所述时间约束模型包括蒙特卡罗方法(monte carlo method)等统计方法构造的模型,也可能是使用人工神经网络模型(artificial neural networks)等。
[0155]
其中,所述优化器optimizer在得到合适的tc后,将通过公式(1)求解以下的约束优化(constraint optimization):
[0156]
argminp
ij s.t.t
ij
≤tc
ꢀꢀꢀ
公式(1)
[0157]
其中:
[0158]
i,j表示以cpu频率i和ddr频率j来运行游戏;
[0159]
pij表示以cpu频率i与ddr频率j来运行游戏时,所产生的功耗;
[0160]
tij表示以cpu频率i与ddr频率j来运行游戏时,所需要的运行时间runtime。
[0161]
可以理解的是,上式(1)相当于求解在满足不掉帧的条件下,功耗较小的cpu、ddr频点组合;
[0162]
从上式可看出,增加或减少tc,会改变能选的到的cpu、ddr频点。当tc越大,则满足该时间约束的tij越多,越低频率的cpu、ddr频点越可能被选择,因此,能节省越多的功耗。可以理解的是,增加tc可建议手机系统使用较低频的cpu、ddr,可视为建议手机系统减速;反之,减少tc则可视为对手机系统加速。
[0163]
请参阅图4,图4是本发明实施例提供的一种调频方法的流程示意图;
[0164]
如图4所示,该调频方法,包括:
[0165]
步骤s10:根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;
[0166]
具体的,所述负载状态包括处理当前帧所需要的指令数(instructions)、一级数据缓存缺失所发生的次数(l1 data cache misses)、二级数据缓存缺失所发生的次数(l2 data cache misses)、三级数据缓存缺失所发生的次数(l3 data cache misses)、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个;
[0167]
具体的,所述根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载,包括:
[0168]
对当前帧之前的至少一帧的负载状态求平均值,将所述平均值确定为当前帧的预测负载,其中,将所述平均值确定为当前帧的第一预测负载。
[0169]
具体的,确定当前帧之前的至少一帧中的每一帧的负载状态,对所述当前帧之前的至少一帧中的每一帧的负载状态求平均值,将所述平均值确定为当前帧的预测负载。可以理解的是,所述当前帧之前的至少一帧应为连续的多帧,以提高预测负载的准确性。
[0170]
具体的,请再参阅图5,图5是图4中的步骤s10的细化流程图;
[0171]
如图5所示,该步骤s10:根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载,包括:
[0172]
步骤s11:将所述负载状态划分为至少两个负载档位,建立负载档位模型;
[0173]
具体的,所述负载状态包括处理当前帧所需要的指令数(instructions),其中,所述指令数instructions的值域是[0,1e10],因此可以将所述处理当前帧所需要的指令数(instructions)划分为若干个负载档位,例如:根据指令数的数量,将所述指令数划分为5个负载档位,分别为:
[0174]
第一负载档位:[0,2e9]
[0175]
第二负载档位:[2e9,4e9]
[0176]
第三负载档位:[4e9,6e9]
[0177]
第四负载档位:[6e9,8e9]
[0178]
第五负载档位:[8e9,1e10]
[0179]
并根据所述负载档位,建立负载档位模型,其中,所述负载档位模型包括当前帧之前的至少一帧的负载档位以及当前帧之后的下一帧的负载档位,所述负载档位模型还包括当前帧之前的至少一帧中的每一帧对应的负载档位相同的情况下,下一帧对应的负载档位的发生次数,例如:当前帧之前的前三帧的负载档位分别为[3,5,4]时,当前帧为1的发生次数。可以理解的是,负载档位模型包括[k,3,5,4,i=1-5],其中,k为发生次数,i为负载档位,其取值可以为1到5,代表当前帧的负载档位。
[0180]
步骤s12:确定当前帧之前的至少一帧中的每一帧对应的负载档位;
[0181]
具体的,根据所述当前帧之前的至少一帧中的每一帧的指令数,确定当前帧之前的至少一帧中的每一帧对应的负载档位。
[0182]
步骤s13:根据当前帧之前的至少一帧中的每一帧对应的负载档位,预测当前帧的预测负载对应的负载档位;
[0183]
具体的,请再参阅图6,图6是图5中的步骤s13的细化流程图;
[0184]
如图6所示,该步骤s13:根据当前帧之前的至少一帧中的每一帧对应的负载档位,预测当前帧的预测负载对应的负载档位,包括:
[0185]
步骤s131:获取所述负载档位模型中与当前帧之前的至少一帧中的每一帧对应的负载档位相同的情况下,下一帧对应的负载档位的发生次数;
[0186]
具体的,所述负载档位模型包括当前帧之前的至少一帧中的每一帧对应的负载档位的发生次数,例如:当前帧之前的前三帧的负载档位分别为[3,5,4]时,当前帧为1的发生次数。
[0187]
步骤s132:将发生次数最多的负载档位确定为当前帧的预测负载对应的负载档位。
[0188]
具体的,若当前帧之前的前三帧的负载档位分别为[3,5,4]时,当前帧为1的发生次数最多,则确定当前帧的预测负载对应的负载档位为1。
[0189]
可以理解的是,在当前帧被处理完之后,所述负载档位模型将更新,例如:更新负载档位,并重新确定发生次数。
[0190]
步骤s14:根据所述当前帧的预测负载对应的负载档位,确定当前帧的预测负载。
[0191]
具体的,根据所述当前帧的预测负载对应的负载档位,将当前帧的预测负载确定为所述负载档位的中位数,例如:若当前帧的预测负载对应的负载档位为第一负载档位,而第一负载档位的值域为[0,2e9],则确定当前帧的预测负载对应的负载档位为第一负载档位的值域的中位数,即1e9,其中,根据所述当前帧的预测负载对应的负载档位,确定当前帧
的预测负载,将所述预测负载确定为第二预测负载。
[0192]
在本发明实施例中,所述根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载,包括:
[0193]
训练一负载预测模型;
[0194]
将所述当前帧之前的至少一帧的负载状态输入所述负载预测模型,输出当前帧的预测负载。
[0195]
具体的,通过获取预设时间段内的负载状态,将所述预设时间段内的负载状态作为训练集,训练一负载预测模型,所述负载预测模型可以为神经网络模型,例如长短期记忆网络(long short-term memory,lstm),将所述当前帧之前的至少一帧的负载状态作为测试集,将所述当前帧之前的至少一帧的负载状态输入所述负载预测模型,输出当前帧的预测负载。其中,将将所述当前帧之前的至少一帧的负载状态输入所述负载预测模型,输出当前帧的预测负载,所述预测负载为第三预测负载。
[0196]
在本发明实施例中,所述方法还包括:
[0197]
根据所述第一预测负载、第二预测负载以及第三预测负载,对所述第一预测负载、第二预测负载以及第三预测负载求平均值,将平均值作为最终的预测负载。
[0198]
通过多种方式分别确定预测负载,再将多种方式分别确定的预测负载作为最终的预测负载,本发明能够进一步提高预测负载的准确性。
[0199]
步骤s20:根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;
[0200]
具体的,请再参阅图7,图7是图4中的步骤s20的细化流程图;
[0201]
如图7所示,该步骤s20:根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间,包括:
[0202]
步骤s21:离线训练一性能模型,所述性能模型存储至少一个模块的预设频点组合与运行时间的对应关系;
[0203]
具体的,所述性能模型可以通过监督式学习(supervise learning)得到。可以理解的是,所述性能模型仅与电子设备的运算芯片有关,而与运行的游戏或应用程序无关,因此,所述性能模型可以通过离线训练或线下训练完成。也就是说,只有当电子设备的运算芯片被更换时,才需要重新训练所述性能模型。
[0204]
在本发明实施例中,所述性能模型包括机器学习模型、人工神经网络模型(artificial neural networks)、深度学习模型(deep learning model)、统计学习模型,例如线性回归模型(linear regression)、曲线拟合模型(curve fitting)中的一种或多种。
[0205]
步骤s22:根据所述至少一个模块的预设频点组合,基于所述性能模型,确定当前线程基于至少一个模块的预设频点组合运行所需的运行时间。
[0206]
具体的,所述性能模型的输入为负载预测模型所预测出的负载状态,包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个,所述性能模型的输出为当前线程的当前帧以至少一个模块的预设频点组合运行所需要的运行时间(runtime),例如所述性能模型的
输出为当前帧以cpu频率i与ddr频率j运行所需要的运行时间tij。
[0207]
步骤s30:根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;
[0208]
具体的,请再参阅图8,图8是图4中的步骤s30的细化流程图;
[0209]
如图8所示,该步骤s30:根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗,包括:
[0210]
步骤s31:离线训练一功耗模型,所述功耗模型存储所述运行时间和至少一个功耗特征与功耗的对应关系;
[0211]
其中,所述运行时间为上述的性能模型预测得到的运行时间,即所述至少一个模块以预设频点组合运行所需的运行时间,所述功耗特征包括帧长、cpu频率、gpu频率、ddr频率、npu频率、温度、电量中的至少一个,所述功耗特征为与功耗有关的特征,应当理解的是,在电子设备中的任何与功耗有关的特征,均可以被视为所述功耗特征,均属于本发明保护的范围。
[0212]
具体的,所述功耗模型可以通过监督式学习(supervise learning)得到。可以理解的是,所述功耗模型仅与电子设备的运算芯片有关,而与运行的游戏或应用程序无关,因此,所述功耗模型可以通过离线训练或线下训练完成。也就是说,只有当电子设备的运算芯片被更换时,才需要重新训练所述功耗模型。
[0213]
在本发明实施例中,所述功耗模型包括机器学习模型、人工神经网络模型(artificial neural networks)、深度学习模型(deep learning model)、统计学习模型,例如线性回归模型(linear regression)、曲线拟合模型(curve fitting)中的一种或多种。
[0214]
步骤s32:根据所述运行时间和至少一个功耗特征,基于所述功耗模型,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗。
[0215]
具体的,所述功耗模型的输入为所述运行时间和至少一个功耗特征,所述功耗模型的输出为当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗。
[0216]
步骤s40:确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
[0217]
具体的,所述确定初始时间约束,包括:
[0218]
在当前帧之前的预设时间段内,统计所述预设时间段内的每一帧的帧率;
[0219]
计算所述预设时间段内的平均帧率;
[0220]
若所述平均帧率小于期望帧率,则减少当前帧的上一帧的时间约束,以确定初始时间约束;
[0221]
若所述平均帧率大于或等于期望帧率,则增加当前帧的上一帧的时间约束,以确定初始时间约束。
[0222]
具体的,所述预设时间段可以人为设置,例如设置为半秒、一秒等,或者,通过帧数来确定所述预设时间段,例如:帧数为40帧,所述当前帧之前的预设时间段包括若干帧,通过统计所述若干帧的每一帧的帧率,并计算所述若干帧的平均帧率,将所述若干帧的平均
帧率作为所述预设时间段的平均帧率。
[0223]
其中,假设所述平均帧率为afps(average frames per second,afps),所述期望帧率,即efps(expected frames per second,efps),当afps<efps时,则减少当前帧的上一帧的时间约束tc,当afps≥efps时,则增加当前帧的上一帧的时间约束tc。
[0224]
在本发明实施例中,所述方法还包括:
[0225]
当所述平均帧率afps≈期望帧率efps,即所述平均帧率afps约等于期望频率efps时,此时通过试探性地增加时间约束tc,通过不同的参数配置来执行线程,所述参数配置即频点组合,并确定掉帧情形最小以及功耗最低的参数配置,即确定掉帧情形最小以及功耗最低的频点组合,从而确定掉帧情形最小以及功耗最低的频点组合对应的时间约束,将所述初始时间约束调整为所述掉帧情形最小以及功耗最低的频点组合对应的时间约束。
[0226]
在本发明实施例中,所述方法还包括:
[0227]
将预设时间段划分为若干个时间片段,统计所述预设时间段内的每一时间片段的平均帧率;
[0228]
比较每一时间片段的平均帧率与期望帧率,确定每一时间片段的时间约束调整倾向,所述时间约束调整倾向包括增加时间约束或减少时间约束;
[0229]
统计预设时间段内的每一时间约束调整倾向的数量,根据预设时间段内的每一时间约束调整倾向的数量,确定增加或减少当前帧的上一帧的时间约束,以确定当前帧的时间约束。
[0230]
具体的,将预设时间段划分为若干个时间片段,相当于将所述预设时间段划分为若干个小区间,每一小区间为一时间片段,每一时间片段的长度可以相等,也可以不等,在本发明实施例中,为了提高准确性,本发明中的每一时间片段的长度设置为相等。
[0231]
通过比较每一时间片段的平均帧率与期望帧率,确定每一时间片段的时间约束调整倾向,所述时间约束调整倾向包括增加时间约束或减少时间约束,相当于投票决定是否增加或减少时间约束;
[0232]
通过统计预设时间段内的每一时间约束调整倾向的数量,根据预设时间段内的每一时间约束调整倾向的数量,确定增加或减少当前帧的上一帧的时间约束,以确定当前帧的时间约束;
[0233]
具体的,若所述增加时间约束的数量大于所述减少时间约束的数量,则确定增加当前帧的上一帧的时间约束,将增加后的时间约束确定为当前帧的时间约束;若所述增加时间约束的数量小于所述减少时间约束的数量,则确定减少当前帧的上一帧的时间约束,将减少后的时间约束确定为当前帧的时间约束。其中,增加或减少的时间约束值由预设规则决定,例如所述预设规则包括:根据增加时间约束的数量与减少时间约束的数量的差值,比例确定增加或减少的时间约束值,则所述当前帧的时间约束=当前帧的上一帧的时间约束
±
增加或减少的时间约束值。
[0234]
在本发明实施例中,通过统计预设时间段内的帧率变化,试探性地增加或减少时间约束,本发明能够实现在不会大幅造成掉帧情况下,确定更好的时间约束,有利于在满足不掉帧前提下确定功耗更低的频点组合。
[0235]
在本发明实施例中,所述确定初始时间约束,还包括:
[0236]
根据当前帧之前的至少一帧的绘图线程的运行时间确定所述初始时间约束,或
者,根据当前帧对应的应用程序的经验值确定所述初始时间约束。
[0237]
请再参阅图9,图9是图4中的步骤s40的细化流程图;
[0238]
如图9所述,该步骤s40:根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,包括:
[0239]
步骤s41:动态调整所述初始时间约束,基于至少一个模块的预设频点组合集合,确定满足所述初始时间约束的第一频点组合集合;
[0240]
具体的,所述满足所述初始时间约束指的是基于预设频点组合运行当前帧的运行时间小于所述初始时间约束,通过动态调整所述初始时间约束,例如:增加或减少所述初始时间约束,确定更新后的初始时间约束,基于更新后的初始时间约束,从所述至少一个模块的预设频点组合集合中获取满足所述更新后的初始时间约束的第一频点组合集合。
[0241]
步骤s42:根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于初始时间约束,并且功耗最小;
[0242]
具体的,所述第一频点组合集合为满足所述初始时间约束的多个频点组合,通过预设条件对所述第一频点组合集合进行筛选,确定最佳频点组合。其中,所述预设条件包括所述运行时间小于或等于初始时间约束,并且功耗最小,相当于从所述第一频点组合集合中筛选运行时间小于或等于初始时间约束,并且功耗最小的频点组合,并将其确定为最佳频点组合。
[0243]
步骤s43:将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
[0244]
具体的,将所述第一频点组合集合中筛选运行时间小于或等于初始时间约束,并且功耗最小的频点组合,确定为所述至少一个模块对应的最佳频点组合,并将所述最佳频点组合推荐给电子设备的系统,例如手机系统,以使所述手机系统基于所述最佳频点组合运行当前帧。
[0245]
在本发明实施例中,所述方法还包括:
[0246]
基于所述最佳频点组合运行当前帧,确定运行结果;
[0247]
具体的,所述运行结果包括帧长、cpu频率、gpu频率、ddr频率、掉帧情况、温度、电流中的至少一个。
[0248]
根据所述运行结果,调整所述初始时间约束,确定更新后的初始时间约束,以使所述当前帧的下一帧基于所述更新后的初始时间约束来确定对应的最佳频点组合。
[0249]
具体的,根据所述运行结果,确定当前帧的负载状态,从而确定当前帧的下一帧的预测负载,并根据前帧的下一帧的预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;确定更新后的初始时间约束,以使所述当前帧的下一帧基于所述更新后的初始时间约束来确定对应的最佳频点组合。
[0250]
在本发明实施例中,通过提供一种调频方法,应用于电子设备,所述方法包括:根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少
一个模块的每一预设频点组合运行所产生的功耗;确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。通过初始时间约束和运行时间、功耗,基于至少一个模块的预设频点组合集合,确定所述至少一个模块对应的最佳频点组合,本发明实施例能够实现在不掉帧的前提下节约功耗。
[0251]
请再参阅图10,图10是本发明实施例提供的一种调频装置的结构示意图;
[0252]
如图10所示,该调频装置10,应用于电子设备,所述调频装置10,包括:
[0253]
负载预测单元101,用于根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;
[0254]
运行时间单元102,连接所述负载预测单元,用于根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;
[0255]
功耗单元103,连接所述运行时间单元,用于根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;
[0256]
最佳频点组合单元104,连接所述负载预测单元、运行时间单元以及功耗单元,用于确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
[0257]
在本发明实施例中,所述负载预测单元包括:
[0258]
负载预测模型,所述负载预测模型用于获取当前帧之前的至少一帧的负载状态,并根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载。
[0259]
在本发明实施例中,所述运行时间单元包括:
[0260]
性能模型,所述性能模型用于接收负载预测单元发送的预测负载,并根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间。
[0261]
在本发明实施例中,所述功耗单元,包括:
[0262]
功耗模型,所述功耗模型用于接收所述性能模型发送的运行时间,并根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗。
[0263]
在本发明实施例中,所述最佳频点组合单元,包括:
[0264]
时间约束模型,用于确定初始时间约束;
[0265]
优化器,所述优化器用于根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
[0266]
在本发明实施例中,所述负载预测单元,用于:
[0267]
对当前帧之前的至少一帧的负载状态求平均值,将所述平均值确定为当前帧的预测负载。
[0268]
在本发明实施例中,所述负载预测单元,还用于:
[0269]
将所述负载状态划分为至少两个负载档位,建立负载档位模型;
[0270]
确定当前帧之前的至少一帧中的每一帧对应的负载档位;
[0271]
根据当前帧之前的至少一帧中的每一帧对应的负载档位,预测当前帧的预测负载对应的负载档位;
[0272]
根据所述当前帧的预测负载对应的负载档位,确定当前帧的预测负载。
[0273]
在本发明实施例中,所述所述根据当前帧之前的至少一帧中的每一帧对应的负载档位,预测当前帧的预测负载对应的负载档位,包括:
[0274]
获取所述负载档位模型中与当前帧之前的至少一帧中的每一帧对应的负载档位相同的情况下,下一帧对应的负载档位的发生次数;
[0275]
将发生次数最多的负载档位确定为当前帧的预测负载对应的负载档位。
[0276]
在本发明实施例中,所述负载预测单元,还用于:
[0277]
训练一负载预测模型;
[0278]
将所述当前帧之前的至少一帧的负载状态输入所述负载预测模型,输出当前帧的预测负载。
[0279]
在本发明实施例中,所述运行时间单元,用于:
[0280]
离线训练一性能模型,所述性能模型存储至少一个模块的预设频点组合与运行时间的对应关系;
[0281]
根据所述至少一个模块的预设频点组合,基于所述性能模型,确定当前线程基于至少一个模块的预设频点组合运行所需的运行时间。
[0282]
在本发明实施例中,所述功耗单元,用于:
[0283]
离线训练一功耗模型,所述功耗模型存储所述运行时间和至少一个功耗特征与功耗的对应关系;
[0284]
根据所述运行时间和至少一个功耗特征,基于所述功耗模型,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗。
[0285]
在本发明实施例中,所述最佳频点组合单元,用于:
[0286]
在当前帧之前的预设时间段内,统计所述预设时间段内的每一帧的帧率;
[0287]
计算所述预设时间段内的平均帧率;
[0288]
若所述平均帧率小于期望帧率,则减少当前帧的上一帧的时间约束,以确定初始时间约束;
[0289]
若所述平均帧率大于或等于期望帧率,则增加当前帧的上一帧的时间约束,以确定初始时间约束。
[0290]
在本发明实施例中,所述最佳频点组合单元,用于:
[0291]
将预设时间段划分为若干个时间片段;
[0292]
统计所述预设时间段内的每一时间片段的平均帧率;
[0293]
比较每一时间片段的平均帧率与期望帧率,确定每一时间片段的时间约束调整倾向,所述时间约束调整倾向包括增加时间约束或减少时间约束;
[0294]
统计预设时间段内的每一时间约束调整倾向的数量,根据预设时间段内的每一时间约束调整倾向的数量,确定增加或减少当前帧的上一帧的时间约束,以确定当前帧的时
间约束。
[0295]
在本发明实施例中,所述最佳频点组合单元,用于:
[0296]
动态调整所述初始时间约束,基于至少一个模块的预设频点组合集合,确定满足所述初始时间约束的第一频点组合集合;
[0297]
根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于初始时间约束,并且功耗最小;
[0298]
将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
[0299]
在本发明实施例中,所述最佳频点组合单元,还用于:
[0300]
基于所述最佳频点组合运行当前帧,确定运行结果;
[0301]
根据所述运行结果,调整所述初始时间约束,确定更新后的初始时间约束,以使所述当前帧的下一帧基于所述更新后的初始时间约束来确定对应的最佳频点组合。
[0302]
在本发明实施例中,所述运行结果包括帧长、cpu频率、gpu频率、ddr频率、掉帧情况、温度、电流中的至少一个。
[0303]
在本发明实施例中,所述负载状态包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个;
[0304]
所述至少一个模块包括中央处理单元、图形处理单元、神经网络处理单元、用于存储所述当前帧的存储器中的至少一个;
[0305]
所述至少一个功耗特征包括帧长、cpu频率、gpu频率、ddr频率、npu频率、温度、电量中的至少一个。
[0306]
在本发明实施例中,通过提供一种调频装置,应用于电子设备,所述装置包括:负载预测单元,用于根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;运行时间单元,连接所述负载预测单元,用于根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;功耗单元,连接所述运行时间单元,用于根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;最佳频点组合单元,连接所述负载预测单元、运行时间单元以及功耗单元,用于确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。通过初始时间约束和运行时间、功耗,基于至少一个模块的预设频点组合集合,确定所述至少一个模块对应的最佳频点组合,本发明实施例能够实现在不掉帧的前提下节约功耗。
[0307]
请参阅图11,图11为本发明各个实施例的一种电子设备的硬件结构示意图;
[0308]
如图11所示,该电子设备11包括但不限于:射频单元111、网络模块112、音频输出单元113、输入单元114、传感器115、显示单元116、用户输入单元117、接口单元118、存储器119、处理器1110、以及电源1111等部件,所述电子设备还包括摄像头。本领域技术人员可以理解,图11中示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子
设备包括但不限于电视机、手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
[0309]
处理器1110,用于根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载;根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间;根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗;确定初始时间约束,根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
[0310]
在本发明实施例中,通过初始时间约束和运行时间、功耗,基于至少一个模块的预设频点组合集合,确定所述至少一个模块对应的最佳频点组合,本发明实施例能够实现在不掉帧的前提下节约功耗。
[0311]
应当理解的是,本发明实施例中,射频单元111可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器1110处理;另外,将上行的数据发送给基站。通常,射频单元111包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元111还可以通过无线通信系统与网络和其他设备通信。
[0312]
电子设备11通过网络模块112为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
[0313]
音频输出单元113可以将射频单元111或网络模块112接收的或者在存储器119中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元113还可以提供与电子设备11执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元113包括扬声器、蜂鸣器以及受话器等。
[0314]
输入单元114用于接收音频或视频信号。输入单元114可以包括图形处理器(graphics processing unit,gpu)1141和麦克风1142,图形处理器1141对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的目标图像进行处理。处理后的图像帧可以显示在显示单元116上。经图形处理器1141处理后的图像帧可以存储在存储器119(或其它存储介质)中或者经由射频单元111或网络模块112进行发送。麦克风1142可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元111发送到移动通信基站的格式输出。
[0315]
电子设备11还包括至少一种传感器115,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1161的亮度,接近传感器可在电子设备11移动到耳边时,关闭显示面板1161和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器115还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
[0316]
显示单元116用于显示由用户输入的信息或提供给用户的信息。显示单元116可包
括显示面板1161,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板1161。
[0317]
用户输入单元117可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元117包括触控面板1171以及其他输入设备1172。触控面板1171,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1171上或在触控面板1171附近的操作)。触控面板1171可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1110,接收处理器1110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1171。除了触控面板1171,用户输入单元117还可以包括其他输入设备1172。具体地,其他输入设备1172可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0318]
进一步的,触控面板1171可覆盖在显示面板1161上,当触控面板1171检测到在其上或附近的触摸操作后,传送给处理器1110以确定触摸事件的类型,随后处理器1110根据触摸事件的类型在显示面板1161上提供相应的视觉输出。虽然在图11中,触控面板1171与显示面板1161是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板1171与显示面板1161集成而实现电子设备的输入和输出功能,具体此处不做限定。
[0319]
接口单元118为外部装置与电子设备11连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元118可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备11内的一个或多个元件或者可以用于在电子设备11和外部装置之间传输数据。
[0320]
存储器119可用于存储软件程序以及各种数据。存储器119可主要包括存储程序区和存储数据区,其中,存储程序区可存储至少一个功能所需的应用程序1191(比如声音播放功能、图像播放功能等)以及操作系统1192等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器119可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0321]
处理器1110是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器119内的软件程序和/或模块,以及调用存储在存储器119内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器1110可包括一个或多个处理单元;优选的,处理器1110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1110中。
[0322]
电子设备11还可以包括给各个部件供电的电源1111(比如电池),优选的,电源1111可以通过电源管理系统与处理器1110逻辑相连,从而通过电源管理系统实现管理充
电、放电、以及功耗管理等功能。
[0323]
另外,电子设备11包括一些未示出的功能模块,在此不再赘述。
[0324]
优选的,本发明实施例还提供一种电子设备,包括处理器1110,存储器119,存储在存储器119上并可在所述处理器1110上运行的计算机程序,该计算机程序被处理器1110执行时实现上述电池检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0325]
本发明实施例的电子设备11以多种形式存在,包括但不限于:
[0326]
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类电子设备包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
[0327]
(2)移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类电子设备包括:pda、mid和umpc设备等,例如ipad。
[0328]
(3)便携式娱乐设备:这类设备可以显示和播放视频内容,一般也具备移动上网特性。该类设备包括:视频播放器,掌上游戏机,以及智能玩具和便携式车载导航设备。
[0329]
(4)其他具有视频播放功能和上网功能的电子设备。
[0330]
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被一个或多个处理器执行时实现上述电池检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
[0331]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0332]
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0333]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是移动终端,个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0334]
最后应说明的是:以上结合附图描述的实施例仅用以说明本发明的技术方案,本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简
明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1