CN117130769A - 一种调频方法、频率调节神经网络的训练方法及电子设备 - Google Patents
一种调频方法、频率调节神经网络的训练方法及电子设备 Download PDFInfo
- Publication number
- CN117130769A CN117130769A CN202310210010.7A CN202310210010A CN117130769A CN 117130769 A CN117130769 A CN 117130769A CN 202310210010 A CN202310210010 A CN 202310210010A CN 117130769 A CN117130769 A CN 117130769A
- Authority
- CN
- China
- Prior art keywords
- thread
- cpu
- load
- target
- frame
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 110
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 82
- 230000009471 action Effects 0.000 claims description 30
- 230000002787 reinforcement Effects 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 26
- 230000003993 interaction Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000005265 energy consumption Methods 0.000 abstract description 2
- 230000000875 corresponding effect Effects 0.000 description 41
- 239000003795 chemical substances by application Substances 0.000 description 28
- 238000012545 processing Methods 0.000 description 18
- 208000033962 Fontaine progeroid syndrome Diseases 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 4
- 230000001105 regulatory effect Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008844 regulatory mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/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
-
- 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/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
Abstract
本申请提供一种调频方法、频率调节神经网络的训练方法及电子设备,涉及人工智能领域。该方法用于在保证预设应用性能的前提下,平衡CPU的频率和能耗。该方法包括:对于任一目标CPU簇,获取***状态信息,***状态信息包括第一负载、第二负载、第三负载以及预设应用的帧率,其中第一负载为所有线程的负载总和,第二负载为与目标CPU簇存在绑定关系的线程的负载总和,第三负载为目标CPU簇的负载;将***状态信息输入目标CPU簇对应的频率调节神经网络,获取目标CPU簇对应的频率调节神经网络输出的目标运行频率;将目标CPU簇的运行频率设置为目标运行频率。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种调频方法、频率调节神经网络的训练方法及电子设备。
背景技术
随着电子设备的功能越来越强大,电子设备中安装的应用越来越多。以游戏应用为例,随着游戏画质的提升,游戏玩法、游戏场景的丰富,对于电子设备的性能提出了更高的要求。
目前,电子设备运行游戏应用时,常常会有耗电快、发热严重、卡顿的问题。这都是由于受到电子设备的***资源(例如,硬件资源)的限制。例如,为了保证游戏流畅性,电子设备可运行于中央处理器(central processing unit,CPU)的最高频率,但若CPU长时间以最高频率运行,会导致电子设备温度过高,因而电子设备必须降低CPU的频率从而降低温度,但CPU降频后又会导致游戏流畅性下降,影响用户游戏体验。
因此,如何合理调整CPU频率,提升游戏性能成为需要考虑的问题。
发明内容
本申请实施例提供一种调频方法、频率调节神经网络的训练方法及电子设备,用于在保证预设应用的性能的前提下,平衡CPU的频率和能耗。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供一种调频方法,电子设备运行有预设应用,预设应用包括多个线程,多个线程中包括与电子设备的CPU簇存在绑定关系的线程,电子设备的CPU簇中包括与频率调节神经网络对应的目标CPU簇,频率调节神经网络用于调整频率调节神经网络对应的目标CPU簇的运行频率,方法包括:对于任一目标CPU簇,获取***状态信息,***状态信息包括第一负载、第二负载、第三负载以及预设应用的帧率,其中第一负载为所有线程的负载总和,第二负载为与目标CPU簇存在绑定关系的线程的负载总和,第三负载为目标CPU簇的负载;将***状态信息输入目标CPU簇对应的频率调节神经网络,获取目标CPU簇对应的频率调节神经网络输出的目标运行频率;将目标CPU簇的运行频率设置为目标运行频率。
可以理解地,由于不同的CPU簇具有不同的频率调节神经网络,同时结合每个CPU簇自身的负载情况以及绑定至该CPU簇的线程的负载情况,调节对应CPU簇的运行频率,可以在保证CPU簇性能的情况下,平衡CPU功耗。
在第一方面提供的一种可能中,获取***状态信息,包括:在第一时刻,获取第一时刻的前n帧的***状态信息,第一时刻的前n帧的***状态信息包括前n帧中每帧对应的第一负载,前n帧中每帧对应的第二负载、前n帧中每帧对应的第三负载以及前n帧内每帧的帧率,n≥1;将目标CPU簇的运行频率设置为目标运行频率,包括:将目标CPU簇在第一时刻的后一帧期间的运行频率设置为目标运行频率。
也就是说,本申请可以目标CPU簇在前一帧或前几帧的运行情况(包括负载和FPS)来调整目标CPU簇在当前帧的运行频率,实现以帧为粒度的频率调节,更加精细。
在第一方面提供的一种可能中,第一时刻为任意一帧结束的时刻。
在第一方面提供的一种可能中,预设应用为游戏应用。
在第一方面提供的一种可能中,负载为CPU利用率。
第二方面,本申请提供一种频率调节神经网络的训练方法,用于训练得到电子设备的目标CPU簇对应的频率调节神经网络,电子设备运行有预设应用,预设应用包括多个线程,多个线程中包括与电子设备的CPU簇存在绑定关系的线程,电子设备的CPU簇中包括与频率调节神经网络对应的目标CPU簇,频率调节神经网络用于调整频率调节神经网络对应的目标CPU簇的运行频率,方法包括:对于任一目标CPU簇,根据目标CPU簇对应的强化学习网络模型与目标CPU簇交互获得的数据,获得目标CPU簇对应的强化学习网络模型的训练数据;利用训练数据,对目标CPU簇对应的强化学习网络模型进行强化学习的训练,获得目标CPU簇对应的频率调节神经网络;其中,目标CPU簇对应的频率调节神经网络的输入***状态信息,目标CPU簇对应的频率调节神经网络的输出为目标CPU簇的运行频率,***状态信息包括第一负载、第二负载、第三负载以及预设应用的帧率,其中第一负载为所有线程的负载总和,第二负载为与目标CPU簇存在绑定关系的线程的负载总和,第三负载为目标CPU簇的负载。
可以理解地,结合每个CPU簇自身的负载情况以及绑定至该CPU簇的线程的负载情况,对该CPU簇对应的频率调节神经网络进行训练,可以得到与每个CPU簇自身实际情况匹配的频率调节神经网络。同时,针对应用来训练得到频率调节神经网络,使得调节得到的CPU频率与应用的需求更匹配。
在第二方面提供的一种可能中,训练数据包括多个样本,每个样本包括状态、动作及奖励,根据强化学习网络模型与目标CPU簇交互获得的数据,获得目标CPU簇对应的强化学习网络模型的训练数据,包括:在第一时刻获取***状态信息,将***状态信息作为状态,***状态信息包括第一时刻的前n帧中每帧对应的第一负载,前n帧中每帧对应的第二负载、前n帧中每帧对应的第三负载的均以及前n帧内帧率以及前n帧内每帧对应的帧率,n≥1;将状态输入目标CPU簇对应的强化学习网络模型,获取目标运行频率,将目标运行频率作为状态;将目标CPU簇在第一时刻的后一帧期间的运行频率设置为目标运行频率;获取预设应用运行于第一时刻的后一帧期间的帧率以及目标CPU簇的功耗,并计算得到奖励。
在第二方面提供的一种可能中,帧率、功耗及奖励满足:
其中,rt为奖励,fpst为帧率,FPS为预设的目标帧率,Δ为预设的差值,P(ft)为功耗,为与目标CPU簇的频率ft有关的参数。
如此,当实际检测的帧率fpst低于目标帧率FPS时,帧率差值(即fpst与目标帧率FPS的差值)主导奖励,其目的在于提升CPU频率以提高帧率。否则,奖励是功耗的开销,其目的在于降低CPU频率以降低CPU功耗,如此达到应用性能和CPU功耗的平衡。
在第二方面提供的一种可能中,方法还包括:获取跟踪文件,跟踪文件包括多帧的帧长、多个线程在多帧内的运行时长、每个线程所唤醒的线程以及每个线程所等待的线程;根据跟踪文件中每个线程所唤醒的线程以及每个线程所等待的线程,确定线程间的依赖关系,依赖关系用于指示线程间为串行执行或并行执行;根据线程的CPU利用率确定线程的类型,类型包括第一类型及第二类型,第一类型的线程的CPU利用率高于第二类型的线程的CPU利用率;根据线程的类型及依赖关系,分别建立每个线程与一个CPU簇的绑定关系,多个线程所绑定的CPU簇相同或不同。
在第二方面提供的一种可能中,根据线程的类型及依赖关系,分别建立每个线程与一个CPU簇的绑定关系,多个线程所绑定的CPU簇相同或不同,一个或多个CPU簇包括第一CPU簇和第二CPU簇,包括:将第一类型的线程中并行执行的两个线程划分至两个不同线程组,将第一类型的线程中串行执行的两个线程划分至同一个线程组,得到两个线程组;建立两个线程组中的一个线程组与第一CPU簇的绑定关系,建立两个线程组中的另一个线程组与第二CPU簇的绑定关系,以及建立第二类型的线程与第二CPU簇的绑定关系。
如此,不仅能使得重负载线程能够被并行执行,提高任务处理效率;还能够用第二CPU簇分担第一CPU簇的任务,实现负载均衡。
在第二方面提供的一种可能中,第一CPU簇所支持的运行频率高于第二CPU簇所支持的运行频率,从而满足重负载线程对CPU频率的需求。
在第二方面提供的一种可能中,若在多帧中存在至少k帧中线程的CPU利用率大于或等于第一阈值,线程为第一类型的线程,k≥1;若在多帧中少于k帧中线程的CPU利用率大于或等于第二阈值,线程为第二类型的线程。
在第二方面提供的一种可能中,预设应用为游戏应用。
第三方面,本申请提供一种电子设备,电子设备包括:存储器和处理器;处理器与存储器耦合;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得电子设备执行如第一方面、第二方面任一可能的方法。
第四方面,本申请提供一种计算机可读存储介质,包括计算机指令;当计算机指令在电子设备上运行时,使得电子设备执行如第一方面、第二方面任一可能的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面、第二方面及其任一种可能的设计方式的方法。
第六方面,本申请提供一种芯片***,该芯片***包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片***可以应用于包括通信模块和存储器的终端设备。该接口电路用于从终端设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,终端设备可以执行如第一方面、第二方面及其任一种可能的设计方式的方法。
其中,第三方面至第六方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种游戏场景示意图;
图2为相关技术提供的一种智能体与环境的交互示意图;
图3为本申请实施例提供的一种智能体与环境的交互示意图;
图4为本申请实施例提供的一种***架构100的结构示意图;
图5为本申请实施例提供的一种频率调节神经网络的训练方法的流程示意图一;
图6为本申请实施例提供的一种线程分组过程示意图;
图7为本申请实施例提供的一种频率调节神经网络的训练方法的示意图;
图8为本申请实施例提供的一种频率调节神经网络的训练方法的流程示意图二;
图9为本申请实施例提供的一种调频方法的流程示意图一;
图10为本申请实施例提供的一种执行设备1000的结构示意图;
图11为本申请实施例提供的一种训练设备1100的结构示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供的调频方法能够应用于需要调节CPU频率的场景中,例如游戏场景、视频通话场景、看视频场景等。可以理解地,电子设备中CPU的频率越高,则CPU可提供的运算处理能力越强,从而提升设备的性能;CPU的频率越低,则CPU可提供的运算处理能力越有限,从而能够降低设备功耗,避免设备温度过高。
具体而言,如图1所示,本申请实施例的调频方法能够应用在游戏场景中,电子设备可以通过调高CPU频率,以满足游戏流畅运行、高帧率(frame per second,FPS)的需求;以及,电子设备可以通过降低CPU频率,降低设备功耗,减轻发热情况。也即,在游戏场景中,电子设备可以通过调节CPU频率来平衡游戏性能和功耗。
在一些相关技术中,面对上述调节CPU频率的场景,由电子设备的调度器,如能源感知调度器(energy aware scheduling,EAS)、完全公平调度器(completely fairscheduler,CFS)、功率调度器(power governor)等调度器,基于历史窗口内测量得到的CPU负载,选取对应的CPU频率。其中,CPU负载越高,则CPU频率越高,以此满足算力需求。
但相关技术提供的调频方案,是依据CPU负载调整CPU频率,而CPU负载则是反映整个设备的资源利用情况,导致这种调频方案虽然能满足算力需求、快速完成任务、提高***吞吐量,但无法保证特定应用的性能,且无法保证最优的能效比。
针对上述问题,本申请提供一种频率调节神经网络的训练方法以及调频方法,可以在保证预设应用(例如游戏应用、视频应用等)运行性能的前提下,最大限度地降低CPU功耗,提升用户使用特定应用过程中的体验。
本申请提供一种频率调节神经网络的训练方法以及调频方法,涉及人工智能领域,具体可以应用于优化CPU调度与频率调节机制,对训练数据(如本申请中的CPU利用率、FPS、运行频率以及功耗)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的频率调节神经网络(即用于调节频率的神经网络);并且,本申请实施例提供的调频方法可以运用上述训练好的频率调节神经网络,将输入数据(如本申请中的CPU利用率、游戏应用的FPS)输入到所述训练好的频率调节神经网络中,得到输出数据(如本申请中的运行频率)。需要说明的是,本申请实施例提供的频率调节神经网络的训练方法以及调频方法是基于同一个构思产生的发明,也可以理解为一个***中的两个部分,或一个整体流程的两个阶段:如网络训练阶段和网络应用阶段。
为了更好地理解本申请实施例,下面先在此对本申请实施例涉及的强化学习做简单介绍:
强化学习(reinforcement learning,RL)用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。强化学习的常见模型是马尔可夫决策过程(markov decision process,MDP)。MDP是一种分析决策问题的数学模型。强化学习是智能体(agent)以“试错”的方式进行学习,通过动作(action)与环境进行交互获得的奖励(reward)指导行为,目标是使智能体获得最大的奖励。强化学习中由环境提供的强化信号(即奖励)对产生动作的好坏作一种评价,而不是告诉强化学习***如何去产生正确的动作。由于外部环境提供的信息很少,智能体必须靠自身的经历进行学习。通过这种方式,智能体在行动-评价(即奖励)的环境中获得知识,改进行动方案以适应环境。常见的强化学习算法有DQN(Deep Q Network),Q-learning,策略梯度(policy gradient),演员-评价者(actor-critic)等。
如图2所示,强化学习主要包含五个元素:智能体(agent)、环境(environment)、状态(state)、动作(action)与奖励(reward)。其中,状态是对环境的描述,在智能体做出动作后,状态会发生变化。动作是对智能体行为的描述,是智能体决策的结果。也就是说,智能体的输入为状态,输出为动作。奖励(正向或者负向)是智能体基于其给出动作后环境的反馈而计算得到的。强化学习的训练过程为:通过智能体与环境进行多次交互,获得每次交互的动作、状态、奖励;将这多组(动作,状态,奖励)作为训练数据,对智能体进行一次训练。采用上述过程,对智能体进行下一轮次训练,直至满足收敛条件。
作为示例,获得一次交互的动作、状态、奖励的过程如图2所示,将环境当前状态st输入至智能体,智能体输出动作at,根据环境在动作at作用下的相关性能指标计算本次交互的奖励rt,至此获得本次交互的动作at、状态st以及奖励rt。记录本次交互的动作at、状态st以及奖励rt,以备后续用来训练智能体。同时记录环境在动作at作用下的下一个状态st+1,以便实现智能体与环境的下一次交互。
对应于本实施例中,如图3所示,智能体可以是频率调节器,环境可以是运行有预设应用的CPU。其中,CPU包括多个CPU簇(CPU Cluster)。频率调节器可包括多个频率调节神经网络。每个频率调节神经网络可对应一个CPU簇,用于调节对应CPU簇的运行频率。需要说明的是,CPU簇的数量大于等于频率调节神经网络的数量。
多个CPU簇的处理能力可以相同也可以不同。其中有多个处理能力不同的CPU簇的处理器称为异构多核处理器。异构多核处理器中每个CPU簇所支持的频率可以不同。
预设应用可以为游戏应用、视频应用、办公应用等,在此不做具体限制。本实施例主要以预设应用为游戏应用为例,进行说明。
其中,状态包括以下至少三项:各CPU簇的负载、游戏应用中各线程的负载以及游戏应用的帧率。其中,CPU簇的负载包括该CPU簇的CPU利用率,线程的负载包括线程的CPU利用率。
在本实施例中,动作包括CPU簇的运行频率。应理解,CPU簇支持的频率可以有多种情况,如800MHz、1GHz、1.2GHz等。相应的,动作集合中也包括对应的多个动作。智能体接收到当前状态st后,可以从多种CPU簇的频率(即动作集合)中决策出当前状态st对应的CPU簇的频率(即动作),以使智能体获得的正向的奖励的概率增大。
以及,奖励是应用性能参数和CPU簇的功耗参数的函数。即,用于计算奖励的奖励参数包括应用性能参数和CPU簇的功耗参数。这样,可以在奖励中平衡应用性能(如游戏帧率、画面清晰度等)和CPU簇的功耗。应理解,环境对智能体反馈奖励的实质为:环境向智能体反馈奖励参数。后续,智能体需要基于奖励参数计算得到奖励并据此更新决策策略。
需要说明的是,上述频率调节器以及CPU可集成于一电子设备上,也可以分别设置于不同的电子设备,通过两个电子设备之间的输入/输出(input/out,I/O)接口传输数据(例如上述CPU的负载、游戏应用中各线程的负载以及游戏应用的帧率、CPU频率等)。
下文以频率调节器以及CPU集成于同一电子设备上,且该电子设备上装有游戏应用为例进行举例说明。
本实施例提供的方法可包括两个阶段,分别为模型训练阶段和模型应用阶段。
在模型训练阶段,本申请实施例提供一种频率调节神经网络的训练方法,其可先按照线程负载将游戏应用的线程划分为多个线程组,并将多个线程组绑定至不同的CPU簇,从而使不同的线程组运行于不同的CPU簇上。然后,对于不同的CPU簇,以该CPU簇的CPU利用率、绑定至该CPU簇的线程的总负载、所有线程的总负载以及游戏帧率为状态,以该CPU簇的频率为动作,并计算奖励,以此对强化学习模型进行训练,得到多个收敛的强化学习模型(即频率调节神经网络),该多个频率调节神经网络与不同的CPU簇对应。
在模型应用阶段,本申请实施例提供一种调频方法,其对于每个频率调节神经网络,将前n帧内对应CPU簇的负载、前n帧内绑定至该CPU簇的线程组的总负载、前n帧内所有线程组的总负载以及前n帧内的游戏帧率输入至该频率调节神经网络。该频率调节神经网络可输出CPU频率,用于调节对应CPU簇下一帧的运行频率。
下面从模型训练阶段和模型应用阶段对本申请提供的方法进行描述:
参阅图4,为本申请实施例提供的一种***架构100。该如图4所示,数据采集设备160用于采集训练数据,本申请实施例中训练数据包括:各个线程的CPU利用率、各个CPU簇的CPU利用率、FPS、CPU频率以及其他参数;并将训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。下面将更详细地描述训练设备120如何基于训练数据得到目标模型/规则101,该目标模型/规则101能够用于实现本申请实施例提供的调频方法,即将各个线程的CPU利用率、各个CPU簇的CPU利用率、FPS输入该目标模型/规则101,即可得到CPU频率。本申请实施例中的目标模型/规则101具体可以为频率调节神经网络(即用于调节CPU频率的强化学习模型)。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的***或设备中,如应用于图4所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等,还可以是服务器或者云端等。在图4中,执行设备110配置有I/O接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:各个线程的CPU利用率、各个CPU簇的CPU利用率、FPS等。
预处理模块113用于根据I/O接口112接收到的输入数据进行预处理,在本实施例中,预处理模块113可用于对输入数据进行平滑操作等。
在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储***150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储***150中。
最后,I/O接口112将处理结果,如上述得到的CPU频率返回给客户设备140,从而提供给用户。
值得注意的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则,该相应的目标模型/规则即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。此外,图4仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图4中,数据存储***150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储***150置于执行设备110中。又例如,上述客户设备140、执行设备110可以是同一个设备。
下文先结合附图说明上述的模型训练阶段。
图5示出了本申请实施例提供的一种频率调节神经网络的训练方法的流程示意图一,可应用于图4中的训练设备120,其具体说明了训练设备120将游戏应用的线程划分为多个线程组,建立线程与CPU簇的绑定关系的过程。如图5所示,该频率调节神经网络的训练方法包括:
S510,获取游戏应用的trace(跟踪)文件。
该trace文件主要包括游戏应用运行期间,每帧的帧长,每帧的起始时刻、结束时刻,每个CPU簇在每帧内的CPU利用率,每个CPU簇在每帧内的频率,与游戏应用运行相关的线程的名称,每个线程是由哪个CPU簇执行、每个线程在每帧内的运行时长,每个线程开始运行的时刻、结束运行的时刻,每个线程所唤醒的对象,每个线程的等待时长、所等待的对象(即另一个线程)等信息。其中,与游戏应用运行相关的线程包括游戏应用自身的多个线程,以及游戏运行过程中所涉及到的其他线程,即不属于游戏应用的线程。
S520,分析trace文件,确定多个目标应用线程间的依赖关系。
其中,该目标应用线程是指游戏应用自身包括的多个线程。
在本实施例中,依赖关系可根据线程的唤醒对象以及等待对象确定,用于指示两个线程间为串行执行或并行执行。示例性的,以线程A与线程B为例,若线程A可以唤醒线程B,但线程B不能唤醒线程A,则表明该线程B依赖于线程A;若线程A可以唤醒线程B,且线程B也可以唤醒线程A,则表明线程A和线程B之间相互依赖;若线程A和线程B各自独立执行,不存在唤醒与被唤醒的情况,则表明线程A与线程B相互独立。
在线程B依赖于线程A的情况下,电子设备必须先执行线程A,再由线程A唤醒线程B,即电子设备不能同时执行线程A和线程B,线程A与线程B之间是串行执行的。在线程A和线程B之间互相依赖或者相互独立的情况下,无所谓电子设备先执行线程A还是线程B,两个可以并行执行。
以游戏为例,训练设备120对/>游戏的trace文件进行分析,可以得到如图6所示的部分线程间依赖关系图。如图6所示,该与该游戏运行相关的线程包括:unityGfx(渲染线程)、unityMain(逻辑线程)、worker(工人)、worker2、surfaceFlinger(进程间渲染)、Audio(音频)、Network(网络)、input(输入)等多个线程。其中,unityGfx线程、unityMain线程、worker线程及worker2线程为/>游戏自己的线程,surfaceFlinger线程、Audio线程、Network线程及input线程为运行/>游戏过程中涉及到的其他线程。其中,unityGfx线程与unityMain线程之间可以互相唤醒,可以并行;woker2线程只能由unityGfx线程唤醒,两者只能串行。
S530,根据每个目标应用线程的CPU利用率确定对应目标应用线程的类型,将相同类型的目标应用线程划分至同一个组。
其中,目标应用线程的CPU利用率即为目标应用线程的负载,为目标应用线程在一帧中的运行时长在该帧中的占比。例如,一帧的帧长为12ms,unityMain线程在该帧时间内的运行时长为6ms,则该unityMain线程在该帧内的CPU利用率为50%。
在本实施例中,目标应用线程的类型可包括轻负载线程和重负载线程两类。训练设备120可根据每个目标应用线程在多帧内的CPU利用率将其确定为轻负载线程以及重负载线程。其中,重负载线程的CPU利用率,高于轻负载线程组的CPU利用率。以及,训练设备120还可以将所有轻负载线程划分至轻负载线程组,将所有重负载线程划分至重负载线程组。
在一种可选的实施方式中,以训练设备120获取了目标应用线程在连续k帧内的CPU利用率为例。若目标应用线程在连续k帧内,存在超过m帧的CPU利用率大于或等于第一阈值,则确定该线程为重负载线程,并将其划分至重负载线程组;否则,确定该线程为轻负载线程,并将其划分至轻负载线程组。其中,k和m为正整数,m小于k。
示例性的,k=10,m=6,第一阈值为50%,若训练设备120获取目标应用线程在10帧内的CPU利用率分为:30%、55%、45%、65%、60%、61%、58%、70%、20%、25%。则由于该线程在10帧内存在6帧的CPU利用率超过50%,训练设备120确定其为重负载线程。
在另一种可选的实施方式中,训练设备120可计算每个目标应用线程在k帧内的CPU利用率均值,若CPU利用率均值大于或等于第一阈值,则确定该线程为重负载线程,并将其划分至重负载线程组;若CPU利用率均值小于第一阈值,则确定该线程为轻负载线程,并将其划分至轻负载线程组。
可选的,训练设备120还可以将游戏运行过程中所涉及到的其他线程划分为一个组,例如为其他线程组。或者,训练设备120可以将游戏运行过程中所涉及到的其他线程中CPU利用率大于或等于第二阈值的线程划分至轻负载线程组。
示例性的,如图6所示,训练设备120将unityGfx和unityMain划分至重负载线程组,将worker、worker2以及surfaceFlinger划分至轻负载线程组,将Audio、Network及input划分为其他线程组。
需要说明的是,上述分组情况仅为示例,训练设备120还可以将目标应用线程划分为更多的线程组,例如4个、5个、6个等,在此不做具体限制。
S540,根据目标应用线程的类型及依赖关系,建立每个目标应用线程与CPU簇的绑定关系。
其中,建立目标应用线程与CPU簇的绑定关系后,可使目标应用线程由对应CPU簇执行。
在本实施例中,对于重负载线程,训练设备120可以根据依赖关系将所有重负载线程划分为两组线程。具体的,训练设备120将能够并行执行的两个重负载线程分别划分至两个线程组,将仅能串行执行的两个重负载线程划分至同一个组,如此得到两组线程。然后,训练设备120可建立两组线程中的其中一组线程与第一CPU簇的绑定关系,建立两组线程中的另一组线程与第二CPU簇的绑定关系。如此,不仅能使得重负载线程能够被并行执行,提高任务处理效率;还能够用第二CPU簇分担第一CPU簇的任务,实现负载均衡。
此外,对于轻负载线程,训练设备120可以建立所有轻负载线程与第二CPU簇的绑定关系。
在一种可选的实施方式中,第一CPU簇、第二CPU簇分别为大核、中核,即第一CPU簇、第二CPU簇所支持的频率依次减小,如此满足重负载线程对CPU频率的需求。
示例性的,如图6所示,考虑到unityGfx与unityMain可以并行执行,训练设备120将unityGfx绑定至第一CPU簇,将unityMain、woker、worker2以及surfaceFlinger绑定至第二CPU簇。
在一种可选的实施方式中,训练设备120可以无需确定多个目标应用线程间的依赖关系,即无需执行S520。在这种情况下,训练设备120可建立所有重负载线程与第一CPU簇的绑定关系,建立所有轻负载线程与第二CPU簇的绑定关系,即使轻/重负载线程隔离运行。
可选的,对于其他线程组中的线程,电子设备可建立该组中所有线程与第三CPU簇或第二CPU簇的绑定关系。
在建立目标应用线程与CPU簇的绑定关系后,训练设备120可针对不同的CPU簇训练强化学习模型。在本实施例中,可给第一CPU簇、第二CPU簇分别训练第一频率调节神经网络、第二频率调节神经网络。其中,第一频率调节神经网络用于调节第一CPU簇的运行频率,第二频率调节神经网络用于调节第二CPU簇的运行频率。
需要说明的是,训练第一频率调节神经网络和训练第二频率调节神经网络的过程相同,区别在于,两者输入的状态值和输出的动作是与其对应的CPU簇相关。
具体的,如图7所示,对于第一CPU簇,可以将能表征游戏运行负载的信息和当前执行环境作为状态值输入第一频率调节神经网络,经过第一频率调节神经网络的决策输出第一频率。其中,能表征游戏运行负载的信息包括CPU利用率1、CPU利用率2,CPU利用率1为绑定至第一CPU簇的所有目标应用线程的CPU利用率的总和,CPU利用率2为所有目标应用线程的CPU利用率的总和。能表征当前执行环境包括FPS和CPU利用率3,CPU利用率3即为第一CPU簇的CPU利用率。将该第一频率作用于第一CPU簇后观测得到第一CPU簇的功耗1及游戏帧率作为回报。如此循环,以状态、动作和奖励组成数据样本对第一频率调节神经网络进行训练,直至第一频率调节神经网络收敛。
对于第二CPU簇,可以CPU利用率4、CPU利用率2、CPU利用率5以及FPS作为状态值,以第二CPU簇的频率为动作,以第二CPU簇的功耗2以及游戏帧率计算得到的奖励作为数据样本,对第二频率调节神经网络进行训练。其中,CPU利用率5为第二CPU簇的CPU利用率,CPU利用率4为绑定至第二CPU簇的所有目标应用线程的CPU利用率的总和。
图8示出了本申请实施例提供的一种频率调节神经网络的训练方法的流程示意图二,可应用于图4中的训练设备120,其具体说明了训练设备120训练得到频率调节神经网络的过程。如图8所示,该频率调节神经网络的训练方法包括:
S810,在t时刻,获取***状态值st。
其中,t时刻为游戏线程queue buffer执行完成时,即为将渲染好的一帧图像放回到数据缓冲区(buffer queue)的时刻,可以简单理解为一帧的结束时刻,也可以称为第一时刻。该***状态st包括游戏应用在前n帧内每帧的帧率、目标CPU簇在前n帧内每帧的CPU利用率、前n帧内每帧中绑定至目标CPU簇的所有目标应用线程的CPU利用率的总和,以及前n帧内每帧中所有目标应用线程的CPU利用率的总和。
其中,前n帧是指该t时刻的前n帧。例如,t时刻为第i帧的结束时刻,则该前n帧包括第i-n帧至第i帧。n为大于等于1的整数,例如为1、2、3等,在此不做具体限制。
示例性的,n为3,训练设备120可以在一帧结束的时刻,获取该时刻前的3帧中,每帧中目标CPU簇的CPU利用率(可称为第三负载),每帧中绑定至目标CPU簇的所有目标应用线程的CPU利用率的总和(可称为第二负载),每帧中所有目标应用线程的CPU利用率的总和(可称为第一负载),以及每帧的游戏帧率。
在一种可选的实施方式中,训练设备120可对上述帧率、各CPU利用率进行平滑处理,得到该***状态值st。
其中,该目标CPU簇可以为上述的第一CPU簇或第二CPU簇。以图6为例,绑定至第一CPU簇的所有目标应用线程的CPU利用率的总和,即为unityGfx的CPU利用率。绑定至第二CPU簇的所有目标应用线程的CPU利用率的总和,即为unityMain的CPU利用率、worker的CPU利用率以及worker2的CPU利用率的和。所有目标应用线程的CPU利用率等的和,即为unityGfx的CPU利用率、unityMain的CPU利用率、woker的CPU利用率、woker2的CPU利用率等的和。
S820,将***状态值st输入DQN网络,得到目标运行频率at。
具体的,DQN网络可以从目标CPU簇的CPU频率可调节范围中选取下一帧该目标CPU簇的运行频率作为输出,即得到目标运行频率at。
S830,将目标CPU簇的运行频率设置为目标运行频率at。
例如,若目标CPU簇为第一CPU簇,则将第一CPU簇的运行频率设置为目标运行频率at;若目标CPU簇为第二CPU簇,则将第二CPU簇的运行频率设置为目标运行频率at。
具体的,训练设备120可将目标CPU簇在当前帧的运行频率设置为目标运行频率at。该当前帧可以理解为t时刻的后一帧。示例性的,训练设备120依次获取第1帧、第2帧、第3帧、第4帧……若该t时刻为第3帧结束的时刻,t时刻的前3帧可以为第1帧、第2帧、第3帧,t时刻的后一帧为第4帧,也即训练设备120可利用第1帧、第2帧、第3帧期间的负载及FPS,预测目标CPU簇在第4帧期间的运行频率。
S840,在t+1时刻,获取游戏帧率、目标CPU簇的功耗。
其中,在t+1时刻可以理解为当前帧的结束时刻。
S850,基于t+1时刻的游戏帧率以及目标CPU簇的功耗计算得到奖励rt+1,并根据奖励rt+1更新DQN网络。
作为一种示例,奖励r根据如下分段函数获得:
其中,Cf为常数,fpst为t时刻的游戏帧率,FPS为预设的目标帧率,P(ft)为功耗,为与目标CPU簇的频率ft有关的参数。
根据上述分段函数可知:当实际检测的帧率fpst低于目标帧率FPS时,帧率差值(即fpst与目标帧率FPS的差值)主导奖励,其目的在于提升CPU频率以提高帧率。否则,奖励是功耗的开销,其目的在于降低CPU频率以降低CPU功耗。
S860,判断DQN网络是否收敛。
在一种可选的实施方式中,可计算DQN网络的损失函数。若该损失函数小于阈值,则该DQN网络收敛;若损失函数大于阈值,则该DQN网络不收敛。
其中,DQN网络的损失函数满足算式:
其中,γ为预设的常数,Q(st,at;θ-)为Q函数,Q函数是以θ为变量的函数,其以状态st和动作at为输入,输出对应的Q值。是指Q函数的最大值,可根据目前收集到的所有动作和状态确定。
需要说明的是,上述所说的根据奖励更新DQN网络,实际上是更新损失函数中的θ值。通过不断更新θ值,以得到最大的Q值。
S870,当DQN网络收敛时,输出频率调节神经网络。
需要说明的是,DQN包含两个神经网络,一个是Q网络,一个是目标神经网络(即本申请的频率调节神经网络)。该目标神经网络的结构和Q网络相同,且初始权重也相同。在Q网络收敛时,将Q网络的参数同步至目标神经网络,便可得到频率调节神经网络。
需要说明的是,在S840中,训练设备120还可以在t+1时刻获取状态值st+1,当QDN网络不收敛时,训练设备120可将状态值st+1重新输入DQN网络,并按照图8所示的流程继续训练DQN网络,直至DQN网络收敛为止。
此外,在训练过程中,训练设备120可以收集(st,at,rt)作为训练样本,便于累积训练数据,进行其他模型的训练。
下文将继续说明本申请的模型应用阶段。
图9示出了本申请实施例提供的一种调频方法的流程示意图,可应用于图4中的执行设备110。如图9所示,该调频方法包括:
S910,在第一时刻,获取第一时刻的前n帧内每帧的游戏帧率、每帧中目标CPU簇的CPU利用率、每帧中与目标CPU簇绑定的所有目标应用线程的CPU利用率总和以及每帧中所有目标应用线程的CPU利用率总和作为***状态值。
S920,将***状态值输入目标CPU簇对应的频率调节神经网络,得到目标运行频率。
S930,将目标CPU簇在第一时刻的后一帧期间的运行频率设置为目标运行频率。
需要说明的是,在执行本实施例提供的调频方法前,训练设备110不仅需要将上述频率调节神经网络移植进执行设备110中,还需要预先按照训练设备120中的方式建立游戏应用中各线程与对应CPU簇的绑定关系。
在本实施例中,一方面针对应用来训练得到频率调节神经网络,并用于该应用运行时,CPU频率的确定。这样,以应用为粒度,使得调节得到的CPU频率与应用的需求更匹配。另一方面,强化学***衡了应用性能和CPU功耗,而不仅仅是CPU功耗。这样,使用频率调节神经网络确定的CPU频率可以平衡应用性能和CPU的功耗,合理性更强。
此外,本申请是以前几帧***状态值为输入,得到当前帧的CPU运行频率,实现以帧为单位的频率调节,更加精准。
接下来介绍本申请实施例提供的一种执行设备,请参阅图10,图10为本申请实施例提供的执行设备的一种结构示意图,执行设备1000具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,执行设备1000上可以用于实现图9对应实施例中频率调节的功能。具体的,执行设备1000包括:接收器1001、发射器1002、处理器1003和存储器1004(其中执行设备1000中的处理器1003的数量可以一个或多个,图10中以一个处理器为例),其中,处理器1003可以包括应用处理器10031和通信处理器10032。在本申请的一些实施例中,接收器1001、发射器1002、处理器1003和存储器1004可通过总线或其它方式连接。
存储器1004可以包括只读存储器和随机存取存储器,并向处理器1003提供指令和数据。存储器1004的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1004存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1003控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线***耦合在一起,其中总线***除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线***。
上述本申请实施例揭示的调频方法可以应用于处理器1003中,或者由处理器1003实现。处理器1003可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1003可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1003可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1004,处理器1003读取存储器1004中的信息,结合其硬件完成上述方法的步骤。
接收器1001可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1002可用于通过第一接口输出数字或字符信息;发射器1002还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1002还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器1003,用于执行图4对应实施例中的执行设备执行的调频方法。
本申请实施例还提供了一种训练设备,请参阅图11,图11是本申请实施例提供的一种训练设备1100的结构示意图,具体的,训练设备1100由一个或多个服务器实现,训练设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)1111(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1111可以设置为与存储介质1130通信,在训练设备1100上执行存储介质1130中的一系列指令操作。
训练设备1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158;或,一个或一个以上操作***1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1111,用于执行上述实施例中的与频率调节神经网络训练方法相关的步骤。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (15)
1.一种调频方法,其特征在于,应用于电子设备,所述电子设备运行有预设应用,所述预设应用包括多个线程,所述多个线程中包括与所述电子设备的CPU簇存在绑定关系的线程,所述电子设备的CPU簇中包括与频率调节神经网络对应的目标CPU簇,所述频率调节神经网络用于调整所述频率调节神经网络对应的目标CPU簇的运行频率,所述方法包括:
对于任一目标CPU簇,获取***状态信息,所述***状态信息包括第一负载、第二负载、第三负载以及所述预设应用的帧率,其中所述第一负载为所有线程的负载总和,所述第二负载为与所述目标CPU簇存在绑定关系的线程的负载总和,所述第三负载为所述目标CPU簇的负载;
将所述***状态信息输入所述目标CPU簇对应的频率调节神经网络,获取所述目标CPU簇对应的频率调节神经网络输出的目标运行频率;
将所述目标CPU簇的运行频率设置为所述目标运行频率。
2.根据权利要求1所述的方法,其特征在于,所述获取***状态信息,包括:
在第一时刻,获取所述第一时刻的前n帧的***状态信息,所述第一时刻的前n帧的***状态信息包括所述前n帧中每帧对应的第一负载,所述前n帧中每帧对应的第二负载、所述前n帧中每帧对应的第三负载以及所述前n帧内每帧的帧率,n≥1;
所述将所述目标CPU簇的运行频率设置为所述目标运行频率,包括:
将所述目标CPU簇在所述第一时刻的后一帧期间的运行频率设置为所述目标运行频率。
3.根据权利要求1或2所述的方法,其特征在于,所述第一时刻为任意一帧结束的时刻。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述预设应用为游戏应用。
5.根据权利要求1-3中任意一项所述的方法,其特征在于,所述负载为CPU利用率。
6.一种频率调节神经网络的训练方法,其特征在于,用于训练得到电子设备的目标CPU簇对应的频率调节神经网络,所述电子设备运行有预设应用,所述预设应用包括多个线程,所述多个线程中包括与所述电子设备的CPU簇存在绑定关系的线程,所述电子设备的CPU簇中包括与频率调节神经网络对应的目标CPU簇,所述频率调节神经网络用于调整所述频率调节神经网络对应的目标CPU簇的运行频率,所述方法包括:
对于任一目标CPU簇,根据所述目标CPU簇对应的强化学习网络模型与所述目标CPU簇交互获得的数据,获得所述目标CPU簇对应的强化学习网络模型的训练数据;
利用所述训练数据,对所述目标CPU簇对应的强化学习网络模型进行强化学习的训练,获得所述目标CPU簇对应的频率调节神经网络;
其中,所述目标CPU簇对应的频率调节神经网络的输入***状态信息,所述目标CPU簇对应的频率调节神经网络的输出为所述目标CPU簇的运行频率,所述***状态信息包括第一负载、第二负载、第三负载以及所述预设应用的帧率,其中所述第一负载为所有线程的负载总和,所述第二负载为与所述目标CPU簇存在绑定关系的线程的负载总和,所述第三负载为所述目标CPU簇的负载。
7.根据权利要求6所述的方法,其特征在于,所述训练数据包括多个样本,每个样本包括状态、动作及奖励,所述根据强化学习网络模型与所述目标CPU簇交互获得的数据,获得所述目标CPU簇对应的强化学习网络模型的训练数据,包括:
在第一时刻获取***状态信息,将所述***状态信息作为所述状态,所述***状态信息包括所述第一时刻的前n帧中每帧对应的第一负载,所述前n帧中每帧对应的第二负载、所述前n帧中每帧对应的第三负载的均以及所述前n帧内帧率以及所述前n帧内每帧对应的帧率,n≥1;
将所述状态输入所述目标CPU簇对应的强化学习网络模型,获取目标运行频率,将所述目标运行频率作为状态;
将所述目标CPU簇在所述第一时刻的后一帧期间的运行频率设置为所述目标运行频率;
获取所述预设应用运行于所述第一时刻的后一帧期间的帧率以及所述目标CPU簇的功耗,并计算得到所述奖励。
8.根据权利要求7所述的方法,其特征在于,所述帧率、所述功耗及所述奖励满足:
其中,rt为所述奖励,fpst为所述帧率,FPS为预设的目标帧率,Δ为预设的差值,P(ft)为所述功耗,为与目标CPU簇的频率ft有关的参数。
9.根据权利要求6-8中任意一项所述的方法,其特征在于,所述方法还包括:
获取跟踪文件,所述跟踪文件包括多帧的帧长、所述多个线程在所述多帧内的运行时长、每个线程所唤醒的线程以及每个线程所等待的线程;
根据所述跟踪文件中每个线程所唤醒的线程以及每个线程所等待的线程,确定线程间的依赖关系,所述依赖关系用于指示所述线程间为串行执行或并行执行;
根据所述线程的CPU利用率确定所述线程的类型,所述类型包括第一类型及第二类型,所述第一类型的线程的CPU利用率高于所述第二类型的线程的CPU利用率;
根据所述线程的类型及所述依赖关系,分别建立每个所述线程与一个CPU簇的绑定关系,所述多个线程所绑定的CPU簇相同或不同。
10.根据权利要求9所述的方法,其特征在于,所述根据所述线程的类型及所述依赖关系,分别建立每个所述线程与一个CPU簇的绑定关系,所述多个线程所绑定的CPU簇相同或不同,所述一个或多个CPU簇包括第一CPU簇和第二CPU簇,包括:
将所述第一类型的线程中并行执行的两个线程划分至两个不同线程组,将所述第一类型的线程中串行执行的两个线程划分至同一个线程组,得到两个线程组;
建立所述两个线程组中的一个线程组与所述第一CPU簇的绑定关系,建立所述两个线程组中的另一个线程组与所述第二CPU簇的绑定关系,以及建立所述第二类型的线程与所述第二CPU簇的绑定关系。
11.根据权利要求10所述的方法,其特征在于,所述第一CPU簇所支持的运行频率高于所述第二CPU簇所支持的运行频率。
12.根据权利要求9-11中任意一项所述的方法,其特征在于,若在所述多帧中存在至少k帧中所述线程的CPU利用率大于或等于第一阈值,所述线程为第一类型的线程,k≥1;
若在所述多帧中少于k帧中所述线程的CPU利用率大于或等于第二阈值,所述线程为第二类型的线程。
13.根据权利要求6-12中任意一项所述的方法,其特征在于,所述预设应用为游戏应用。
14.一种电子设备,其特征在于,所述电子设备包括:存储器和处理器;所述处理器与所述存储器耦合;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机指令;当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210010.7A CN117130769A (zh) | 2023-02-25 | 2023-02-25 | 一种调频方法、频率调节神经网络的训练方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210010.7A CN117130769A (zh) | 2023-02-25 | 2023-02-25 | 一种调频方法、频率调节神经网络的训练方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130769A true CN117130769A (zh) | 2023-11-28 |
Family
ID=88853366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310210010.7A Pending CN117130769A (zh) | 2023-02-25 | 2023-02-25 | 一种调频方法、频率调节神经网络的训练方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130769A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687495A (zh) * | 2024-02-04 | 2024-03-12 | 荣耀终端有限公司 | 一种数据获取方法、训练方法及电子设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475790A (zh) * | 2013-09-06 | 2013-12-25 | 中国科学院计算技术研究所 | 一种智能移动终端功耗管理方法 |
US20170031430A1 (en) * | 2015-07-29 | 2017-02-02 | Samsung Electronics Co., Ltd. | Method of managing power and electronic device |
CN108958450A (zh) * | 2018-06-11 | 2018-12-07 | 江苏食品药品职业技术学院 | 智能调节运行频率和功耗的计算机 |
CN109491494A (zh) * | 2018-11-26 | 2019-03-19 | 北京地平线机器人技术研发有限公司 | 功率参数的调整方法、装置及强化学习模型训练方法 |
CN109918141A (zh) * | 2019-03-15 | 2019-06-21 | Oppo广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
CN110333911A (zh) * | 2019-07-04 | 2019-10-15 | 北京迈格威科技有限公司 | 一种文件包读取方法及装置 |
CN110413400A (zh) * | 2018-04-28 | 2019-11-05 | 珠海全志科技股份有限公司 | 一种cpu频率调节方法及*** |
CN110795383A (zh) * | 2018-08-01 | 2020-02-14 | Oppo广东移动通信有限公司 | SoC频率控制方法、装置、终端及存储介质 |
US20210072814A1 (en) * | 2017-12-12 | 2021-03-11 | Samsung Electronics Co., Ltd. | Method and apparatus for operating a processor in an electronic device |
CN113115451A (zh) * | 2021-02-23 | 2021-07-13 | 北京邮电大学 | 基于多智能体深度强化学习的干扰管理和资源分配方案 |
CN113448425A (zh) * | 2021-07-19 | 2021-09-28 | 哈尔滨工业大学 | 一种基于强化学习的动态并行应用程序能耗运行时优化方法及*** |
CN113742082A (zh) * | 2021-09-13 | 2021-12-03 | Oppo广东移动通信有限公司 | 应用资源分配方法及装置、计算机可读介质和终端 |
CN114510139A (zh) * | 2020-11-16 | 2022-05-17 | 深圳市万普拉斯科技有限公司 | 一种调频方法、装置及电子设备 |
CN114510140A (zh) * | 2020-11-16 | 2022-05-17 | 深圳市万普拉斯科技有限公司 | 一种调频方法、装置及电子设备 |
CN115579910A (zh) * | 2022-09-28 | 2023-01-06 | 国网福建省电力有限公司 | 一种微电网频率和电压的控制方法及终端 |
CN115705275A (zh) * | 2021-08-03 | 2023-02-17 | Oppo广东移动通信有限公司 | 参数获取方法、装置以及电子设备 |
-
2023
- 2023-02-25 CN CN202310210010.7A patent/CN117130769A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475790A (zh) * | 2013-09-06 | 2013-12-25 | 中国科学院计算技术研究所 | 一种智能移动终端功耗管理方法 |
US20170031430A1 (en) * | 2015-07-29 | 2017-02-02 | Samsung Electronics Co., Ltd. | Method of managing power and electronic device |
US20210072814A1 (en) * | 2017-12-12 | 2021-03-11 | Samsung Electronics Co., Ltd. | Method and apparatus for operating a processor in an electronic device |
CN110413400A (zh) * | 2018-04-28 | 2019-11-05 | 珠海全志科技股份有限公司 | 一种cpu频率调节方法及*** |
CN108958450A (zh) * | 2018-06-11 | 2018-12-07 | 江苏食品药品职业技术学院 | 智能调节运行频率和功耗的计算机 |
CN110795383A (zh) * | 2018-08-01 | 2020-02-14 | Oppo广东移动通信有限公司 | SoC频率控制方法、装置、终端及存储介质 |
CN109491494A (zh) * | 2018-11-26 | 2019-03-19 | 北京地平线机器人技术研发有限公司 | 功率参数的调整方法、装置及强化学习模型训练方法 |
CN109918141A (zh) * | 2019-03-15 | 2019-06-21 | Oppo广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
CN110333911A (zh) * | 2019-07-04 | 2019-10-15 | 北京迈格威科技有限公司 | 一种文件包读取方法及装置 |
CN114510139A (zh) * | 2020-11-16 | 2022-05-17 | 深圳市万普拉斯科技有限公司 | 一种调频方法、装置及电子设备 |
CN114510140A (zh) * | 2020-11-16 | 2022-05-17 | 深圳市万普拉斯科技有限公司 | 一种调频方法、装置及电子设备 |
CN113115451A (zh) * | 2021-02-23 | 2021-07-13 | 北京邮电大学 | 基于多智能体深度强化学习的干扰管理和资源分配方案 |
CN113448425A (zh) * | 2021-07-19 | 2021-09-28 | 哈尔滨工业大学 | 一种基于强化学习的动态并行应用程序能耗运行时优化方法及*** |
CN115705275A (zh) * | 2021-08-03 | 2023-02-17 | Oppo广东移动通信有限公司 | 参数获取方法、装置以及电子设备 |
CN113742082A (zh) * | 2021-09-13 | 2021-12-03 | Oppo广东移动通信有限公司 | 应用资源分配方法及装置、计算机可读介质和终端 |
CN115579910A (zh) * | 2022-09-28 | 2023-01-06 | 国网福建省电力有限公司 | 一种微电网频率和电压的控制方法及终端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687495A (zh) * | 2024-02-04 | 2024-03-12 | 荣耀终端有限公司 | 一种数据获取方法、训练方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7389177B2 (ja) | 連合学習方法、装置、機器及び記憶媒体 | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
CN113225377B (zh) | 物联网边缘任务卸载方法及装置 | |
CN111401744B (zh) | 一种移动边缘计算中不确定性环境下的动态任务卸载方法 | |
CN113989561B (zh) | 基于异步联邦学习的参数聚合更新方法、设备及*** | |
CN114866494B (zh) | 强化学习智能体训练方法、模态带宽资源调度方法及装置 | |
CN110647403B (zh) | 一种多用户mec***中的云端计算资源分配方法 | |
CN117130769A (zh) | 一种调频方法、频率调节神经网络的训练方法及电子设备 | |
CN113778691B (zh) | 一种任务迁移决策的方法、装置及*** | |
CN115714820A (zh) | 一种分布式的微服务调度优化方法 | |
Zhang et al. | A deep reinforcement learning approach for online computation offloading in mobile edge computing | |
Hu et al. | Dynamic task offloading in MEC-enabled IoT networks: A hybrid DDPG-D3QN approach | |
CN113645637B (zh) | 超密集网络任务卸载方法、装置、计算机设备和存储介质 | |
CN114090108A (zh) | 算力任务执行方法、装置、电子设备及存储介质 | |
CN113946423A (zh) | 基于图注意力网络的多任务边缘计算调度优化方法 | |
CN112860409A (zh) | 基于李雅普诺夫优化的移动云计算随机任务序列调度方法 | |
CN112817741A (zh) | 一种边缘计算的dnn任务控制方法 | |
Lim et al. | Real-time DNN model partitioning for QoE enhancement in mobile vision applications | |
CN110768827A (zh) | 一种基于群智能算法的任务卸载方法 | |
CN114138493A (zh) | 一种基于能耗感知的边缘算力资源调度方法 | |
CN114079953A (zh) | 无线网络***的资源调度方法、装置、终端及存储介质 | |
CN113747504A (zh) | 多接入边缘计算联合任务卸载和资源分配的方法及*** | |
CN112422651A (zh) | 一种基于强化学习的云资源调度性能瓶颈预测方法 | |
Zhuang et al. | $ Q_ {C}-DQN $: A Novel Constrained Reinforcement Learning Method for Computation Offloading in Multi-access Edge Computing | |
US11979295B2 (en) | Reinforcement learning agent training method, modal bandwidth resource scheduling method and apparatus |
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 |