CN111902790B - 一种调频方法、装置及计算机可读存储介质 - Google Patents
一种调频方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111902790B CN111902790B CN201880091791.XA CN201880091791A CN111902790B CN 111902790 B CN111902790 B CN 111902790B CN 201880091791 A CN201880091791 A CN 201880091791A CN 111902790 B CN111902790 B CN 111902790B
- Authority
- CN
- China
- Prior art keywords
- frequency point
- energy efficiency
- current frame
- module
- power consumption
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3218—Monitoring of peripheral devices of display devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3278—Power saving in modem or I/O interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
一种调频方法,该方法包括:预测至少一个模块处理图像的当前帧所需的能效参数(210);根据预测的所述能效参数,从多个频点集合中选择出满足能效需求的第一频点集合(220),将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点(230)。该方法可以在调频过程中,可以及时响应负载变化需求。
Description
技术领域
本申请涉及电子技术领域,并且更具体地,涉及一种调频方法、装置及计算机可读存储介质。
背景技术
近年来,移动设备领域特别是智能手机的飞速发展,移动化的使用习惯意味着用户对智能手机的功耗和发热也有着很高的要求。为了降低智能手机的功耗、延长智能手机的续航时间,可以根据负载对中央处理单元(central processing unit,CPU)的频点进行调节。可以使得CPU的频点快速响应负载需求(或性能需求),从而降低智能手机的功耗、延长智能手机的续航时间。
现有技术中,采用窗口辅助负载跟踪(window assisted load tracking,WALT)或每个实体负载跟踪(per-entity load tracking,PELT)的方法调频调度。WALT可以根据任务的历史N个非空窗口下的占空比或CPU的占用率通过定义好的统计策略计算出当前窗口下的占空比或CPU的占用率,并逐级对频点进行调节。但是现有技术中,以窗口大小为周期,根据预测的CPU占用率逐级进行调频,不能及时响应性能需求的变化。不仅是CPU,其他类似器件的调频也存在类似问题。
因此,在调频过程中,如何及时响应任务的性能变化、降低功耗成为亟需要解决的问题。
发明内容
本申请提供一种调频方法、装置,在调频过程中,可以及时响应负载变化需求。
第一方面,提供了一种调频方法,该方法包括:预测至少一个模块处理图像的当前帧所需的能效参数;根据预测的所述能效参数,从多个频点集合中选择出第一频点集合,将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
应理解,处理图像的所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的内存储器(例如,可以是DDR存储器)、或神经网络处理单元NPU中的至少一个。还应理解,所述第一频点集合中包括所述至少一个模块对应的预设频点。
本申请实施例中预测至少一个模块处理当前帧所需要的能效参数的实现方式有多种,本申请对此不做具体限定。可以根据历史能效参数(可以由当前帧之前的至少一个帧的能效参数获得)预测当前帧所需要的能效参数。例如,可以根据历史能效参数的均值预测当前帧所需要的能效参数。又如,还可以根据历史能效参数构建并查找负载预测表,从而可以根据负载预测表预测当前帧所需要的能效参数。
本申请实施例中,在调频过程中可以及时响应负载变化需求,可以获得良好的性能和/或功耗收益。
结合第一方面,在第一方面的某些实现方式中,能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器读取或存储所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个。
可选地,在一些实施例中,如果是CPU对图像的当前帧进行处理,本申请实施例预测的该CPU的能效参数可以包括但不限于以下参数中的至少一个:该CPU处理当前帧所需要的指令数(instructions)、该CPU处理当前帧所产生的缓存缺失(例如,一级数据缓存缺失所发生的次数(L1 data cache misses)、或二级缓存缺失所发生的次数(L2 data cachemisses)中的一个或全部)、该CPU因前端原因导致无操作(no operation issused due tofrontend)所发生的次数(也可以称为FE bound)、该CPU因后端原因导致无操作(nooperation issused due to backend)所发生的次数(也可以称为BE bound)。
可选地,在一些实施例中,如果是GPU对图像的当前帧进行处理,本申请实施例预测的该GPU的能效参数可以包括但不限于以下参数中的至少一个:该GPU处理当前帧所需要的绘图函数的调用(draw calls)次数、三角形(triangles)的绘制个数、像素(pixel)的绘制填充(total-fragment,total-FRAG)次数、纹理的绘制(texture-operation,TEX-operation)次数。
可选地,在一些实施例中,如果是存储所述当前帧的存储器(例如,DDR存储器),本申请实施例预测的该存储器的能效参数可以包括但不限于以下参数中的至少一个:该存储器存储或读取当前帧所需要的带宽(bandwidth)。
可选地,在一些实施例中,如果是NPU对图像的当前帧进行处理,本申请实施例预测的该NPU的能效参数可以包括但不限于以下参数中的至少一个:该NPU处理当前帧所需的计算量(tasks)、该NPU执行当前帧所需要的指令数(the total of instructionss neededto execute the current frame,total-INSTR-EXEC)、该NPU的内存访问请求(the totalof memory request,total-MEM-request)次数。
结合第一方面,在第一方面的某些实现方式中,所述第一频点集合能够满足能效需求,能效需求包括如下至少一项:功耗需求或性能需求。
本申请实施例中能效需求可以用于表示当前帧的预设频点能够满足性能需求,也可以表示为当前帧的预设频点能够满足功耗需求,本申请对此不做具体限定。作为一个示例,可以根据预测的能效参数,预测多个频点集合中的每个频点集合对应的性能(例如,至少一个模块所对应的运行时间)。作为另一个示例,还可以根据预测的能效参数,预测第一频点集合中多个频点集合对应的功耗(例如,至少一个模块运行当前帧所需要的功耗),并可以根据至少一个模块所对应的功耗公式,从第一频点集合中选择出最低功耗对应的频点集合。
结合第一方面,在第一方面的某些实现方式中,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
应理解,预设阈值可以是小于或等于某一个时间阈值。作为一个示例,该时间阈值可以是根据目标帧率计算得到的每帧所需的时长。以60帧的游戏为例,其中每一帧所需的时长为1000/60≈16.6ms。
结合第一方面,在第一方面的某些实现方式中,根据预测的所述能效参数预测所述每个频点集合对应的性能;从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
具体地,可以根据预测的所述能效参数以及性能公式,从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
应理解,所述第一频点集合中至少一个模块的预设频点对应的运行时间满足预测阈值,所述性能公式用于表示所述至少一个模块的运行时间与能效参数之间的函数关系。
本申请实施例中可以根据至少一个模块的运行参数(例如,运行时间)以及能效参数推导出至少一个模块的性能公式y=f(x)。
应理解,性能公式y=f(x)可以用于表示至少一个模块的运行参数(例如,运行时间)以及能效参数之间的函数关系,其中,x可以是自变量(例如,至少一个模块的能效参数),y可以是因变量(例如,可以是至少一个模块执行任意帧所需的运行时间)。
本申请实施例对性能公式y=f(x)不做具体限定,x与y之间的函数关系可以是线性的,也可以是非线性的。
结合第一方面,在第一方面的某些实现方式中,根据预测的所述能效参数预测所述每个频点集合对应的功耗;从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
具体地,可以根据预测的所述能效参数以及功耗公式,从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
应理解,可以根据预测的所述能效参数以及性能公式,从多个频点集合中选择出满足性能要求的多个第二频点集合。还可以根据预测的所述能效参数以及功耗公式,从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
其中,所述功耗公式用于表示所述至少一个模块处理当前所需的功耗与所述至少一个模块的能效参数之间的函数关系。
本申请实施例中可以根据至少一个模块的功耗(power)参数以及能效参数推导出至少一个模块的功耗公式p=f(y)。
应理解,功耗公式p=f(y)可以用于表示至少一个模块的功耗参数以及能效参数之间的函数关系,其中,y可以是自变量,y可以是性能公式的输出值,例如,至少一个模块执行任意帧所需的运行时间,p可以是因变量,例如至少一个模块处理图像当前帧所需的功耗(power)。
本申请实施例对功耗公式p=f(y)不做具体限定,y与p之间的函数关系可以是线性的,也可以是非线性的。
结合第一方面,在第一方面的某些实现方式中,根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
结合第一方面,在第一方面的某些实现方式中,根据历史能效参数查找负载预测表,以预测所述至少一个模块处理图像的当前帧所需的能效参数。
结合第一方面,在第一方面的某些实现方式中,所述负载预测表至少指示所述多个历史能效参数的变化趋势或者直接指示了多个历史能效参数与预测的能效参数之间的对应关系。
第二方面,提供了一种调频装置,该装置包括:预测模块、确定模块以及处理模块;所述预测模块用于:预测至少一个模块处理图像的当前帧所需的能效参数,所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的存储器、或神经网络处理单元NPU中的至少一个;所述确定模块用于:根据预测的所述能效参数,从多个频点集合中选择出第一频点集合,所述第一频点集合中包括所述至少一个模块对应的预设频点;所述处理模块用于:将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
结合第二方面,在第二方面的某些实现方式中,所述能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器读取或存储所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个。
结合第二方面,在第二方面的某些实现方式中,所述第一频点集合能够满足能效需求,所述能效需求包括如下至少一项:功耗需求或性能需求。
结合第二方面,在第二方面的某些实现方式中,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
结合第二方面,在第二方面的某些实现方式中,所述确定模块具体用于:根据预测的所述能效参数预测所述每个频点集合对应的性能;从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
结合第二方面,在第二方面的某些实现方式中,所述确定模块还具体用于:根据预测的所述能效参数预测所述每个频点集合对应的功耗;所述从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
结合第二方面,在第二方面的某些实现方式中,所述预测模块具体用于:根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
结合第二方面,在第二方面的某些实现方式中,所述预测模块具体用于:根据历史能效参数查找负载预测表以预测所述至少一个模块处理图像的当前帧所需的能效参数。
第三方面,提供了一种调频系统,该装置包括:存储器、处理器。所述存储器用于存储程序;所述处理器用于执行所述存储器中存储的程序,当所述程序被执行时,所述处理器执行第一方面或第一方面中任意一种可能的实现方式中所述的方法。例如,该处理器可以进一步与收发器通信连接。例如,该存储器可以用于存储该设备的程序代码和数据。因此,该存储器可以是处理器内部的存储单元,也可以是与处理器独立的外部存储单元,还可以是包括处理器内部的存储单元和与处理器独立的外部存储单元的部件。
可选地,该处理器可以是通用处理器,可以通过硬件来实现所述方法流程也可以通过执行软件来实现所述流程。当通过硬件实现时,该处理器可以包括具有逻辑电路或集成电路等的微处理器、数字信号处理器、微控制器或所述CPU等,通过读取存储器中存储的软件代码来实现功能,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。进一步地,该处理器可以包括必要的硬件加速器,例如不依赖于软件执行运算的硬件算法电路、逻辑运算电路、或模拟电路等。
当程序被执行时,所述处理器用于:预测至少一个模块处理图像的当前帧所需的能效参数,所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的存储器、或神经网络处理单元NPU中的至少一个;所述处理器还用于:根据预测的所述能效参数,从多个频点集合中选择出第一频点集合,所述第一频点集合中包括所述至少一个模块对应的预设频点;所述处理器还用于:将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
结合第三方面,在第三方面的某些实现方式中,所述能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器读取或存储所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个。
结合第三方面,在第三方面的某些实现方式中,所述第一频点集合能够满足能效需求,所述能效需求包括如下至少一项:功耗需求或性能需求。
结合第三方面,在第三方面的某些实现方式中,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
结合第三方面,在第三方面的某些实现方式中,所述处理器具体用于:根据预测的所述能效参数预测所述每个频点集合对应的性能;从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
结合第三方面,在第三方面的某些实现方式中,所述处理器用于:根据预测的所述能效参数预测所述每个频点集合对应的功耗;所述从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
结合第三方面,在第三方面的某些实现方式中,所述处理器具体用于:根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
结合第三方面,在第三方面的某些实现方式中,所述处理器具体用于:根据历史能效参数查找负载预测表以预测所述至少一个模块处理图像的当前帧所需的能效参数。
第四方面,提供了一种芯片,包括处理器和将该处理器与所述芯片外部耦合的接口,例如,接口可以用于耦合至所述芯片外部的存储器,该存储器可以用于存储该设备的程序代码和数据。关于存储器和处理器的具体描述可以参照第三方面或其中任一实现方式的介绍。处理器可以通过该接口从存储器中读取程序代码以执行所述操作。
当程序被执行时,所述处理器用于:预测至少一个模块处理图像的当前帧所需的能效参数,所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的存储器、或神经网络处理单元NPU中的至少一个;所述处理器还用于:根据预测的所述能效参数,从多个频点集合中选择出第一频点集合,所述第一频点集合中包括所述至少一个模块对应的预设频点;所述处理器还用于:将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
结合第四方面,在第四方面的某些实现方式中,所述能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器读取或存储所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个。
结合第四方面,在第四方面的某些实现方式中,所述第一频点集合能够满足能效需求,所述能效需求包括如下至少一项:功耗需求或性能需求。
结合第四方面,在第四方面的某些实现方式中,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
结合第四方面,在第四方面的某些实现方式中,所述处理器具体用于:根据预测的所述能效参数预测所述每个频点集合对应的性能;从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
结合第四方面,在第四方面的某些实现方式中,所述处理器用于:根据预测的所述能效参数预测所述每个频点集合对应的功耗;所述从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
结合第四方面,在第四方面的某些实现方式中,所述处理器具体用于:根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
结合第四方面,在第四方面的某些实现方式中,所述处理器具体用于:根据历史能效参数查找负载预测表以预测所述至少一个模块处理图像的当前帧所需的能效参数。
第五方面,提供了一种计算机可读存储介质,包括计算机程序,当该计算机程序在计算机或处理器上运行时,使得该计算机或处理器如执行第一方面或第一方面的任意一种实现方式中所述的方法。
第六方面,提供了一种计算机程序产品,当该计算机程序产品在计算机或处理器上运行时,使得该计算机或处理器执行如第一方面或第一方面任意一种实现方式中所述的方法。
附图说明
图1是本申请实施例提供的一种调频系统100示意性框图。
图2是本申请实施例提供的一种调频方法的示意性流程图。
图3是本申请实施例提供的一种预测能效参数的方法的示意性流程图。
图4是本申请实施例提供的一种可能的预设频点的选择方法的示意性流程图。
图5是本申请实施例提供的一种可能的预设频点选择示意图。
图6是本申请另一实施例提供的一种可能的预设频点选择的示意图。
图7是本申请实施例提供的调频装置700的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。近年来,移动设备领域特别是智能手机的飞速发展,使得智能手机在日常生活中的作用越来越大。与此同时,智能手机上运行的应用程序功能日益多样,用户对性能的要求自然也水涨船高。但是,移动化的使用习惯意味着用户对智能手机的功耗和发热也有着很高的要求。如何在满足性能的前提下降低功耗、延长智能手机的续航时间、减少发热成为了行业和消费者共同关注的焦点。
为了降低智能手机的功耗、延长智能手机的续航时间,可以根据负载对以下一种或多种模块(例如,中央处理单元(central processing unit,CPU),图形处理单元(graphics processing unit,GPU),双倍速率(double data rate,DDR))存储器的频点进行调节。可以使得上述一个或多个模块的频点快速响应负载需求(性能需求和/或功率需求),从而降低智能手机的功耗、延长智能手机的续航时间。
为了克服现有现有技术中存在的通过预测出的当前窗口的CPU的占用率逐级对CPU的频点进行调节从而导致不能及时响应负载变化需求的问题。本申请实施例中提供的调频方法可以以图像的帧为单位,根据预测的帧信息(也可以称为至少一个模块的能效参数)将上述至少一种模块(例如,CPU、GPU、DDR、NPU)的频点调整为预测频点。由于本实施例的方案以图像的帧为单位执行所述调整,可以及时响应负载变化需求,并可以获得良好的良好的性能和/或功耗收益。
本申请实施例中的调频方法可以适用但不限于:游戏领域、视频领域或其他通用的应用领域。凡是具有图像处理的领域,本方案可以适用。下面以游戏领域为例,对本申请实施例中以帧为单位,根据预测的帧信息将上述至少一种模块(例如,CPU、GPU、DDR、NPU)的频点调整为预测频点,可以及时响应负载变化需求进行详细说明。本实施例的NPU是一种人工智能运算单元,可以利用例如卷积神经网络(CNN)进行计算。
一方面,对于游戏领域而言,游戏性能最重要的指标为帧率(frame rate)。帧率可以是用于测量显示图像的帧数的一种度量,也就是测量每秒显示的帧数(frame persecond,FPS)。每秒的帧数(FPS)或者帧率可以表示图形处理器每秒钟能够更新的次数。由于人类眼睛的特殊生理功能,如果所看到的的画面其帧率高于某一设定阈值的情况下,就可以认为该图像是连贯的,高的帧率可以得到更流畅的游戏画面,体现更逼真的动画。
应理解,本实施例的帧可以是分段数据组成的一个静止的图像。因此,只要该帧可以在指定时间内执行完成(以60帧的游戏为例,其中每一帧的时长为1000/60=16.6ms),就可以保证游戏的性能要求。对于CPU、GPU、DDR等模块而言,可以按照帧进行调频,使得在指定的时间内(例如,以60帧的游戏为例,其中每一帧的时长为1000/60=16.6ms)完成每一帧所需要的指令,就可以保证游戏性能。
另一方面,在对上述至少一种模块(例如,CPU、GPU、DDR、NPU)进行调频的过程中,可以根据预测的至少一个模块的能效参数(预测出该至少一个模块处理当前帧所需要的参数信息)预测出满足性能要求和功耗要求的预设频点,并可以将上述至少一个模块的工作频率调节为预设频点。
图1是本申请实施例提供的一种调频系统100的示意性框图。该调频系统100可以包括:CPU 110、GPU 120、存储器130、NPU 140以及总线150。图1中的调频系统100可以包括在一个或多个芯片中,从而形成一个电子系统。该系统可位于一个电子设备中,该电子设备可以是无线终端、有线终端、用户设备或无连接设备。例如,该电子设备可以是手机、膝上电脑、平板电脑或游戏机等。
参见图1,存储器130例如可以是DDR存储器,该存储器130可以用于存储调频系统100的程序代码和数据。存储器130可以通过总线150与CPU 110、GPU 120以及NPU 140连接。
应理解,总线150可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等任一类型总线。所述总线150可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
图1所示的CPU 110、GPU 120以及NPU 140可以用于处理图像,CPU 110、GPU 120以及NPU 140可以为一个芯片上,并通过用于与所述芯片外部耦合的接口读取存储器130中存储的软件代码来实现相应的功能。该软件代码经由接口和总线150从存储器130被读入芯片内部并被CPU 110、GPU 120或NPU 140的至少一个使用。
可选地,在一些实施例中,调频系统100还可以包括硬件加速器160。该硬件加速器160可以包括专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
下面结合图1所示的硬件系统架构(调频系统100),对本申请实施例提供的一种调频方法进行详细描述。图2是本申请实施例提供的一种调频方法的示意性流程图。图2所示的方法可以包括步骤210-230,下面分别对步骤210-230进行详细描述。
步骤210,预测至少一个模块处理当前帧所需要的能效参数。本申请实施例中对处理图像的当前帧的模块不做具体限定。可以是图1所示的调频系统100中的CPU 110、GPU120、存储器130(例如DDR)、或NPU 140中的一个模块或多个模块。本申请实施例中对上述至少一个模块所对应的处理当前帧所需要的能效参数不做具体限定,下面会结合不同的模块,对不同的模块在处理当前帧所需的能效参数进行详细的举例说明。
可选地,在一些实施例中,如果是图1所示的调频系统100中的CPU 110对图像的当前帧进行处理,本申请实施例中预测的该CPU 110的能效参数可以包括但不限于以下参数中的至少一个:该CPU处理当前帧所需要的指令数(instructions)、该CPU处理当前帧所产生的缓存缺失(例如,一级数据缓存缺失所发生的次数(L1 data cache misses)、二级缓存缺失所发生的次数(L2 data cache misses))、该CPU因前端原因导致无操作(nooperation issused due to frontend)所发生的次数(也可以称为前端限制(frontendbound,FE bound))、该CPU因后端原因导致无操作(no operation issused due tobackend)所发生的次数(也可以称为后端限制(backend bound,BE bound))。
可选地,在一些实施例中,如果是图1所示的调频系统100中的GPU 120对图像的当前帧进行处理,本申请实施例中预测的该GPU 120的能效参数可以包括但不限于以下参数中的至少一个:该GPU处理当前帧所需要的绘图函数的调用(draw calls)次数、三角形(triangles)的绘制个数、像素(pixel)的绘制填充(total-fragment,total-FRAG)次数、纹理的绘制(texture-operation,TEX-operation)次数。
可选地,在一些实施例中,如果是图1所示的调频系统100中的存储器130(例如,DDR)存储或读取所述当前帧,本申请实施例中预测的该存储器130的能效参数可以包括但不限于以下参数中的至少一个:该存储器存储或读取当前帧所需要的带宽(bandwidth)。
可选地,在一些实施例中,如果是图1所示的调频系统100中的NPU 140对图像的当前帧进行处理,本申请实施例中预测的该NPU 140的能效参数可以包括但不限于以下参数中的至少一个:该NPU处理当前帧所需的计算量(tasks)、该NPU执行当前帧所需要的指令数(the total of instructionss needed to execute the current frame,total-INSTR-EXEC)、该NPU的内存访问请求(the total of memory request,total-MEM-request)次数。
本申请实施例中预测图1所示的至少一个模块处理当前帧所需要的能效参数的实现方式有多种,本申请对此不做具体限定。可以根据历史能效参数(可以由当前帧之前的至少一个帧的能效参数获得)预测当前帧所需要的能效参数。例如,可以根据历史能效参数的均值预测当前帧所需要的能效参数。又如,还可以根据历史能效参数构建并查找负载预测表,从而可以根据负载预测表预测当前帧所需要的能效参数。后文会结合图3对构建并查找负载预测表的具体实现方式进行描述,此处不再赘述。
步骤220,根据预测的能效参数,从多个频点集合中选择出满足能效需求的第一频点集合。本申请实施例中的多个频点集合可以用于表示图1所示的至少一个模块的频点全集或频点组合的全集。需要说明的是,不同型号的模块对应的频点全集不同,因此,本申请实施例对多个频点集合中的频点或频点组合的数量不做具体限定。
本申请实施例中根据预测的能效参数,从多个频点集合中选择出满足能效需求的第一频点集合的实现方式有多种,本申请对此不做具体限定。应理解,能效需求可以用于表示当前帧的预设频点能够满足性能需求,也可以表示为当前帧的预设频点能够满足功耗需求,本申请对此不做具体限定。
作为一个示例,可以根据预测的能效参数,预测多个频点集合中的每个频点集合对应的性能(例如,图1所示的至少一个模块所对应的运行时间),并可以根据至少一个模块所对应的性能公式,从多个频点集合中选择出满足性能的预设阈值(例如,预设的至少一个模块所对应的运行时间)所对应的第一频点集合。可以将图1所示的至少一个模块的工作频点调整为对应的第一频点集合中的预设频点。后文会结合图4-图5对根据性能公式选择出符合性能要求的频点集合的具体实现方式进行描述,此处不再赘述。
作为另一个示例,还可以根据预测的能效参数,预测第一频点集合中多个频点集合对应的功耗(例如,图1所示的至少一个模块运行当前帧所需要的功耗),并可以根据至少一个模块所对应的功耗公式,从第一频点集合中选择出最低功耗对应的频点集合。可以将图1所示的至少一个模块的工作频点调整为最低功耗对应的频点集合中的预设频点。后文会结合图6对根据功耗公式选择出最低功耗对应的频点集合的具体实现方式进行描述,此处不再赘述。
步骤230,将至少一个模块处理当前帧的工作频点调整为第一频点集合中至少一个模块对应的预设频点。本申请实施例中可以将步骤220中根据性能公式选择出符合性能要求的频点集合,并可以将图1所示的至少一个模块处理当前帧的工作频点调整为符合性能要求的频点集合中至少一个模块对应的预设频点。还可以将步骤220中根据功耗公式选择出最低功耗对应的频点集合,并可以将图1所示的至少一个模块处理当前帧的工作频点调整为最低功耗对应的频点集合中至少一个模块对应的预设频点。本申请实施例对此不做具体些限定。
本申请实施例中,在调频过程中可以及时响应负载变化需求,可以获得良好的性能和/或功耗收益。
下面结合图3中具体的例子,更加详细地描述本申请实施例中根据历史能效参数创建并查找负载预测表预测当前帧所需要的能效参数的具体实现方式。应注意,图3的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据所给出的图3的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图3是本申请实施例提供的一种预测能效参数的方法的示意性流程图。图3所示的方法可以包括步骤310-340,下面分别对步骤310-340进行详细描述。
步骤310,在线收集历史能效参数。在线收集当前帧之前的至少一个帧的能效参数(可以理解为历史能效参数),处理当前帧不同的模块所对应的能效参数不同,具体的有关图1所示的至少一个模块所对应的处理当前帧所需要的能效参数请参照步骤210中的描述,此处不再赘述。
步骤320,历史能效参数量化。可以将历史能效参数进行量化,所谓的量化可以理解为将在线收集的历史能效参数的瞬时值离散成可以清晰度量的数值。
下面以处理图像的当前帧的模块为图1所示的CPU 110,以能效参数为该CPU 110处理当前帧所需要的指令数(instructions)作为示例,结合图1对前8帧的历史能效参数量化的过程进行详细描述。
表1能效参数量化示意表
第1帧 | 第2帧 | 第3帧 | 第4帧 | 第5帧 | 第6帧 | 第7帧 | 第8帧 | |
原始数据 | 1×10<sup>8</sup> | 5×10<sup>8</sup> | 6×10<sup>8</sup> | 9×10<sup>8</sup> | 8×10<sup>8</sup> | 2×10<sup>8</sup> | 7×10<sup>8</sup> | 1×10<sup>8</sup> |
量化数据 | 1 | 5 | 6 | 9 | 8 | 2 | 7 | 1 |
参见表1,对于当前帧的前8帧的指令数(instructions)而言,CPU处理第1帧所需要的指令数为1×108,可以将1×108量化为1。CPU处理第2帧所需要的指令数为5×108,可以将5×108量化为5。以此类推,可以将CPU在处理不同的帧所需要的指令数进行量化。
步骤330,建立能效参数变化预测表。可以根据步骤320中的能效参数的量化方式,可以建立能效参数变化的预测表。应理解,负载预测表可以指示多个历史能效参数的变化趋势或者可以直接指示多个历史能效参数的与预测的能效参数之间对应关系。从而可以根据能效参数变化预测表中能效参数的变化规律预测图1所示的至少一个模块处理图像的当前帧时所需要的能效参数。可以理解,能效参数变化预测表的建立可以被实时执行或在装置处于空闲或充电状态下执行。
需要说明的是,可以根据当前帧之前的至少一个帧的能效参数预测至少一个模块处理当前帧所需的能效参数。本申请实施例以当前帧之前的3帧的能效参数预测至少一个模块处理当前帧所需的能效参数作为示例进行说明。
下面结合表2,以处理图像当前帧的模块为CPU,以预测的能效参数为该CPU处理当前帧所需要的指令数(instructions)作为示例,对根据对根据预测表中的前3帧的指令数预测CPU处理当前帧的所需的指令数的过程进行详细描述。
表2指令数变化预测表
参见表2,可以根据当前帧之前的至少一个帧的能效参数量化之后的变化规律统计出当前帧各个量化数值出现的概率,并可以将概率最大的量化值作为预测的CPU处理当前帧所需要的指令数。下面结合表2中的具体例子进行详细说明。
例如,CPU处理当前帧之前3帧所需的指令数量化之后分别为5、7、3,根据表2中的统计规律,下一次(当前帧)量化数为5出现的概率最大(约为54%),本申请实施例中可以预测CPU处理当前帧所需要的指令为5×108(量化之后为5)。
再例如,CPU处理当前帧之前3帧所需的指令数量化之后分别为5、7、4,根据表2中的统计规律,下一次(当前帧)量化数为4出现的概率最大(约为70%),本申请实施例中可以预测CPU处理当前帧所需要的指令为4×108(量化之后为4)。
需要说明的是,每一个预测完至少一个模块处理当前帧所需的能效参数之后,可以动态更新步骤320中的历史能效参数量化以及步骤330中的能效参数变化预测表。
步骤340,预测至少一个模块处理图像的当前帧所需的能效参数。可以根据步骤330中的能效参数变化预测表,预测出图1所示的至少一个模块处理图像的当前帧所需的能效参数。步骤340具体可参照图2的流程中的210的操作。步骤310-330是建立负载预测表的过程,可以认为是一个预生成表格的过程。随后的340操作可具体参照图2的对应流程。
本申请实施例中可以在预测到图1所示的至少一个模块处理图像的当前帧所需的能效参数之后,可以根据预测的当前帧所需的能效参数以及能效需求选择出符合要求的至少一个模块对应的预设频点,并可以将图1所示的至少一个模块处理当前帧的工作频点调整为对应的预设频点。
本申请实施例对能效需求不做具体限定。作为一个示例,能效需求可以是处理图像当前帧的至少一个模块满足性能需求,例如,处理图像当前帧的至少一个模块的运行时间小于或等于预设阈值。作为另一个示例,能效需求还可以是处理图像当前帧的至少一个模块满足既满足性能需求,又满足能耗需求。
下面结合图4中具体的例子,更加详细地描述本申请实施例中根据预测的当前帧所需的能效参数以及性能需求选择出符合要求的至少一个模块对应的预设频点的具体实现方式。应注意,图4的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据文所给出的图4的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图4是本申请实施例提供的一种可能的预设频点的选择方法的示意性流程图。图4所示的方法可以包括步骤410-430,下面分别对步骤410-430进行详细描述。
步骤410中,离线采集至少一个模块的所有频点或频点组合的能效参数。本申请实施例中可以离线采集图1所示的处理图像的至少一个模块(CPU、GPU、DDR、或NPU模块)的所有频点或频点组合的能效参数。应理解,不同型号的模块对应的频点集合可以不同,可以根据处理图像当前帧的一个或多个模块,采集各个频点或频点组合的能效参数。
还应理解,上述至少一个模块可以单独对图像当前帧进行处理,多个模块之间也可以任意组合搭配对图像当前帧进行处理。作为一个示例,如果仅是CPU对图像当前帧进行处理,可以采集该CPU在各个频点的能效参数。作为另一个示例,如果是CPU以及DDR对图像当前帧进行处理,可以采集该CPU以及DDR在各个频点组合的能效参数。
上述至少一个模块的能效参数请参考步骤210中对不同的模块在处理当前帧所需的能效参数的描述,此处不再赘述。
步骤420中,离线推导出至少一个模块的性能公式。本申请实施例中可以根据至少一个模块的运行参数(例如,运行时间)以及能效参数推导出至少一个模块的性能公式y=f(x)。
应理解,性能公式y=f(x)可以用于表示至少一个模块的运行参数(例如,运行时间)以及能效参数之间的函数关系,其中,x可以是自变量(例如,至少一个模块的能效参数),y可以是因变量(例如,可以是至少一个模块执行任意帧所需的运行时间)。
本申请实施例对性能公式y=f(x)不做具体限定,x与y之间的函数关系可以是线性的,也可以是非线性的。
下面以线性的性能公式y=f(x)作为示例,对各个模块的性能公式进行举例说明。
作为一个示例,对于CPU而言,性能公式y=f(x)中的y可以为CPU运行时间(CPUrunning time),x可以为参数instructions、L1 data cache misses、L2 data cachemisses、FE bound、或BE bound中的一个或多个。
例如,CPU的性能公式可以表示为:
CPU running time=W0*instrutions+W1*FE bound+W2*BE bound+W3 (1)
其中,W0-W3为权重参数;
instrutions为CPU处理图像的任意帧时需要的指令数;
FE bound为CPU因前端原因导致该CPU无指令执行所发生的次数;
BE bound为CPU因后端原因导致CPU指令执行时队列发生拥堵的次数;
又如,CPU的性能公式还可以表示为:
CPU running time=W0*instrutions+W1*L1 misses+W2*L2 misses+W3 (2)
其中,L1 misses为CPU处理图像的任意帧时一级数据缓存缺失所发生的次数;
L2 misses为CPU处理图像的任意帧时二级数据缓存缺失所发生的次数;
作为另一个示例,对于GPU而言,性能公式y=f(x)中的y可以为GPU运行时间(GPUrunning time),x可以为参数draw calls、triangles、total-FRAG、或TEX-operation中的一个或多个。
例如,GPU的性能公式可以表示为:
GPU running time=W0*draw calls+W1*triangles+W2*total-FRAG+W3*TEX-operation+W4 (3)
其中,draw calls为该GPU处理图像的任意帧时所需的绘图函数的调用次数;
triangles为该GPU处理图像的任意帧时所需的三角形的绘制个数;
total-FRAG为该GPU处理图像的任意帧时所需的像素的绘制次数;
TEX-operation为该GPU处理图像的任意帧时所需的纹理的绘制次数;
作为另一个示例,对于NPU而言,性能公式y=f(x)中的y可以为NPU运行时间(NPUrunning time),x可以为参数tasks、total-INSTR-EXEC、total-MEM-request中的一个或多个。
例如,NPU的性能公式可以表示为:
NPU running time=W0*tasks+W1*total-INSTR-EXEC+W2*total-MEM-request+W3 (4)
其中,tasks为该NPU处理图像的任意帧时所需的计算量;
total-INSTR-EXEC为该NPU处理图像的任意帧时所需的指令数;
total-MEM-request为该NPU处理图像的任意帧时请求进行内存访问的次数;
步骤430中,根据性能公式以及预测出的当前帧所需的能效参数,选择出满足性能要求的频点集合。步骤410和420是离线操作,步骤430是在线计算,其流程具体可参照图2所示的220步骤,即在步骤410和420后,具体的在线操作可参照图2的对应流程。本申请实施例中可以根据步骤430中的性能公式y=f(x)以及预测出的至少一个模块处理当前帧所需的能效参数,从至少一个模块的所有频点或频点组合中选择出满足预设条件的子集合S。
应理解,预设条件可以是小于或等于某一个时间阈值。作为一个示例,该时间阈值可以是根据目标帧率计算得到的每帧所需的时长。以60帧的游戏为例,其中每一帧所需的时长为1000/60≈16.6ms。
具体地,可以将预测出的至少一个模块处理当前帧所需的能效参数作为输入,代入对应模块的性能公式y=f(x),并可以从至少一个模块的所有频点或频点组合中选择出对应模块的运行时间小于或等于某一个时间阈值的频点子集合S(该频点子集合S包括至少一个模块对应的预设频点)。
本申请实施例中可以将至少一个模块处理当前帧的工作频率调整为上述子集合S中至少一个模块对应的预设频点,对应的至少一个模块可以在预设的频点下处理当前帧,从而可以满足性能要求。
参见图5,图5是本申请实施例提供的一种可能的预设频点选择示意图。图5中以需要对图1所示的CPU 110以及存储器130(例如DDR)进行调频(也就是说,CPU 110以及存储器130(例如DDR)处理图像的当前帧)作为示例。图4中的频点组合全集T可以是CPU 110与存储器130(例如DDR)所有频点的组合。
例如,频点组合全集T可以为:
频点组合1:CPU频点1/DDR频点1{W10,W11,W12,W13}
频点组合2:CPU频点1/DDR频点2{W20,W21,W22,W23}
频点组合3:CPU频点1/DDR频点3{W30,W31,W32,W33}
频点组合n:CPU频点1/DDR频点n{Wn0,Wn1,Wn2,Wn3}
频点组合n+1:CPU频点2/DDR频点1{W(n+1)0,W(n+1)1,W(n+1)2,W(n+1)3}
频点组合n+2:CPU频点2/DDR频点2{W(n+2)0,W(n+2)1,W(n+2)2,W(n+2)3}
频点组合2n:CPU频点2/DDR频点n{W(2n)0,W(2n)1,W(2n)2,W(2n)3}
频点组合m×n:CPU频点m/DDR频点n{W(n×n)0,W(n×n)1,W(n×n)2,W(n×n)3}
应理解,不同型号的模块其设置的频点m或n不同,本申请对此不做具体限定。
还应理解,上述频点组合中的{W00,W01,W02,W03}可以对应于该频点组合下性能公式中的权重Wx。
本申请实施例中,可以根据步骤420中提及的性能公式,从频点组合全集T中选择出满足性能需求的子集合S。
例如,满足性能需求的子集合S可以为:
频点组合1:CPU频点1/DDR频点1{W00,W01,W02,W03}
频点组合2:CPU频点1/DDR频点2{W10,W11,W12,W13}
频点组合3:CPU频点1/DDR频点3{W20,W21,W22,W23}
频点组合4:CPU频点2/DDR频点1{W30,W31,W32,W33}
频点组合5:CPU频点2/DDR频点3{W40,W41,W42,W43}
频点组合6:CPU频点3/DDR频点3{W50,W51,W52,W53}
频点组合7:CPU频点4/DDR频点1{W60,W61,W62,W63}
图5中子集合S包括的CPU与DDR的频点组合均可以满足性能需求,并可以将CPU与DDR在处理图像当前帧的工作频点调整为如下6中频点组合(子集合S)中的任意一个频点组合。
图5是基于性能需求从至少一个模块的所有频点或频点组合中选择出满足性能需求的子集合S。可选地,在一些实施例中,还可以在图5的基础上,可以根据功耗公式,从子集合S中选择出最低功耗对应的频点集合M。下面会结合图6对从子集合S中选择出最低功耗对应的频点集合M的具体实现方式进行描述,此处不再赘述。
本申请实施例中可以根据至少一个模块的功耗(power)参数以及能效参数推导出至少一个模块的功耗公式p=f(y)。
应理解,功耗公式p=f(y)可以用于表示至少一个模块的功耗参数以及能效参数之间的函数关系,其中,y可以是自变量(y可以是性能公式的输出值,例如,至少一个模块执行任意帧所需的运行时间),p可以是因变量(例如至少一个模块处理图像当前帧所需的功耗(power))。
本申请实施例对功耗公式p=f(y)不做具体限定,y与p之间的函数关系可以是线性的,也可以是非线性的。
下面以线性的功耗公式p=f(y)作为示例,对根据预测的至少一个模块的能效参数,预测子集合S中的频点或频点组合所对应的功耗大小进行举例说明。
例如,如果需要对CPU以及DDR模块进行调频(也就是说,CPU以及DDR模块处理图像的当前帧),子集合S中可以是CPU以及DDR的频点组合,并且可以根据如下的功耗公式p=f(y)预测子集合S中CPU以及DDR的频点组合所对应的功耗大小。
CPU以及DDR所需的总功耗公式可以表示为:
power≈W0*frame duration+W1*CPU running time+W2*bandwidth+W3 (5)
其中,W0-W3为权重参数;
frame duration为目标帧率的倒数;
CPU running time为CPU处理图像的任意帧时所需的运行时间;
bandwidth为DDR存储或读取图像的任意帧时所需的带宽总量;
需要说明的是,功耗公式p=f(y)中的自变量y可以按照子集合S中的模块进行搭配,如果子集合S中只需要对CPU以及DDR进行调频,则计算出的模块GPU以及NPU的运行时间(GPU running time、NPU running time)可以不需要参与总功耗的计算。
又如,如果需要对全系统的模块(CPU、GPU、NPU以及DDR)进行调频,则CPU、GPU、NPU以及DDR所需的总功耗公式可以表示为:
power≈W0*frame duration+W 1*CPU running time+W2*GPU running time+W3*NPU running time+W4*bandwidth+W5 (6)
其中,W0-W5为权重参数;
GPU running time为GPU处理图像的任意帧时所需的运行时间;
NPU running time为NPU处理图像的任意帧时所需的运行时间;
下面结合图6中具体的例子,更加详细地描述本申请实施例中从子集合S中选择出最低功耗对应的频点集合m的具体实现方式。应注意,图6的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据文所给出的图6的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图6是本申请另一实施例提供的一种可能的预设频点选择的示意图。图6中以需要对图1所示的CPU 110以及存储器130(例如DDR)进行调频(也就是说,图1中的CPU 110以及存储器130(例如DDR)处理图像的当前帧)作为示例。
参见图6,可以在图5的基础上,进一步根据上述功耗公式(5),从子集合S(例如,上述6种符合性能需求的CPU与DDR的频点组合)中选择出CPU以及DDR所需的总功耗最低的频点组合M,并可以将CPU与DDR在处理图像当前帧的工作频点调整为频点组合M中的频点。
例如,CPU以及DDR所需的总功耗最低的频点组合M可以为:
频点组合4:CPU频点2/DDR频点1{W30,W31,W32,W33}
需要说明的是,CPU以及DDR所需的总功耗最低的频点组合M可以是一个,也可以是多个,本申请实施例对此不做具体限定。
本申请实施例提供的调频方法可以在调频过程中及时响应负载变化需求,可以获得良好的性能和/或功耗收益。
下面以部分游戏的整体性能为例,结合表3,对使用本申请实施例中的调频方法(AI调频方法)之后,游戏的整体性能以及功耗收益进行详细描述。
表3 AI调频调度实施前后收益对比表
表3列出了部分游戏在AI调频调度实施前后收益的游戏性能收益以及功耗收益。游戏性能收益主要体现在平均帧率、流畅度、卡顿率等方面,其中,平均帧率越接近满帧帧率,游戏性能越好;流畅度可以用于表示帧率之差(后一秒帧率减去前一秒帧率的差值)的标准差,其值越低,游戏性能越好;卡顿率可以用于表示帧率低于设定阈值的比例(按秒统计),其值越低,游戏性能越好。
例如,表3中的开心消消乐游戏,在平均帧率方面,未使用本申请实施例提供的调频调度方法(AI调频调度),其平均帧率为56,在使用AI调频调度方法之后,其平均帧率上升为57.89。在流畅度方面,在未使用AI调频调度方法时,其流畅度为4.81,在在使用AI调频调度方法之后,其流畅度下降为2.39。在功耗收益方面,在使用了本申请实施例提供的AI调频调度方法之后,其能效收益比例上升9.11%。因此,在使用本申请实施例提供的AI调频调度方法之后,游戏的整体性能以及功耗均有明显提升,其能效收益明显。
本申请实施例提供的调频方法,预测的至少一个模块在处理当前帧所需的运行时间较准确。
下面结合表4以及表5,详细描述使用本申请实施例提供的调频方法之后,可以较准确的预测至少一个模块在处理当前帧所需的运行时间。
表4 AI调频调度预测准确率
由表4可以看出,使用本申请实施例提供的调频方法之后,预测的至少一个模块在处理当前帧所需的运行时间的准确率较高。
下面以表4中预测的运行QQ飞车的所需的帧运行时间为例,结合表5详细描述至少一个模块在处理当前帧所需的运行时间与实际运行时间的偏差。
表5 AI调频调度预测准确率
由表5可以看出,本申请实施例中的调频方法可以适用但不限于:游戏领域、视频领域或其他通用的应用领域。
参见表5,索引为62的一列中,该游戏的中位数绝对偏差MAD为0.0135,对应的该游戏的预测准确率为(1-0.0135=98.65%)。
应理解,MAD统计的是至少一个模块在处理当前帧所需的运行时间与实际运行时间的偏差值。
上文结合图1至图6,详细描述了本发明实施例提供的一种调频方法,下面将结合图图7,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图7示出了本申请实施例的调频装置700的示意性框图,该调频装置700中各模块分别用于执行上述方法中各动作或处理过程,这里,为了避免赘述,详细说明可以参照上文中的描述。
图7是本申请实施例提供的调频装置700的示意性框图。该调频装置700可以包括:预测模块710、确定模块720以及处理模块730,所述预测模块710用于:预测至少一个模块处理图像的当前帧所需的能效参数,所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的存储器、或神经网络处理单元NPU中的至少一个;所述确定模块720用于:根据预测的所述能效参数,从多个频点集合中选择出满足能效需求的第一频点集合,所述第一频点集合中包括所述至少一个模块对应的预设频点;所述处理模块730用于:将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
可选地,在一些实施例中,所述能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器存储或读取所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个。
可选地,在一些实施例中,所述能效需求包括如下至少一项:功耗需求或性能需求。
可选地,在一些实施例中,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
可选地,在一些实施例中,所述确定模块720具体用于:根据预测的所述能效参数预测所述每个频点集合对应的性能;从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
可选地,在一些实施例中,所述确定模块720还具体用于:根据预测的所述能效参数预测所述每个频点集合对应的功耗;所述从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
可选地,在一些实施例中,所述预测模块710具体用于:根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
可选地,在一些实施例中,所述预测模块710具体用于:根据历史能效参数查找负载预测表以预测所述至少一个模块处理图像的当前帧所需的能效参数。
可以理解,图7对应的调频装置700中的每个模块710-730可以以软件、硬件或其结合来实现。如果以硬件实现,则调频装置700是一个硬件电路,每个模块可以认为是一个电路单元,包括数字电路、逻辑电路、模拟电路、硬件加速器或算法电路中的至少一个。此时调频装置700可以视为是一个专用硬件,例如可以视为是图1系统中的一个硬件加速器160或其中一部分。
或者,调频装置700可以是以软件程序形成,其中每个模块包括程序指令,被处理器,如之前图1的系统中提到的CPU 110所运行以实现相关功能,即每个模块是一个软件模块,并可以运行在如图1所示的CPU 110上,具体可以参照之前的描述。
再或者,调频装置700中的部分模块是硬件电路,可以是图1的系统中的硬件加速器160,而另一部分模块是处理器,如图1中CPU 110执行的软件模块,本实施例对此不作限制。
本申请实施例还提供了一种芯片,包括存储器和将该处理器与所述芯片外部耦合的接口,例如,该接口可以用于耦合至所述芯片外部的存储器,该存储器可以用于存储该设备的程序代码和数据。处理器可以通过该接口从存储器中读取程序代码以执行所述操作。关于存储器和处理器的具体描述可以参照上述实施例中的介绍,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,包括计算机程序,当该计算机程序在计算机或处理器上运行时,使得该计算机或处理器执行如步骤210-230等步骤中所述的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机或处理器上运行时,使得该计算机或处理器执行如步骤210-230等步骤中所述的方法。
图2至图4中任一方法流程可以被处理器执行,该处理器可以是通用处理器,可以通过硬件来实现所述流程的运算也可以通过执行软件来实现相关运算。当通过硬件实现时,该处理器可以包括具有逻辑电路或集成电路等的微处理器、数字信号处理器、微控制器、或以上实施例提到的所述CPU110等,通过读取存储器中存储的软件代码来实现功能,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。进一步地,该处理器可以包括必要的硬件加速器,例如不依赖于软件执行运算的硬件算法电路、逻辑运算电路、或模拟电路等。
在一种典型的实现方式中,以前实施例中的所述方法流程被所述CPU110执行。所述CPU110通过执行存储器130内的程序来实现所述方法流程,以便对系统内的多个模块,包括该CPU110自身,进行调频。可以理解,在线操作是CPU110或其他处理器执行的操作。离线操作则可以是装置出厂之前有本领域技术人员在开发过程中执行,并将得到的结果,如实施例提到的性能公式预置在装置内。所述性能公式可以以软件或硬件算法电路的形式被预置在所述装置中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示终端设备相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。
还应理解,申请实施例中的“第一”、“第二”以及“第三”仅为了区分,不应对本申请构成任何限定。还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还需要说明的是,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或一个以上;“A和B中的至少一个”,类似于“A和/或B”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和B中的至少一个,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。下面将结合附图详细说明本申请提供的技术方案。
另外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmableread-only memou,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令以使得一台计算机设备(可以是个人计算机,服务器,或者设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memou,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种调频方法,其特征在于,所述方法包括:
预测至少一个模块处理图像的当前帧所需的能效参数,所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的存储器、或神经网络处理单元NPU中的至少一个,所述能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器存储所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个;
根据预测的所述能效参数,从多个频点集合中选择出第一频点集合,所述第一频点集合中包括所述至少一个模块对应的预设频点;
将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
2.根据权利要求1所述的方法,其特征在于,所述第一频点集合能够满足能效需求,所述能效需求包括如下至少一项:功耗需求或性能需求。
3.根据权利要求2所述的方法,其特征在于,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
4.根据权利要求2所述的方法,其特征在于,所述根据预测的所述能效参数,从多个频点集合中选择出满足能效需求的第一频点集合,包括:
根据预测的所述能效参数预测每个频点集合对应的性能;
从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
5.根据权利要求4所述的方法,其特征在于,所述从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合包括:
根据预测的所述能效参数预测所述每个频点集合对应的功耗;
所述从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;
从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
6.根据权利要求1所述的方法,其特征在于,所述预测至少一个模块处理图像的当前帧所需的能效参数,包括:
根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
7.根据权利要求6所述的方法,其特征在于,所述根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,包括:
根据历史能效参数查找负载预测表以预测所述至少一个模块处理图像的当前帧所需的能效参数。
8.一种调频装置,其特征在于,包括:
预测模块,用于预测至少一个模块处理图像的当前帧所需的能效参数,所述至少一个模块包括中央处理单元CPU、图形处理单元GPU、用于存储所述当前帧的存储器、或神经网络处理单元NPU中的至少一个,所述能效参数包括所述CPU处理所述当前帧所需的指令数、所述CPU处理所述当前帧所产生的缓存缺失、所述GPU处理所述当前帧所需的绘图函数的调用次数、所述存储器存储所述当前帧所需的带宽、或所述NPU处理所述当前帧所需的计算量中的至少一个;
确定模块,用于根据预测的所述能效参数,从多个频点集合中选择出第一频点集合,所述第一频点集合中包括所述至少一个模块对应的预设频点;
处理模块,用于将所述至少一个模块处理所述当前帧的工作频点调整为所述至少一个模块对应的预设频点。
9.根据权利要求8所述的装置,其特征在于,所述第一频点集合能够满足能效需求,所述能效需求包括如下至少一项:功耗需求或性能需求。
10.根据权利要求9所述的装置,其特征在于,所述功耗需求为最低功耗需求,所述性能需求为满足预设阈值。
11.根据权利要求9所述的装置,其特征在于,所述确定模块具体用于:
根据预测的所述能效参数预测所述频点集合对应的性能;
从多个频点集合中选择出满足预设阈值的性能所对应的第一频点集合。
12.根据权利要求11所述的装置,其特征在于,所述确定模块还具体用于:
根据预测的所述能效参数预测所述每个频点集合对应的功耗;
所述从多个频点集合中选择出满足预设阈值的多个性能所对应的多个第二频点集合;
从多个第二频点集合中选择出最低功耗所对应的第一频点集合。
13.根据权利要求8所述的装置,其特征在于,所述预测模块具体用于:
根据历史能效参数预测所述至少一个模块处理图像的当前帧所需的能效参数,所述历史能效参数由当前帧之前的至少一个帧的能效参数获得。
14.根据权利要求13所述的装置,其特征在于,所述预测模块具体用于:
根据历史能效参数查找负载预测表以预测所述至少一个模块处理图像的当前帧所需的能效参数。
15.一种调频装置,其特征在于,包括:存储器和处理器,
所述存储器用于存储程序;
所述处理器用于执行所述存储器中存储的程序,并在所述程序的驱动下执行权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机或处理器上运行时,使得所述计算机或处理器执行如1至7中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/103307 WO2020042098A1 (zh) | 2018-08-30 | 2018-08-30 | 一种调频方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111902790A CN111902790A (zh) | 2020-11-06 |
CN111902790B true CN111902790B (zh) | 2022-05-31 |
Family
ID=69642617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880091791.XA Active CN111902790B (zh) | 2018-08-30 | 2018-08-30 | 一种调频方法、装置及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11460905B2 (zh) |
EP (1) | EP3819744A4 (zh) |
CN (1) | CN111902790B (zh) |
WO (1) | WO2020042098A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510140B (zh) * | 2020-11-16 | 2024-04-16 | 深圳市万普拉斯科技有限公司 | 一种调频方法、装置及电子设备 |
CN114510139B (zh) * | 2020-11-16 | 2024-06-04 | 深圳市万普拉斯科技有限公司 | 一种调频方法、装置及电子设备 |
KR20230036589A (ko) * | 2021-09-06 | 2023-03-15 | 삼성전자주식회사 | 시스템-온-칩 및 그의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019367A (zh) * | 2012-12-03 | 2013-04-03 | 福州瑞芯微电子有限公司 | 基于Android系统的嵌入式GPU动态调频方法及装置 |
CN105045367A (zh) * | 2015-01-16 | 2015-11-11 | 中国矿业大学 | 基于游戏负载预测的android系统设备功耗优化方法 |
CN106258011A (zh) * | 2014-04-30 | 2016-12-28 | 高通股份有限公司 | 用于降低图形帧处理中的功耗的cpu/gpu dcvs协同优化 |
CN107465929A (zh) * | 2017-07-21 | 2017-12-12 | 山东大学 | 基于hevc的dvfs控制方法、系统、处理器及存储设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2406184B (en) * | 2003-09-17 | 2006-03-15 | Advanced Risc Mach Ltd | Data processing system |
US7376849B2 (en) * | 2004-06-30 | 2008-05-20 | Intel Corporation | Method, apparatus and system of adjusting one or more performance-related parameters of a processor |
US7529948B2 (en) * | 2005-08-25 | 2009-05-05 | Apple Inc. | Methods and apparatuses for dynamic power estimation |
CN100561404C (zh) * | 2005-12-29 | 2009-11-18 | 联想(北京)有限公司 | 节省处理器功耗的方法 |
US8327172B2 (en) * | 2010-06-23 | 2012-12-04 | Intel Corporation | Adaptive memory frequency scaling |
CN102609319A (zh) * | 2011-01-20 | 2012-07-25 | 中国移动通信有限公司 | 一种处理器调频方法、装置及设备 |
KR20140030823A (ko) * | 2012-09-04 | 2014-03-12 | 삼성전자주식회사 | 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
KR20140088691A (ko) * | 2013-01-03 | 2014-07-11 | 삼성전자주식회사 | Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US9395796B2 (en) * | 2013-12-19 | 2016-07-19 | Intel Corporation | Dynamic graphics geometry preprocessing frequency scaling and prediction of performance gain |
CN105094272A (zh) * | 2014-05-14 | 2015-11-25 | 中兴通讯股份有限公司 | 一种终端的硬件刷新率的调节方法及装置 |
CN105677482B (zh) * | 2015-12-31 | 2020-12-18 | 联想(北京)有限公司 | 一种频率调节方法及电子设备 |
CN107678855B (zh) * | 2017-09-19 | 2020-06-12 | 中国电子产品可靠性与环境试验研究所 | 处理器动态调节方法、装置及处理器芯片 |
-
2018
- 2018-08-30 EP EP18932041.9A patent/EP3819744A4/en active Pending
- 2018-08-30 WO PCT/CN2018/103307 patent/WO2020042098A1/zh unknown
- 2018-08-30 CN CN201880091791.XA patent/CN111902790B/zh active Active
-
2021
- 2021-02-17 US US17/177,881 patent/US11460905B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019367A (zh) * | 2012-12-03 | 2013-04-03 | 福州瑞芯微电子有限公司 | 基于Android系统的嵌入式GPU动态调频方法及装置 |
CN106258011A (zh) * | 2014-04-30 | 2016-12-28 | 高通股份有限公司 | 用于降低图形帧处理中的功耗的cpu/gpu dcvs协同优化 |
CN105045367A (zh) * | 2015-01-16 | 2015-11-11 | 中国矿业大学 | 基于游戏负载预测的android系统设备功耗优化方法 |
CN107465929A (zh) * | 2017-07-21 | 2017-12-12 | 山东大学 | 基于hevc的dvfs控制方法、系统、处理器及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US11460905B2 (en) | 2022-10-04 |
CN111902790A (zh) | 2020-11-06 |
WO2020042098A1 (zh) | 2020-03-05 |
EP3819744A4 (en) | 2021-07-07 |
US20210165477A1 (en) | 2021-06-03 |
EP3819744A1 (en) | 2021-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045814B (zh) | 资源调度方法和终端设备 | |
CN109960395B (zh) | 资源调度方法和计算机设备 | |
CN111902790B (zh) | 一种调频方法、装置及计算机可读存储介质 | |
CN108337358B (zh) | 应用清理方法、装置、存储介质及电子设备 | |
CN112631415B (zh) | Cpu频率调整方法、装置、电子设备及存储介质 | |
CN109391680B (zh) | 一种定时任务数据处理方法、装置及系统 | |
CN107632697B (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN104704469A (zh) | 动态地重新平衡图形处理器资源 | |
US11480623B2 (en) | Apparatus and method for predicting a remaining battery life in a device | |
CN110647687B (zh) | 服务推荐方法和装置 | |
US9582765B2 (en) | Apparatus, method, and non-transitory computer readable storage medium thereof for recommending an electricity consumption behavior | |
CN113222720A (zh) | 一种基于信誉的隐私保护激励机制方法、装置及存储介质 | |
CN109447489B (zh) | 群智感知用户的选择方法、装置、电子设备及存储介质 | |
CN108345941B (zh) | 一种参数调整方法和装置 | |
CN112669091B (zh) | 数据处理方法、装置及存储介质 | |
CN115330058A (zh) | 对象选择模型的训练方法、对象选择方法及装置 | |
CN114079953A (zh) | 无线网络系统的资源调度方法、装置、终端及存储介质 | |
CN104221393A (zh) | 内容自适应视频处理 | |
CN108476084B (zh) | Q学习中调整状态空间边界的方法和装置 | |
CN116820730B (zh) | 多引擎计算系统的任务调度方法、装置及存储介质 | |
CN112565510B (zh) | 身体锻炼智能控制方法及相关装置 | |
CN116225311B (zh) | 终端设备存储系统参数的配置方法、装置和服务器 | |
CN113407335A (zh) | 计算资源规划方法以及电子设备、存储装置 | |
CN113704619A (zh) | 一种策略推荐方法及装置 | |
CN118227404A (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 |