CN117931461A - 一种计算资源的调度方法、策略网络的训练方法以及装置 - Google Patents
一种计算资源的调度方法、策略网络的训练方法以及装置 Download PDFInfo
- Publication number
- CN117931461A CN117931461A CN202410339430.XA CN202410339430A CN117931461A CN 117931461 A CN117931461 A CN 117931461A CN 202410339430 A CN202410339430 A CN 202410339430A CN 117931461 A CN117931461 A CN 117931461A
- Authority
- CN
- China
- Prior art keywords
- network
- strategy
- cpu
- gpu
- policy
- 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
- 238000000034 method Methods 0.000 title claims abstract description 246
- 238000012549 training Methods 0.000 title claims abstract description 146
- 230000008569 process Effects 0.000 claims description 140
- 238000012545 processing Methods 0.000 claims description 40
- 238000013507 mapping Methods 0.000 claims description 26
- 239000003795 chemical substances by application Substances 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims description 5
- 230000000630 rising effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 30
- 238000004891 communication Methods 0.000 description 19
- 230000009471 action Effects 0.000 description 18
- 238000007726 management method Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 12
- 230000001976 improved effect Effects 0.000 description 11
- 238000009499 grossing Methods 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000013480 data collection Methods 0.000 description 5
- 238000013468 resource allocation Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012854 evaluation process Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 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/5061—Partitioning or combining of resources
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本申请提出一种计算资源的调度方法、策略网络的训练方法以及装置,涉及计算机技术领域,用于在分配和调度计算资源的同时,能够兼顾手机等电子设备的功耗和性能。该方法应用于第一电子设备,包括:获取第一电子设备的当前运行状态特征;当前运行状态特征包括:CPU相关运行状态特征、GPU相关运行状态特征,以及绑核相关运行状态特征;基于训练确定的策略网络,获取与当前运行状态特征匹配的第一策略;其中,策略网络是对多智能体深度确定策略梯度MADDPG网络训练确定的;第一策略包括:第一中央处理器CPU调频策略、第一图形处理器GPU调频策略以及第一绑核策略;第一电子设备的处理器分别基于对应的第一策略,调度处理器对应的计算资源。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种计算资源的调度方法、策略网络的训练方法以及装置。
背景技术
智能手机等电子设备能够支持的游戏越来越丰富,游戏应用等消耗的计算资源也越来越大。如何在复杂的游戏场景中,协调中央处理器(computer processing unit,CPU)和图形处理器(graphics processing unit,GPU)等计算单元的资源分配,是现如今智能手机厂商亟需要解决的问题。分配的资源过低,将使得游戏频繁卡顿,影响使用体验;而分配的计算资源过高则会使得手机掉电快、发热严重。因此,亟需一种计算资源的分配和调度方案,能够兼顾手机等电子设备的功耗和性能。
发明内容
本申请实施例提供一种计算资源的调度方法、策略网络的训练方法以及装置,用于在分配和调度计算资源的同时,能够兼顾手机等电子设备的功耗和性能。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种计算资源的调度方法,该方法应用于第一电子设备,包括:
首先获取第一电子设备的当前运行状态特征。其中,当前运行状态特征可以包括:CPU相关运行状态特征、GPU相关运行状态特征,以及绑核相关运行状态特征。然后,第一电子设备基于由训练确定的策略网络,获取与当前运行状态特征匹配的第一策略。该策略网络是对多智能体深度确定策略梯度MADDPG网络训练确定的。根据策略网络获取的第一策略包括:第一CPU调频策略、第一GPU调频策略以及第一绑核策略。之后,第一电子设备的各处理器可以分别基于对应的第一策略,调度处理器对应的计算资源。
在该方案中,MADDPG网络的不同智能体之间存在着一定的关系,对MADDPG网络进行训练确定的策略网络,能够结合CPU相关运行状态特征、GPU相关运行状态特征以及绑核相关运行状态特征,协同调度CPU和GPU的计算资源,以及确定CPU的绑核策略。在游戏等应用运行过程中,能够使第一电子设备在复杂的游戏环境下平衡功耗和性能。
在第一方面的一种可能的实现方式中,上述当前运行状态特征是经过平滑处理后的运行状态特征。或者,当前运行状态特征是原始的运行状态特征,在获取第一电子设备的当前运行状态特征后,还可以包括对当前运行状态特征进行平滑处理。上述基于策略网络获取当前运行状态特征匹配的第一策略,具体是基于策略网络获取的经过平滑处理后的当前运行状态特征匹配的第一策略。这样,可以避免数据波动导致基于策略网络选择的策略异常的问题。
在第一方面的一种可能的实现方式中,训练确定的策略网络包括:训练确定的CPU策略网络、训练确定的GPU策略网络以及训练确定的绑核策略网络。在该方案中,基于训练确定的策略网络,获取与当前运行状态特征匹配的第一策略,具体可以包括:基于训练确定的CPU策略网络,获取与CPU相关运行状态特征对应的第一CPU调频策略。基于训练确定的GPU策略网络,获取与GPU相关运行状态特征对应的第一GPU调频策略。基于训练确定的绑核策略网络,获取与绑核相关运行状态特征对应的第一绑核策略。在该方案中,由不同的策略网络分别根据CPU、GPU和绑核相关的运行状态特征,获取CPU调度策略、GPU调度策略和绑核策略。而不同的策略网络是由MADDPG网络训练确定的,因此不同策略网络能够协同CPU、GPU和绑核相关的运行状态特征来选择最符合当前状态的策略。基于策略网络输出的策略调度CPU和GPU的计算资源,以及确定CPU的绑核策略,能够使第一电子设备在复杂的游戏环境下平衡功耗和性能。
在第一方面的一种可能的实现方式中,第一CPU调频策略包括CPU频点,第一GPU调频策略包括GPU频点。上述第一电子设备的处理器分别基于对应的第一策略,调度处理器对应的计算资源,具体可以包括:第一电子设备的CPU按照策略网络根据当前状态选择的CPU频点调整CPU的频率;第一电子设备的GPU按照策略网络根据当前状态选择的GPU频点调整GPU的频率;以及,第一电子设备的CPU按照策略网络根据当前状态选择的第一绑核策略,将当前运行应用的应用进程或应用线程绑定至CPU的对应核心。这样,可以合理的分配CPU、GPU的计算资源,从而兼顾第一电子设备的功耗和性能。在保证应用运行需求的前提下,尽量减少第一电子设备的功耗。
在第一方面的一种可能的实现方式中,CPU相关运行状态特征包括:CPU负载;或者,CPU相关运行状态特征包括:CPU负载以及以下至少一项:应用负载、应用画面每秒帧数FPS以及CPU温度。
在第一方面的一种可能的实现方式中,GPU相关运行状态特征包括:GPU负载,或者,GPU相关运行状态特征包括:GPU负载,以及以下至少一项:应用FPS以及GPU温度;
在第一方面的一种可能的实现方式中,绑核相关运行状态特征包括:CPU负载,或者,绑核相关运行状态特征包括:CPU负载以及以下至少一项:应用负载、应用FPS以及CPU温度。
在第一方面的一种可能的实现方式中,第一电子设备存储有运行状态特征与第二策略的多个第一映射关系。多个第一映射关系中,不同运行状态特征分别对应第一电子设备处于不同运行状态;不同的第二策略是将不同运行状态特征,分别输入训练确定的策略网络获得的。在该方案中,上述基于训练确定的策略网络,获取与当前运行状态特征匹配的第一策略,具体可以包括:第一电子设备根据多个第一映射关系,查找与当前运行状态特征匹配的第二策略,作为第一策略。
在该方案中,在基于训练好的策略网络协调分配计算资源时,可以按照运行状态特征在多个第一映射关系中查找匹配的频点和绑核策略。并且,通过这样的方式,可以节省在使用该训练好的策略网络分配计算资源时,策略网络的运算时间,提高了分配资源的效率。
在第一方面的一种可能的实现方式中,上述多个第一映射关系具体包括:特征桶与第三策略的多个第二映射关系。多个第二映射关系中的不同特征桶,是对第一电子设备在不同运行状态下的不同运行状态特征进行分桶处理获得的。在该方案中,上述根据多个第一映射关系,查找与当前运行状态特征匹配的第二策略,作为第一策略,具体可以包括:先确定当前运行状态特征所属的目标特征桶。这里的目标特征桶为不同特征桶中的任意一个。然后,根据多个第二映射关系,查找与目标特征桶匹配的第三策略,作为第一策略。
在该方案中,预先将第一电子设备在不同时刻的不同运行状态特征分桶处理,获得不同的特征桶。并且,基于不同的特征桶分别建立各自对应的第三策略之间的映射关系,将其存储在第一电子设备中。这样,第一电子设备在基于策略网络分别和调度计算资源时,能够减少数据的查找量,进一步提高处理效率,减少选择策略的处理时间。同时,对不同运行状态特征进行分桶处理,可以保证输入策略网络的状态是离散化的。
在第一方面的一种可能的实现方式中,第一电子设备安装有预设应用。上述获取第一电子设备的当前运行状态特征,具体可以包括:在预设应用处于前台运行过程中,在每帧结束后,响应于接收到队列缓存区的完成信号,获取第一电子设备的当前运行状态特征。也就是说,在预设应用的每一帧结束之后都会获取当前运行状态特征进行,并基于策略网络对当前运行状态特征选择合适的策略,来指导CPU和GPU分配和调度计算资源。这样,可以保证第一电子设备每一帧调度计算资源所使用的策略都是最优的。
在第一方面的一种可能的实现方式中,第一电子设备安装有预设应用。上述获取第一电子设备的当前运行状态特征,具体可以包括:在预设应用处于前台运行过程中,每间隔预设帧数或预设时间,响应于接收到队列缓存区的完成信号,获取第一电子设备的当前运行状态特征。这样,预设应用在前台运行过程中,每间隔一定时间,响应于接收到上述完成信号,根据当前运行状态特征基于策略网络选择合适的策略。这样,在保证一段时间内计算资源的调度策略最优的前提下,减少计算资源的调度策略的调整次数,可以降低第一电子设备的功耗。
在第一方面的一种可能的实现方式中,在获取第一电子设备的当前运行状态特征之前,上述方法还可以包括:启动调度进程。上述获取当前运行状态特征,基于策略网络获取第一策略,均可以由第一电子设备的调度进程完成。
在第一方面的一种可能的实现方式中,上述方法还包括:在启动调度进程时,检查调度进程相关的配置文件和/或调频处理模块;调频处理模块用于调整CPU频率、GPU频率以及设置绑核策略。若配置文件运行异常,或者调频处理模块异常,则退出调度进程。这样,在启动调度进程的同时,检查调度进程的配置文件以及调度处理模块是否能够正常运行,如果确定调度进程的配置文件或者调度处理模块无法正常工作,则可以退出调度进程,即不再按照上述方法基于策略网络来选择调度所用的策略。
在第一方面的一种可能的实现方式中,如果启动调度进程时确定调度进程的配置文件以及调度处理模块均能够正常工作,则可以通过调度进程执行上述获取当前运行状态特征,基于策略网络获取第一策略等步骤。
在第一方面的一种可能的实现方式中,上述方法还包括:在调度进程的运行过程中,监测第一电子设备的性能数据;若性能数据异常,则表示有可能通过调度进程执行上述步骤导致了第一电子设备的性能异常。此时可以退出调度进程。这样,可以保证第一电子设备的性能正常。
在第一方面的一种可能的实现方式中,上述方法还包括:在启动调度进程时,检查调度进程相关的配置文件和/或调频处理模块;调频处理模块用于调整CPU频率、GPU频率以及设置绑核策略。若配置文件运行异常,或者调频处理模块异常,则退出调度进程。并且,在调度进程的运行过程中,监测第一电子设备的性能数据;若性能数据异常,则退出调度进程。
第二方面,本申请还提供一种策略网络的训练方法,该方法应用于第二电子设备,第二电子设备与第一电子设备连接。第二电子设备包括预设多智能体深度确定策略梯度MADDPG网络,预设MADDPG网络包括策略网络和价值网络。该方法包括:
与第一电子设备交互,获得训练数据;训练数据包括:第一电子设备在不同时刻的样本运行状态特征,策略网络对不同时刻的样本运行状态特征输出的中间策略,以及,不同时刻对应的奖励信息;
基于训练数据对预设MADDPG网络进行迭代训练,直至达到终止条件;
其中,与第一电子设备交互,获得训练数据,包括:
从第一电子设备获取当前时刻的第一样本运行状态特征;第一样本运行状态特征包括:样本中央处理器CPU相关运行状态特征、样本图形处理器GPU相关运行状态特征,以及样本绑核相关运行状态特征;
将第一样本运行状态特征输入策略网络,获得策略网络输出的中间策略;中间策略包括:CPU调频策略、GPU调频策略以及绑核策略;
将中间策略发送至第一电子设备;中间策略用于指示第一电子设备的处理器按照中间策略调度处理器的计算资源;
获取第一电子设备执行中间策略后的反馈数据;
基于反馈数据生成奖励信息;
从第一电子设备获取下一时刻的第二样本运行状态特征;
迭代训练中的一次训练过程包括:
将t时刻对应的样本运行状态特征和中间策略输入到价值网络,获得价值网络输出的评分数据;其中,t为正整数;t时刻可以是获取的训练数据中的任一时刻;
基于t时刻对应的奖励信息和评分数据,对策略网络和价值网络进行参数更新;
其中,首次训练时,策略网络为初始的策略网络,价值网络为初始的价值网络;非首次训练时,策略网络包括前一次训练更新后的策略网络;价值网络为前一次训练更新后的价值网络。
重复执行上述与第一电子设备交互,获得训练数据的步骤,即可获得第一电子设备在不同时刻的样本运行状态特征,不同时刻的中间策略,以及不同时刻的奖励信息。这些训练数据可以用于训练MADDPG网络。基于训练数据对预设MADDPG网络进行迭代训练,可以获得训练好的MADDPG网络。其中包括了训练好的策略网络。MADDPG网络具有中心化训练,去中心化决策的特点。通过上述方法训练确定的策略网络,能够根据当前第一电子设备的运行状态特征,实现全局的最优目标。即,根据当前第一电子设备的运行状态,选择最合适的计算资源的分配和调度方式。从而既能够保证应用的运行需求,又能够尽可能降低第一电子设备的功耗。
在第二方面的一种可能的实现方式中,与第一电子设备交互,获得训练数据,可以循环执行。
在第二方面的一种可能的实现方式中,上述从第一电子设备的样本运行状态特征(包括当前时刻的第一样本运行状态特征和下一时刻的第二运行状态特征),可以是经过平滑处理后的样本运行状态特征。或者,从第一电子设备的样本运行状态特征是原始的运行状态特征,在获取样本运行状态特征后,还可以包括对样本运行状态特征进行平滑处理。上述输入策略网络具体为经过平滑处理后的样本运行状态特征。这样,可以减少数据波动,提高网络训练的效果。
在第二方面的一种可能的实现方式中,上述策略网络包括:CPU策略网络、GPU策略网络以及绑核策略网络。上述将第一样本运行状态特征输入策略网络,获得策略网络输出的中间策略,具体可以包括:将样本CPU相关运行状态特征输入CPU策略网络,获得CPU策略网络输出的CPU调频策略;将样本GPU相关运行状态特征输入GPU策略网络,获得GPU策略网络输出的GPU调频策略;将样本绑核相关运行状态特征输入绑核策略网络,获得绑核策略网络输出的绑核策略。
在第二方面的一种可能的实现方式中,样本CPU相关运行状态特征包括:样本CPU负载,或者,CPU相关运行状态特征包括:样本CPU负载以及以下至少一项:应用负载、应用FPS以及CPU温度。
在第二方面的一种可能的实现方式中,样本GPU相关运行状态特征包括:样本GPU负载,或者,GPU相关运行状态特征包括:样本GPU负载,以及以下至少一项:应用FPS以及GPU温度。
在第二方面的一种可能的实现方式中,样本绑核相关运行状态特征包括:样本CPU负载,或者,CPU相关运行状态特征包括:样本CPU负载以及以下至少一项:应用负载、应用FPS以及CPU温度。
在第二方面的一种可能的实现方式中,基于t时刻对应的奖励信息和评分数据,对策略网络和价值网络进行参数更新,具体可以包括:基于t时刻的奖励信息和评分数据,采用时序差分TD算法对价值网络进行参数更新。这样,价值网络的训练效果好。
在第二方面的一种可能的实现方式中,基于t时刻对应的奖励信息和评分数据,对策略网络和价值网络进行参数更新,具体可以包括:基于t时刻的奖励信息和评分数据,采用策略梯度进行梯度上升更新策略网络的参数。这样,策略网络的训练效果好。
在第二方面的一种可能的实现方式中,基于t时刻对应的奖励信息和评分数据,对策略网络和价值网络进行参数更新,具体可以包括:基于t时刻的奖励信息和评分数据,采用时序差分TD算法对价值网络进行参数更新。并且,基于t时刻的奖励信息和评分数据,采用策略梯度进行梯度上升更新策略网络的参数。这样,价值网络和策略网络的训练效果好。
在第二方面的一种可能的实现方式中,上述反馈数据具体包括:功耗反馈数据和性能反馈数据。上述方法还包括:接收第一电子设备发送的第一电子设备的期望性能数据,即第一电子设备期望达到的性能。上述基于反馈数据生成奖励信息,具体可以包括:计算性能反馈数据和期望性能数据的性能数据差值;基于性能数据差值和功耗反馈数据,生成奖励信息。
在第二方面的一种可能的实现方式中,基于性能数据差值和功耗反馈数据,生成奖励信息,具体包括:
;
其中,rt表示与状态st和策略at对应的奖励信息。FPSt表示手机执行策略at后的FPS,可以称为当前FPS。target FPS表示目标FPS,也就是期望的FPS。G函数对当前FPS和目标FPS计算得到性能奖励信息。Pt表示功耗奖励信息。
在第二方面的一种可能的实现方式中,终止条件包括策略网络和价值网络均收敛。
在第二方面的一种可能的实现方式中,第二电子设备可以基于奖励信息评估策略网络和价值网络是否收敛。例如,在检测到连续多个奖励信息的波动小于一定值,则可以确定策略网络和价值网络均收敛。
在第二方面的一种可能的实现方式中,终止条件包括迭代训练的训练次数达到预设次数。
在第二方面的一种可能的实现方式中,终止条件包括,策略网络和价值网络均收敛,并且迭代训练的训练次数达到预设次数。
第三方面,本申请还提供了一种计算机装置。该计算机装置可以包括:处理器和存储器。该存储器用于存储计算机执行指令,当该计算机装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该计算机装置执行如上述第一方面中任一项的计算资源的调度方法,或者,使该计算机装置执行如上述第二方面中任一项的策略网络的训练方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的计算资源的调度方法,或者,使该计算机装置执行如上述第二方面中任一项的策略网络的训练方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行上述第一方面中任一项的计算资源的调度方法,或者,使该计算机装置执行如上述第二方面中任一项的策略网络的训练方法。
第六方面,提供了一种装置(例如,该装置可以是芯片***),该装置包括处理器,用于支持电子设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存电子设备必要的程序指令和数据。该装置是芯片***时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至第六方面中任一种设计方式所带来的技术效果可参见第一方中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的一种电子设备的软件结构框图;
图3为本申请实施例提供的一种通信***的结构图;
图4为本申请实施例提供的一种预设MADDPG网络的架构示意图;
图5为本申请实施例提供的一种预设MADDPG网络中各策略网络的架构示意图;
图6为本申请实施例提供的一种预设MADDPG网络中价值网络的架构示意图;
图7为本申请实施例提供的一种策略网络的训练方法的流程示意图;
图8为本申请实施例提供的一种策略网络的输入数据与输出数据的示意图;
图9为本申请实施例提供的一种CPU策略网络对应的不同的状态桶下最优策略的策略离散图的示意图;
图10为本申请实施例提供的一种计算资源的调度方法的流程示意图;
图11为本申请实施例提供的一种对策略网络的性能进行监测的流程示意图;
图12为本申请实施例提供的一种芯片***的架构图。
具体实施方式
以下先对本申请实施例可能涉及的技术词语进行说明。
多智能体深度确定策略梯度(multi-agent deep deterministic policygradient,MADDPG)网络,是解决多个智能体在复杂协作环境下的强化学习模型(reinforcement learning,RL)。该网络是演员-评论家(actor-critic)结构。
MADDPG网络至少包括两个智能体,其中每个智能体都有一个actor网络和一个critic网络。智能体之间存在着一定的关系,如合作关系,竞争关系,或者同时存在竞争与合作的关系。每个智能体最终所获得的回报不仅仅与自身的动作有关系,还跟对方的动作有关系。
训练时,actor网络根据当前的状态(state)选择一个动作(action),然后critic网络可以根据state和action计算一个评分Q,作为对actor网络预测的动作的评价。critic网络根据Q值和动作奖励(rewards,R)来更新critic网络的参数,actor网络根据critic网络的反馈来更新策略。
其中,动作奖励可以用于表征将action作用于环境后影响环境的state发生变化,所获得的反馈数据。在本申请实施例中,动作奖励用于表征电子设备执行actor网络所选择的action,电子设备的反馈数据。示例性的,动作奖励可以结合上述反馈数据生成。
需要说明的是,在其他实施例中,actor网络还可以称为策略网络、动作网络或决策网络等,在本申请以下实施例中将actor网络称为策略网络。策略网络的输出结果为action,也可以称为动作、决策或策略,以下称为策略。critic网络也可以称为价值网络或评价网络,以下称为价值网络。以下实施例中,将动作奖励称为奖励信息。
在MADDPG网络的训练过程中,价值网络的目标是对当前策略下的价值网络的打分(Q)尽可能的准确。策略网络的目标是使得智能体做出的策略尽可能的提高价值网络的打分(Q)。
在一些示例中,以下是MADDPG网络的主要工作流程:
1、初始化网络。
2、收集经验:每个智能体根据当前的状态通过策略网络选择策略,并在环境中执行这些策略。之后,可以从环境中观察到新的状态和奖励,并将这些经验存储在经验回放缓冲区中。
3、经验回放:从经验回放缓冲区中随机抽取一个小批量的经验,并用它来更新价值网络和策略网络。
4、计算损失:对于价值网络,计算预测的Q值与目标Q值之间的误差。对于策略网络,使用梯度上升来尝试最大化预期的Q值。
5、网络更新:使用反向传播算法更新本地Q网络和策略网络的权重。
6、检查终止条件:例如固定的训练次数、达到了预期的性能门槛或其他终止条件。如果满足终止条件,则停止训练;否则,返回第2步,继续收集经验和训练网络。
在本申请实施例中,上述用于执行策略的环境,可以是手机。
MADDPG网络的训练具有中心化训练去中心化执行的特点。所谓中心化训练去中心化执行是指在训练的时候使用一些单个智能体看不到的全局信息而以达到更好的训练效果,而在执行时不使用这些信息,每个智能体完全根据自己的策略执行动作以达到去中心化执行的效果。中心化训练去中心化执行的算法能够在训练时有效地利用全局信息以达到更好且更稳定的训练效果,同时在进行策略网络推断时可以仅利用局部信息,使得算法具有一定的扩展性。简单来说,采用中心化的方法训练价值网络,因此价值网络可以更好的指导各个智能体相互合作达到全局的最优目标。
CPU负载是指CPU在一段时间内正在处理的任务数量以及等待CPU处理的任务数量之和。
GPU负载是指GPU的使用情况,通常用来衡量GPU芯片的使用率。
应用负载是指应用在运行时所占用的***资源。如,游戏负载是指游戏在运行时所占用的***资源。
画面每秒帧数(frame per second,FPS)是指动画或视频的画面数。每秒钟帧数越多,所显示的画面动作就会越流畅。
CPU频点用于表示CPU的频率。
GPU频点用于表示GPU的频率。
绑核,也称为设置进程或线程的亲和力(affinity),是指将某个进程或线程绑定到特定的CPU核心上运行。绑核后进程或线程只在所绑定的CPU核心上运行,减少了在多个核心之间切换的时间,从而可以提高性能。绑核并不意味着进程或线程独占该CPU核心,其他进程或线程仍然可以在这个核心上运行。
在一些实施例中,CPU包括多个不同的CPU核心,如超大核、大核、中核和小核中的至少两个。绑核的目的即将进程或线程绑定至指定的CPU核心。在本申请的实施例中,以游戏为例,对游戏的逻辑线程和渲染线程进行绑核时,输出的绑核策略具体包括:将游戏的逻辑线程绑定至CPU的哪一个核心,将游戏的渲染线程绑定至CPU的哪一个核心。从而使得整机在复杂的游戏环境下平衡功耗和性能。
CPU功耗指的是CPU在正常工作时的能量消耗,具体表现为CPU在处理信息时需要转换和维持其内部电子态所需的电能。
GPU功耗是指在一定时间内(如每秒钟)GPU所消耗的电功率。
独热编码(One-Hot Encoding),也叫一位有效编码,是用来表示离散变量的一种方法。
时序差分(temporal difference,TD)算法是一种用来估计一个策略的价值函数的方法,通过对当前状态和未来状态之间的差异进行学习来自适应地调整策略。
队列缓冲区(queue buffer)是传递数据的组件。
在本申请的实施例中,分桶是为了将作为输入数据的状态,由连续型变量离散化。
在复杂的游戏场景中,协调CPU/GPU等计算单元的资源时,若分配的资源过低将使得游戏频繁卡顿,影响使用体验。而分配的计算资源过高则会使得手机掉电快、发热严重。如何协调CPU和GPU等计算单元的资源分配,能够兼顾功耗和性能,是一个亟需解决的问题。
基于此,本申请提出一种计算资源的调度方法,可以应用于电子设备。在该方法中,可以基于训练好的策略网络,实现CPU和GPU等计算单元的资源分配,以及确定CPU的绑核策略。其中,训练好的策略网络包括CPU策略网络、GPU策略网络和绑核策略网络。在训练好的策略网络中输入手机等电子设备当前的运行状态特征,即可输出CPU调频策略、GPU调频策略和绑核策略。然后,电子设备的CPU和GPU分别执行各自的调频策略和绑核策略。其中,策略网络是使用电子设备的运行状态特征,对初始的MADDPG网络训练确定的。由上述说明可知,MADDPG网络不仅包括策略网络还包括价值网络,MADDPG网络采用中心化的方法训练价值网络,因此价值网络可以更好的指导各个智能体相互合作达到全局的最优目标。因此通过上述方法训练确定的MADDPG网络能够结合电子设备当前的运行状态特征,协同调度CPU和GPU的计算资源,以及确定CPU的绑核策略。这样可以提升计算资源分配的合理性,既能够保证应用的运行需求,又能够尽可能降低电子设备的功耗。
在一些实施例中,上述训练好的策略网络可以以离散图的形式存储在手机中,记为策略离散图。该策略离散图包括:分别将电子设备的不同运行状态情况下的运行状态特征,输入到训练好的策略网络获得的CPU和GPU的分配策略,以及绑核策略。在一些示例中,离散图包括了不同运行状态特征与不同策略的映射关系。这样,在电子设备基于训练好的策略网络协调分配计算资源时,可以按照运行状态特征在策略离散图中查找对应的频点和绑核策略。节省了在使用该训练好的策略网络分配计算资源时,策略网络的运算时间,提高了分配资源的效率。
示例性的,上述电子设备可以是手机、平板电脑、个人计算机(personalcomputer,PC)、智慧屏、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、智能手表等穿戴设备、人工智能(artificial intelligence,AI)音箱以及车载设备,也可以是各种教学辅助工具(例如学习机、早教机)、智能玩具、便携式机器人、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器等设备,还可以是具有移动办公功能的设备、具有智能家居功能的设备、具有影音娱乐功能的设备、支持智能出行的设备等。本申请实施例对该设备的具体形态不作特殊限制。
图1示出了一种电子设备的硬件结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,摄像头192,显示屏193,以及用户标识模块(subscriber identification module,SIM)卡接口194等。其中,传感器模块180可以包括压力传感器180A,触摸传感器180B等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,GPU,图像信号处理器(image signalprocessor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本申请实施例中的计算资源的调度方法。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏193,摄像头192,和无线通信模块160等供电。
在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100可以通过音频模块170,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏193。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏193,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。
触摸传感器180B,也称“触控面板”。触摸传感器180B可以设置于显示屏193,由触摸传感器180B与显示屏193组成触摸屏,也称“触控屏”。触摸传感器180B用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏193提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180B也可以设置于电子设备100的表面,与显示屏193所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
摄像头192用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头192,N为大于1的正整数。
电子设备100通过GPU,显示屏193,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏193和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏193用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏193,N为大于1的正整数。
SIM卡接口194用于连接SIM卡。SIM卡可以通过***SIM卡接口194,或从SIM卡接口194拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
以下实施例中的计算资源的调度方法均可以在具备上述硬件结构的电子设备100中实现。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓™(Android™)***为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Android™***从上至下分别包括应用程序层,应用程序框架层,本地层(native),硬件抽象层(hardware abstract layer,HAL)以及内核层。
应用程序层可以包括一系列应用程序包。例如,游戏,地图,视频等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,资源管理器,通知管理器,活动管理器,输入管理器等。
窗口管理器提供窗口管理服务(window manager service,WMS),WMS可以用于窗口管理、窗口动画管理、表面(surface)管理以及作为输入***的中转站。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
活动管理器可以提供活动管理服务(activity manager service,AMS),AMS可以用于***组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
输入管理器可以提供输入管理服务(input manager service,IMS),IMS可以用于管理***的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
在本申请的实施例中提出的计算资源的调度方法可以通过电子设备的预设进程实现。预设进程可以运行在电子设备的本地层。在一些示例中,预设进程可以命名为调度进程。
硬件抽象层运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。硬件抽象层包括:显示模块、音频模块、摄像头模块和蓝牙模块等。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,音频驱动,摄像头驱动,蓝牙驱动。
进一步的,本申请另一些实施例还提供一种策略网络的训练方法,该方法可以应用于与电子设备连接的其他电子设备。为了区分,可以将使用策略网络进行计算资源调度的电子设备记为第一电子设备,将用于训练策略网络的电子设备记为第二电子设备。在一些实施例中,第二电子设备的算力大于第一电子设备的算力。示例性的,第二电子设备可以是PC。在一些实施例中,电子设备与PC之间可以是有线连接,例如通过数据线连接;也可以是无线连接,例如蓝牙连接、Wi-Fi连接等。电子设备与PC之间通过有线连接,可以更好的保证数据传输的效率和可靠性。
PC包括预设MADDPG网络,预设MADDPG网络包括:策略网络和价值网络。其中,策略网络包括:CPU策略网络、GPU策略网络和绑核策略网络。如图3所示,手机1与PC2连接。在一些实施例中,预设MADDPG网络中的价值网络的数量可以与策略网络的数量对应,即,一个策略网络对应一个价值网络。在另一些实施例中,预设MADDPG网络中不同策略网络可以共用同一价值网络。
手机1在运行过程中,不同时间的运行状态可能是不相同的。运行状态可以用运行状态特征来表示。PC2可以从手机1获取运行状态特征。由于当前获取的运行状态特征用于对预设MADDPG网络进行训练,因此可以记为样本运行状态特征。运行状态特征可以包括CPU相关运行状态特征、GPU相关运行状态特征以及绑核相关运行状态特征。
其中,不同时间获取的运行状态特征可以分别记为第一样本运行状态特征、第二样本运行状态特征,…。由上述说明可知,在初始化MADDPG网络之后,包括收集经验的过程。在本申请实施例中,收集经验的过程可以包括:将第一样本运行状态特征输入策略网络后获得策略(网络训练过程中记为中间策略)。其中,中间策略包括:CPU调频策略、GPU调频策略,以及绑核策略。然后,PC2将中间策略返回给手机1。手机1按照中间策略执行一段时间后,手机1可以获取到执行中间策略后生成的反馈数据,并将反馈数据返回值PC2。PC2基于该反馈数据生成奖励信息。同时,PC2从手机1获取下一时刻的运行状态特征,可以记为第二样本运行状态特征。
在本申请实施例中,MADDPG网络的经验回放、计算损失和网络更新过程具体可以包括:PC2将第一样本运行状态特征和中间策略输入价值网络,获得价值网络输出的评分。然后,结合评分和奖励信息更新策略网络和价值网络的参数。
在对预设MADDPG网络的训练过程中,基于奖励信息评估网络是否收敛。若没有收敛,则PC2使用其他样本运行状态特征,继续对更新后的MADDPG网络进行训练,直至MADDPG网络收敛。
由于MADDPG网络的不同智能体之间存在着一定的关系,并且上述MADDPG网络的输入包括CPU相关运行状态特征、GPU相关运行状态特征以及绑核相关运行状态特征。因此通过上述方法训练确定的MADDPG网络能够结合CPU相关运行状态特征、GPU相关运行状态特征以及绑核相关运行状态特征,协同调度CPU和GPU的计算资源,以及确定CPU的绑核策略。
在一些实施例中,CPU相关运行状态特征可以包括CPU负载。或者,在另一些实施例中,CPU相关运行状态特征可以包括CPU负载以及以下至少一项:应用负载、应用FPS、CPU温度等。
在一些实施例中,GPU相关运行状态特征可以包括GPU负载。或者,在另一些实施例中,GPU相关运行状态特征可以包括GPU负载以及以下至少一项:应用FPS、GPU温度等。
在一些实施例中,绑核相关运行状态特征可以与CPU相关运行状态特征相同。
图4示出了一些实施例中预设MADDPG网络的架构,以及预设MADDPG网络的训练过程的数据传输流程。在图4所示的示例中,预设MADDPG网络包括策略网络和价值网络。其中,策略网络包括CPU策略网络、GPU策略网络以及绑核策略网络。CPU策略网络、GPU策略网络和绑核策略网络的输入分别是从手机获取的运行状态特征,分别记为S1、S2和S3。CPU策略网络、GPU策略网络和绑核策略网络的输出分别记为A1、A2和A3。将策略网络输出的A1、A2和A3返回给手机,以使手机按照该策略执行A1、A2和A3。然后,获取手机执行A1、A2和A3后的反馈数据,并基于该反馈数据生成奖励信息。将S1、S2和S3,以及A1、A2和A3输入价值网络,价值网络输出评分Q。最后,根据奖励信息和评分Q更新价值网络和策略网络的参数,直至更新后的MADDPG网络收敛,停止训练。在一些实施例中,价值网络的数量可以与策略网络的数量相同。例如,策略网络包括3个,价值网络同样包括3个。而不同价值网络的输入数据是相同的。在另一些实施例中,不同策略网络也可以共用同一价值网络。
图5示出了一些实施例中预设MADDPG网络中各策略网络的架构。CPU策略网络可以包括:2层全连接层神经网络(fully connected neural network,FCNN)、批归一化(batchnormalization,BN)以及双曲正切函数(Tanh)。在一些实施例中,CPU策略网络的输入状态S1可以是CPU相关运行状态特征。示例性的,CPU相关运行状态特征可以包括:CPU负载,应用负载(如游戏负载)和应用FPS(如游戏的FPS)。CPU策略网络的输出A1可以是从手机的CPU的可调节频率范围中选取的合适频点,即CPU调频策略。
GPU策略网络的结构与CPU策略网络的结构类似。在一些实施例中,GPU策略网络的输入状态S2可以是GPU相关运行状态特征。示例性的,GPU相关运行状态特征可以包括:GPU负载和应用FPS。GPU策略网络的输出A2可以是从手机的GPU的可调节频率范围中选取的合适频点,即GPU调频策略。
绑核策略网络包括2层全连接层神经网络、逻辑函数(logits),以及归一化指数函数(softmax)。其中,softmax具体可以是gumbel softmax函数,该函数是单纯形上的一个连续分布。在一些实施例中,绑核策略网络的输入S3可以与CPU策略网络的输入S1相同。绑核策略网络的输出A3可以是一种绑核方式(离散型变量)。
图6示出了一些实施例中预设MADDPG网络中价值网络的架构。价值网络可以包括:3层全连接层神经网络。在一些实施例中,价值网络的输入包括S和A;S可以包括:S1、S2和S3,A可以包括A1、A2和A3。其中,奖励信息具体可以是基于策略A1、A2和A3下发至手机之后一段时间内手机的反馈数据生成的。示例性的,反馈数据具体可以包括两个部分:功耗数据和性能数据;其中,功耗数据可以包括CPU功耗数据和GPU功耗数据;性能数据可以包括应用的FPS。价值网络输出的评分Q可以用于表征在状态S1-S3下,策略网络选择的策略A1、A2和A3的优劣程度。
下面将结合附图对本申请实施例提供的计算资源的调度方法和策略网络的训练方法进行详细说明。
图7示出了一些实施例中策略网络的训练方法的流程。在该实施例中,以该策略网络的训练方法应用于PC为例进行说明。PC部署了待训练的预设MADDPG网络。手机与PC之间已建立连接。预设MADDPG网络包括策略网络和价值网络。策略网络包括CPU策略网络、GPU策略网络和绑核策略网络。由上述说明可知,本申请实施例中的策略网络的训练,是由MADDPG网络训练完成,其中的策略网络。对MADDPG网络的训练可以划分为三个部分:数据收集过程(对应上述收集经验过程),网络训练过程(对应上述经验回放、计算损失和网络更新过程),以及评估过程。
PC可以设置两个独立的进程。其中一个进程用于执行数据收集过程和评估过程,另一个进程执行网络训练过程。并且,这两个进程之间是相互独立互不影响的。
数据收集过程中,PC需要与手机交互,以获得数据。该数据用于训练MADDPG网络,以下记为训练数据。在一些实施例中,训练数据可以包括:手机的多个运行状态特征,策略网络基于多个运行状态特征输出的多个策略,以及基于手机执行多个策略后的反馈数据生成的奖励信息。数据收集过程具体可以包括S301-S308。
S301.PC与手机基于连接交互,获取手机当前时刻的运行状态特征。
在一些实施例中,手机通过调度进程来实现运行状态特征的获取和上报,以及接收来自PC的策略并执行策略。因此在S301之前,手机需启动调度进程,然后通过调度进程获取运行状态特征。之后,在上述S301中,PC与手机交互,才可以获取手机通过调度进程获取到的运行状态特征。
运行状态特征用于表征手机的运行状态。在一些实施例中,运行状态特征可以包括:应用FPS、应用负载、CPU负载和GPU负载等。手机通过调度进程可以监控指定应用的运行状态特征,如应用n。以调度进程监控的应用n是游戏为例,应用FPS为游戏FPS,应用负载为游戏负载。
其中,应用n可以是预设应用中的一个或多个,如游戏、视频应用或地图应用等。手机在运行预设应用的过程中,需要消耗大量的计算资源。因此,在本申请的实施例中,手机启动预设应用的情况下,将同时自动启动调度进程。
在一些实施例中,手机通过调度进程获取运行状态特征时,手机具体可以在满足一定条件的情况下,通过调度进程,获取当前时刻的运行状态特征。例如,手机可以在应用n对应的queue buffer执行完成时,通过调度进程获取当前时刻的运行状态特征。具体的,手机在应用n对应的queue buffer执行完成时,将会向上层的应用n发送queue buffer的完成信号。在本申请的实施例中,调度进程可以接收到该完成信号。由于完成信号可以表示应用n对应的queue buffer执行完成,因此手机可以在调度进程接收到完成信号后,通过调度进程获取手机的运行状态特征,即当前时刻的运行状态特征。
手机可以获取一段历史时间内的运行状态特征的平均值作为该时刻的运行状态特征。以应用FPS为例,手机可以获取一段历史时间内应用的帧数,然后根据该历史时间的时间长度和帧数,计算该段历史时间内的FPS作为应用FPS。历史时间的具体数值可以根据实际情况设置,例如可以设置为1秒;或者历史时间也可以以帧时间作为基准时间来计时,例如历史时间可以设置为20帧对应的时间。
上述S301中,PC与手机交互获取手机的运行状态特征时,手机可以主动向PC发送运行状态特征。具体的,手机可以每间隔一段时间向PC发送一次运行状态特征。
或者,PC与手机交互获取手机的运行状态特征时,也可以由PC向手机发送数据获取请求,手机在接收到该数据获取请求后,再向PC发送运行状态特征。在一些示例中,在网络训练开始后,PC可以每间隔一段时间向手机发送一次数据获取请求;手机在接收到该数据获取请求后向PC发送一次运行状态调特征。在另一些示例中,PC也可以在网络训练开始后,向手机发送一次数据获取请求,手机响应于该数据获取请求,每间隔一段时间向PC发送一次运行状态特征。
在一些实施例中,手机向PC发送运行状态特征的动作,均发生在预设应用在前台运行状态下。由上述说明可知,在一些实施例中,手机在启动需要消耗大量计算资源的预设应用时,才会启动调度进程。在非预设应用的运行过程中,手机可以按照常规的方式分配和调度计算资源。因此,在预设应用处于前台运行状态下,手机可以通过该调度进程获取运行状态特征,并向PC发送该运行状态特征。在手机退出预设应用或者将预设应用切换至后台运行的情况下,手机可以不再获取运行状态特征向PC上报。这样,保证获取到作为样本数据的运行状态特征是预设应用运行期间的运行状态特征,可以更好的训练网络。从而,训练好的网络(具体为策略网络)能够根据手机在预设应用运行期间的运行状态特征选出合适的策略。
S302.PC将当前时刻的运行状态特征输入策略网络。
手机在运行应用n的过程中,在一些情况下可能会出现运行状态不稳定的可能。为了保证用于训练预设MADDPG网络的样本数据较为平稳,波动较小,在一些实施例中,在上述S302之前,PC接收到运行状态特征后,对该运行状态特征进行平滑处理,并用于后续的网络训练。这样,可以提高数据的稳定性,从而提高网络训练的效果。在另一些实施例中,也可以由手机对原始的运行状态特征进行平滑处理,然后手机向PC发送的运行状态特征即为平滑处理后的运行状态特征。这样,PC在接收到运行状态特征后,可以直接将运行状态特征输入策略网络。同样可以提高网络的训练效果。
在一些实施例中,在上述S302中,PC可以将部分或全部运行状态特征分别输入到不同的策略网络中。由上述说明可知,策略网络包括CPU策略网络、GPU策略网络和绑核策略网络。
运行状态特征可以划分为CPU相关运行状态特征、GPU相关运行状态特征和绑核相关运行状态特征。在一些实施例中,CPU策略网络的输入包括CPU相关运行状态特征;如:应用FPS、应用负载和CPU负载。GPU策略网络的输入包括GPU相关运行状态特征;如:应用FPS、应用负载和GPU负载。绑核策略网络的输入包括绑核相关运行状态特征;进一步的,该绑核运行状态特征可以与CPU相关运行状态特征一致,如包括应用FPS、应用负载和CPU负载。
数据收集过程与网络训练过程可以同步进行。因此,上述S302中的策略网络指的是当前时刻的策略网络,有可能是未经训练的策略网络,也可能是经训练更新参数后的策略网络。
S303.PC获取策略网络输出的策略。
由于当前处于对预设MADDPG网络的训练过程,为了将网络训练过程与网络使用过程进行区分,在该实施例中,可以将策略网络输出的策略记为中间策略。策略网络包括CPU策略网络、GPU策略网络和绑核策略网络;对应的,策略网络输出的中间策略可以包括:CPU调频策略、GPU调频策略以及绑核策略。
CPU策略网络输出的CPU调频策略用于指导手机调整CPU频率;在一些实施例中,CPU调频策略具体可以是CPU频点。如图5所示,在一些实施例中,CPU策略网络依次包括2层FCNN、一层BN以及一层tanh函数层。该CPU策略网络从可调节的频率范围中选取合适的CPU频点,然后通过tanh函数将合适的CPU频点映射至(-1,1)之间的数值。该数值表征的是CPU策略网络选择的CPU调频策略。具体的,可以将该策略网络输出的数值映射为CPU频点。
在一些实施例中,可以由PC将策略网络输出的数值映射为对应的CPU频点,再向手机发送该CPU频点。示例性的,PC将策略网络输出的数值映射为对应的CPU频点,具体可以通过在策略网络的tanh函数层后增加一个映射层,用于将(0,1)之间的数值映射为CPU频点档位。这样,手机可以按照该CPU频点调整CPU频率。在另一些实施例中,也可以由PC直接将策略网络输出的数值直接发送给手机,由手机将该数值映射为对应的CPU频点,然后再按照该CPU频点调整CPU的频率。
其中,在一些实施例中,可以将CPU能够调整的频点划分为多个频点档位。这样,在上述将策略网络输出的数值映射为CPU频点时,可以将数值映射为CPU频点档位。之后,手机可以基于该CPU频点档位调整CPU的频率。
GPU策略网络输出的GPU调频策略用于指导手机调整GPU频率;在一些实施例中,GPU调频策略具体可以是GPU频点。如图5所示,在一些实施例中,GPU策略网络依次包括2层FCNN、一层BN以及一层tanh函数层。该GPU策略网络从可调节的频率范围中选取合适的GPU频点,然后通过tanh函数将合适的GPU频点映射至(-1,1)之间的数值。该数值表征的是GPU策略网络选择的GPU调频策略。具体的,可以将该策略网络输出的数值映射为GPU频点。
在一些实施例中,可以由PC将策略网络输出的数值映射为对应的GPU频点,再向手机发送该GPU频点。示例性的,PC将策略网络输出的数值映射为对应的CPU频点,具体可以通过在策略网络的tanh函数层后增加一个映射层,用于将(0,1)之间的数值映射为GPU频点档位。这样,手机可以按照该GPU频点调整GPU频率。在另一些实施例中,也可以由PC直接将策略网络输出的数值直接发送给手机,由手机将该数值映射为对应的GPU频点,然后再按照该GPU频点调整GPU的频率。
其中,在一些实施例中,可以将GPU能够调整的频点划分为多个频点档位。这样,在上述将策略网络输出的数值映射为GPU频点时,可以将数值映射为GPU频点档位。之后,手机可以基于该GPU频点档位调整GPU的频率。
绑核策略具体可以包括绑核方式。这样,手机可以按照该绑核策略设置进程或线程的绑核方式。可以理解的,在本申请实施例中,调度进程是用于在预设应用运行过程中分配计算资源,因此,绑核方式具体是指对上述预设应用(如应用n)的进程或线程的绑核方式。以应用n是游戏为例,游戏的主要线程包括逻辑线程和渲染线程,绑核策略具体可以用于表示将游戏的逻辑线程和渲染线程分别绑定在CPU的哪一个核心上使用。在其他实施例中,游戏其他重要线程,也可以设置对应的绑核策略,即绑核策略还可以包括其他重要线程对应的绑核策略。
如图5所示,在一些实施例中,绑核策略网络包括可以依次包括2层FCNN、logits和softmax。进一步的,在一些实施例中,为了使得网络保留有梯度,使用gumbel softmax方法输出绑核方式的独热编码。
S304.PC向手机发送策略。
相应的,手机接收PC发送的策略。
S305.手机的处理器执行策略。
在一些实施例中,上述S305具体可以包括:手机的CPU按照该CPU调频策略调整CPU的频率,以及按照绑核方式将应用n的进程或线程绑定到对应的CPU核心上。手机的GPU按照该GPU调频策略调整GPU的频率。
S306.手机获取执行策略后的反馈数据。
相应的,PC接收手机发送的反馈数据。
反馈数据具体可以指手机执行中间策略后,导致手机状态发生改变而产生的新数据。由上述实施例的说明可知,中间策略包括CPU调频策略、GPU调频策略以及绑核策略,手机执行策略后,相比于执行中间策略之前手机的状态可能发生改变,相应的,手机的相关数据也会随之改变。也就是说,中间策略对于手机的影响,在CPU、GPU以及应用n的体现。在一些实施例中,反馈数据包括手机的功耗数据和性能数据。示例性的,手机的功耗数据可以包括CPU功耗和GPU功耗。手机的性能数据可以包括FPS,如应用n的FPS。
在一些实施例中,手机具体可以通过调度进程从功耗芯片获取CPU功耗、GPU功耗。功耗芯片可以用于统计手机的CPU功耗、GPU功耗。手机可以通过调度进程从内核层获取应用FPS。在其他实施例中,手机通过调度进程也可以采用其他方式获取反馈数据。
S307.手机向PC发送执行策略后的反馈数据。
相应的,PC接收手机发送的反馈数据。
S308.PC基于反馈数据生成奖励信息。
在一些实施例中,反馈数据包括功耗数据和性能数据两部分。相应的,奖励信息也可以划分为功耗数据对应的功耗奖励信息,以及性能数据对应的性能奖励信息两部分。示例性的,奖励信息具体可以根据功耗数据和性能数据两个部分加权求和获得。示例性的,上述S308可以通过以下方式实现:
;
其中,rt表示与状态st和策略at对应的奖励信息。FPSt表示手机执行策略at后的FPS,可以称为当前FPS。target FPS表示目标FPS,也就是期望的FPS。G函数对当前FPS和目标FPS计算得到性能奖励信息。Pt表示功耗奖励信息。
在一些实施例中,目标FPS是应用n的目标FPS。以应用n是游戏为例,目标FPS即为游戏的目标FPS。在手机启动应用n时,应用n将会上报目标FPS。此时,可以由手机通过调度进程获取到该应用n上报的目标FPS。在一些实施例中,手机可以在获取到目标FPS后,将该目标FPS发送至PC,以便PC生成奖励信息。
在一些实施例中,G函数对当前FPS和目标FPS计算得到性能奖励信息,具体可以包括:计算当前FPS与目标FPS之间的FPS差值(即性能数据差值),然后对FPS差值进行缩放处理。
在一些实施例中,功耗奖励信息是由CPU功耗和GPU功耗确定的。示例性的,可以是对CPU功耗和GPU功耗求和后,对获得的功耗和值进行缩放处理得到功耗奖励信息。其中,手机对功耗和值进行缩放处理可以通过任意一种方式实现。在一些实施例中,手机对功耗和值进行缩放处理时所采用的缩放倍率,可以结合当前FPS与目标FPS之间的FPS差值来确定。示例性的,手机对功耗和值进行缩放处理时所采用的缩放倍率,可以与对上述FPS差值进行缩放处理所采用的缩放倍率相同。
在图7所示示例中,在S307中,手机直接将获取到的原始的反馈数据发送至PC,由PC根据反馈数据生成奖励信息。在另一些实施例中,手机在获取到原始的反馈数据后,也可以由手机根据该反馈数据生成奖励信息之后,手机再将该奖励信息发送至PC。这样PC接收到奖励信息可以直接将其用作价值网络的输入,从而获得价值网络的输出结果。手机根据反馈数据生成奖励信息的方式可以参照上述S308的方式。
在S308的同时,PC可以从手机获取下一时刻的运行状态特征,然后再将下一时刻的运行状态特征输入到策略网络,即可获得下一时刻的策略。
可以理解的,上述S301-S307循环执行,PC即可获取到不同时刻下,手机的运行状态特征,由策略网络生成的不同运行状态特征对应的多个策略,以及多个策略分别对应的多个奖励信息。
由上述说明可知,在收集到训练数据后,可以将这些训练数据存储在经验回放缓冲区中。
在获取了训练数据后,PC即可利用这些训练数据对MADDPG网络进行训练。网络训练的过程不涉及与手机的交互。示例性的,PC从经验回放缓冲区中随机采样部分训练数据,对MADDPG网络的策略网络和价值网络进行参数更新。MADDPG网络的训练过程可以包括S309-S311:
S309.PC将同一时刻的运行状态特征和策略输入价值网络。
S310.获得价值网络输出的评分。
结合上述说明可知,价值网络输出的评分,可以用于表征在当前状态下,策略网络选择的中间策略的优劣程度。可以理解的,评分越高,则表示在当前状态下,策略网络选择的中间策略越好。相反的,评分较低时表示在当前状态下策略网络选择的中间策略较差。
价值网络根据输入的运行状态特征和中间策略,生成并输出评分,可以通过价值函数来实现。价值函数的具体定义可以采用相关技术中的任意一种定义方式。在一些实施例中,根据运行状态特征st和策略at计算评分的价值函数可以表示为。其中,m表示MADDPG网络包括m个智能体。在本申请实施例中,策略网络的数量为3,智能体的数量即为3,即m=3。
S311.基于评分以及对应的奖励信息,更新价值网络的参数和策略网络的参数。
在一些实施例中,价值网络可以采用时序差分TD算法进行参数更新。具体的,采用TD算法计算误差,然后根据误差来更新价值网络的参数。示例性的,TD算法计算误差可以用以下公式表示:
;
其中,表示误差。rt表示t时刻的奖励信息。/>表示打折率,该参数的数值可以根据实际情况设置。Q函数表示的是价值函数,其表示的是在状态st下,策略网络所选择的策略的最大价值,即价值网络输出的评分。/>表示(t+1)时刻对应的评分。st+1表示(t+1)时刻的运行状态特征。at+1表示(t+1)时刻的中间策略。/>表示t时刻对应的评分。st表示t时刻的运行状态特征。at表示t时刻的中间策略。/>表示价值网络的参数。
进一步的,在采用TD算法计算误差后,可以基于该误差利用梯度下降更新价值网络的参数。
在一起实施例中,策略网络可以采用策略梯度进行梯度上升更新参数。具体的,可以采用确定性策略梯度进行梯度上升更新参数,也可以采用随机策略梯度进行梯度上升更新参数。以采用随机策略梯度进行梯度上升更新参数为例,具体可以用以下公式表示:
;
其中,表示误差。/>表示梯度运算。/>表示策略网络;在更新不同的策略网络时,/>可以分别代表CPU策略网络、GPU策略网络和绑核策略网络。/>表示对策略网络计算梯度。/>表示价值网络。/>表示m个策略网络分别预测的策略。/>表示策略网络的参数。/>表示价值网络的参数。/>表示对价值网络计算梯度。
进一步的,在采用上述方法计算误差后,可以基于该误差利用梯度上升更新策略网络的参数。
需要说明的是,PC可以先更新价值网络的参数,再更新策略网络的参数;也可以先更新策略网络的参数,再更新价值网络的参数;或者,还可以同时更新价值网络和策略网络的参数。在本申请实施例中,对于价值网络和策略网络的更新参数的先后顺序不予限定。
可以理解的,上述S309-S311循环执行,即可持续对MADDPG网络进行更新。
对MADDPG网络的训练,可以持续至达到终止条件时停止。上述策略网络的训练方法还包括评估过程,具体包括S312和S313,其中:
S312.评估是否达到终止条件。
其中,终止条件可以是训练次数达到预设次数,和/或,模型收敛。预设次数可以根据实际情况设置。
在本申请实施例中,模型收敛包括策略网络和价值网络均收敛。
在一些实施例中,可以根据奖励信息评估策略网络和价值网络是否收敛。进一步的,在一些实施例中,连续多次的奖励信息稳定在预设范围内之后,可以认为策略网络和价值网络收敛。其中,预设范围可以根据实际情况进行设置。
如果没有达到终止条件,则PC可以继续对网络进行训练,即重复执行上述S309-S311。或者,在没有达到终止条件的情况下,也可以重新收集新的训练数据,再进行训练;即重复执行上述S301-S308和S309-S311。需要说明的是,S312的判断结果为否的情况,在图7中未示出。
如果达到终止条件,则可以停止训练。
S313.停止训练,获取当前的策略网络,确定为训练获得的策略网络。
MADDPG网络具有中心化训练,去中心化决策的特点。部署该模型时,不再需要价值网络,仅仅把训练好的策略网络分布式部署到各个决策环境中即可。通过上述方法训练确定的策略网络,能够根据当前手机的运行状态特征,实现全局的最优目标。即,根据当前手机的运行状态,选择最合适的计算资源的分配和调度方式。从而既能够保证应用的运行需求,又能够尽可能降低手机的功耗。
在通过上述方法训练MADDPG网络后,可以获得训练好的策略网络。接下来对部署训练好的策略网络和使用策略网络的具体实现过程进行介绍。
在一些实施例中,可以将训练好的策略网络分别部署到手机中相应的决策环境中;这样,在使用该网络时,可以将获取到的运行状态特征输入训练好的策略网络,获取该网络输出的策略,包括CPU调频策略、GPU调频策略以及绑核策略。然后手机按照该策略对CPU和GPU的计算资源进行调度。基于训练数据对预设MADDPG网络进行迭代训练,可以获得训练好的MADDPG网络。其中包括了训练好的策略网络。MADDPG网络具有中心化训练,去中心化决策的特点。通过上述方法训练确定的策略网络,能够根据手机的当前运行状态特征,实现全局的最优目标。即,根据手机的当前运行状态,选择最合适的计算资源的分配和调度方式。从而既能够保证应用的运行需求,又能够尽可能降低手机的功耗。
在另一些实施例中,也可以由PC预先获取手机在不同运行状态下的各种运行状态特征,并将各种运行状态特征分别输入到训练好的策略网络,获取策略网络输出的手机在各种状态下最优的策略;如图8所示策略网络的输入数据与输出数据。然后,PC将策略网络输出的各种状态下最优的策略部署到手机;示例性的,将各种状态下最优的策略以策略离散图的方式存储至手机。在使用时,手机可以获取当前运行状态特征,在策略离散图中查找与当前运行状态特征匹配的策略。进一步的,针对CPU策略网络、GPU策略网络和绑核策略网络,可以分别输出对应的最优策略的策略离散图。这样,在使用时,不需要实时的通过训练好的策略网络进行运算获得当前状态下的最优策略,而是可以通过查表这样更快的方式,同样能够获取到该状态下的最优策略。从而可以减少根据运行状态特征获取最优策略所需要的时间,提高获得最优策略的效率。如图8所示,将运行状态特征分别输入各训练好的策略网络,可以获得对应的CPU调度策略、GPU调度策略和绑核策略。
在一些实施例中,策略离散图包括了不同运行状态特征与不同策略的映射关系;可以记为第一映射关系。
进一步的,手机的状态种类较多,为了减少查找工作量,可以在将各种运行状态特征输入到训练好的策略网络之前,先对所有运行状态特征进行分桶处理。并且,分桶处理可以保证输入策略网络的状态是离散化的。常见的分桶方法可以包括:等距分桶、等频分桶或者聚类分桶等。在本申请实施例中,可以采用任意一种方式对所有运行状态特征分桶处理。之后,再将各特征桶分别输入到对应的训练好的策略网络中,获得各特征桶分别匹配的最优策略。最后,将各特征桶分别匹配的最优策略,存储为相应的离散图。示例性的,将各CPU相关运行特征桶分别输入CPU策略网络,获得的各特征桶对应的最优策略,存储为CPU策略离散图。将各GPU相关运行特征桶分别输入GPU策略网络,获得的各特征桶对应的最优策略,存储为GPU策略离散图。将各绑核相关运行特征桶分别输入绑核策略网络,获得的各特征桶对应的最优策略,存储为绑核策略离散图。在该实施例中,策略离散图包括了不同特征桶与不同策略的映射关系,可以记为第二映射关系。
由上述实施例可知,在一些实施例中,CPU策略网络输出的是一个(-1,1)之间的数值。因此,在一些实施例中,CPU策略离散图中的最优策略可以存储为CPU策略网络的输出结果,即CPU相关运行特征桶分别对应的(-1,1)之间的数值。
在另一些实施例中,CPU策略网络输出的(-1,1)之间的数值,在使用时需要转换为对应的CPU频点或CPU频点档位。因此,在该实施例中,CPU策略离散图中的最优策略可以存储为CPU策略网络的输出结果转换得到的CPU频点或CPU频点档位。
或者,在另一些实施例中,还可以在CPU策略网络中tanh函数层后增加映射层。这样,CPU策略网络的tanh函数层输出(-1,1)之间的数值之后,经过该映射层,可以将该数值映射为CPU频点或CPU频点档位。在该实施例中,CPU策略离散图中的最优策略可以存储为CPU策略网络的输出结果转换得到的CPU频点或CPU频点档位。
以策略网络的所有输入包括CPU负载、GPU负载、应用负载和应用FPS为例,在一个具体示例中,将CPU负载划分为a个特征桶,GPU负载划分为b个特征桶,应用负载划分为c个特征桶,应用FPS划分为d个特征桶。那么,对于CPU策略网络而言,其输入包括CPU负载、应用负载和应用FPS,则CPU策略网络的输入数据包括(a*c*d)种可能。针对该(a*c*d)种可能的输入数据,分别输出对应的(a*c*d)种可能的输出结果,即(a*c*d)个CPU调频策略。其中,部分输出结果可能是相同的。
与CPU策略网络类似的,对于GPU策略网络而言,输入数据包括GPU负载和应用FPS,则GPU策略网络的输入包括(b*d)种可能的输入数据,以及(b*d)种可能的输出结果,即(b*d)种可能的GPU调频策略。其中,部分输出结果可能是相同的。
而对于绑核策略网络而言,其输入数据与CPU策略网络相同,因此绑核策略网络同样包括(a*c*d)种可能的输入数据。绑核策略网络的输出的绑核方式的种类可以根据实际情况进行设置。以绑核策略网络对游戏的逻辑线程和渲染线程确定对应的绑核策略为例,绑核策略网络输出的绑核方式可以设置为4种。在绑核策略网络的输出为独热编码的情况下,绑核策略网络的输出的4种不同绑核方式,可以表示为:0001,0010,0100,以及1000。
图9为CPU策略网络对应的不同的状态桶下最优策略的策略离散图的示意图。其中每一个数字分别代表一个状态桶下的频点档位。
图10示出了一些实施例中计算资源的调度方法的流程图。该方法应用于手机。在该实施例中,以将训练好的策略网络以离散图的形式存储在手机中为例进行说明。
S501.启动应用n,启动调度进程。
在一些实施例中,手机启动调度进程后,还会将策略离散图加载至内存中,以便基于该策略离散图结合手机的当前状态选择合适的策略。策略离散图包括CPU调度策略离散图、GPU调度策略离散图以及绑核策略调度离散图。
S502.通过调度进程获取手机的运行状态特征。
在一些实施例中,在获取到运行状态特征后,可以先对其进行平滑处理,然后再根据平滑处理后的运行状态特征查找合适的策略。
S503.通过调度进程确定运行状态特征所属的目标特征桶。
由于特征桶是预先将手机的各种不同状态分桶处理获得的,上述运行状态特征是属于其中一个特征桶的。因此,手机在获取到运行状态特征后,可以先确定该运行状态特征所属的目标特征桶,以便在策略离散图中查找对应的策略。
不同的策略网络的输入数据是不相同的,CPU策略网络输入的是CPU相关运行状态特征,GPU策略网络输入的是GPU相关运行状态特征,而绑核策略网络输入的是绑核相关运行状态特征。由此,运行状态特征可以划分为:CPU相关运行状态特征、GPU相关运行状态特征以及绑核相关运行状态特征。上述S503具体可以包括:通过调度进程,确定CPU相关运行状态特征所属的目标特征桶,确定GPU相关运行状态特征所属的目标特征桶,以及确定绑核相关运行状态特征所属的目标特征桶。
S504.通过调度进程根据运行状态特征所属的目标特征桶,在策略离散图中查找对应的策略。
可以理解的,S504中查找获得的策略包括CPU调度策略、GPU调度策略以及绑核策略。在一些实施例中,上述S504具体包括:根据CPU相关运行状态特征所属的目标特征桶,在CPU策略离散图中查找对应的CPU调度策略。根据GPU相关运行状态特征所属的目标特征桶,在GPU策略离散图中查找对应的GPU调度策略。以及,根据绑核相关运行状态特征所属的目标特征桶,在绑核策略离散图中查找对应的绑核策略。其中,绑核相关运行状态特征与CPU相关运行状态特征可以是相同的。
以CPU策略网络为例,在一些实施例中,CPU策略离散图中存储的是多个(-1,1)之间的数值。上述S504中查找到的CPU调度策略即为一个(-1,1)之间的数值。之后,手机可以将该数值映射为对应的CPU频点档位。从而,手机的CPU可以按照该CPU频点档位调整CPU的频率。在另一些实施例中,CPU策略离散图中存储的是多个CPU频点档位。上述S504中查找到的CPU调度策略即为一个CPU频点档位,从而,手机的CPU可以直接按照该CPU频点档位调整CPU的频率。
GPU策略网络与CPU策略网络类似,可以参照CPU策略网络的详细介绍。
以绑核策略网络为例,在绑核策略离散图中查找到的绑核策略,具体可以是一个独热编码。之后,手机CPU可以按照该独热编码对应的绑核方式将应用n的重要线程(如逻辑线程和渲染线程)绑定至CPU的对应核心上处理。
S505.通过调度进程将策略发送至对应的处理器。
相应的,处理器接收到策略。
上述S505具体可以包括:通过调度进程将CPU调度策略和绑核策略发送至CPU;将GPU调度策略发送至GPU。
S506.处理器执行策略。
在一些实施例中,上述S506具体可以包括:CPU执行CPU调度策略和绑核策略,GPU执行GPU调度策略。在另一些实施例中,处理器执行策略也可以表述为:处理器按照策略调度处理器对应的计算资源。具体的,CPU按照CPU调度策略调度CPU的计算资源,GPU按照GPU调度策略调度GPU的计算资源,以及CPU按照绑核策略将当前运行应用的应用进程或应用线程绑定至CPU的对应核心。
在本申请实施例提出的计算资源的调度方法中,是基于训练好的策略网络来实现计算资源的分配和调度。而训练好的策略网络是对MADDPG网络训练确定的,MADDPG网络的不同智能体之间存在着一定的关系。因此通过上述方法训练确定的策略网络能够结合CPU相关运行状态特征、GPU相关运行状态特征以及绑核相关运行状态特征,协同调度CPU和GPU的计算资源,以及确定CPU的绑核策略。在游戏等应用运行过程中,能够使手机在复杂的游戏环境下平衡功耗和性能。在手机基于训练好的策略网络协调分配计算资源时,可以按照运行状态特征在策略离散图中查找对应的频点和绑核策略。并且,通过在离散图中查找对应策略的方式,可以节省在使用该训练好的策略网络分配计算资源时,网络的运算时间,提高了分配资源的效率。
由上述实施例的说明可知,调度进程是在应用n在前台运行过程中,按照上述方法进行计算资源的调度。若检测到应用n退出或应用n切换至后台运行,则手机可以暂停执行上述计算资源的调度方法。在一些实施例中,上述方法还可以包括:响应于应用n退出,调度进程退出。或者,响应于应用n切换至后台运行,调度进程暂停执行上述S502-S506。
由上述过程可知,S506中处理器执行的策略是根据运行状态特征选择的策略,而手机在运行过程中,不同时间手机的运行状态可能不相同。因此,手机在应用n在前台运行过程中,可以重复执行上述S502-S506,从而实时根据当前运行状态确定合适的策略,并按照策略执行。这样,可以保证在运行应用n的过程中,持续在保证应用的运行需求的前提下,尽可能的降低手机的功耗。
进一步的,手机可以在每一次应用n对应的queue buffer执行完成时,重新获取手机的运行状态特征。也就是说,每一帧完成时,手机重新获取最新的运行状态特征,并查找对应的策略并按照最新的策略来执行。这样可以保证每一帧都能够按照最优的策略执行。在另一些实施例中,手机也可以每间隔s帧获取一次运行状态特征,然后重新选择合适的策略来执行。其中,s可以根据实际情况设置,如s可以设置为3、4、5或6等。这样,在满足兼顾应用运行需求和手机功耗的前提下,可以减少计算资源的调度策略的调整次数,从而降低第一电子设备的功耗。
由上述实施例的说明可知,手机在应用n对应的queue buffer执行完成时,可以通过调度接收到向上层的应用n发送queue buffer的完成信号。因此,在一些实施例中,手机通过调度进程可以在每一帧完成后,响应于接收到完成信号,重新获取最新的运行状态特征,并查找对应的策略并按照最新的策略来执行。在另一些实施例中,手机通过调度进程可以每在间隔s帧后,响应于接收到完成信号,重新获取最新的运行状态特征,并查找对应的策略并按照最新的策略来执行。
上述实施例中,均是以MADDPG网络的策略网络包括CPU策略网络、GPU策略网络以及绑核策略网络为例进行说明的。在另一些实施例中,MADDPG网络的策略网络也可以仅包括CPU策略网络、GPU策略网络以及绑核策略网络中的两个网络。可以理解的,在该实施例中,MADDPG网络的训练过程,以及训练好的策略网络使用过程,均与上述实施例中相应过程类似。
示例性的,MADDPG网络的策略网络可以包括CPU策略网络和GPU策略网络。对该MADDPG网络训练完成后,获得的策略网络可以用于手机根据当前运行状态选择CPU调度策略和GPU调度策略。该策略网络同样能够兼顾手机的性能和功耗。
此外,在手机使用训练好的策略网络分配计算资源的过程中,手机还可以对训练好的策略网络的性能进行监测。并且,在监测到训练好的策略网络模型存在性能问题时,可以停止使用该训练好的策略网络选择需要使用的计算资源的分配策略,而是转为使用其他调度方案(如原生能量感知调度(energy aware scheduling,EAS)方案)来实现计算资源的分配核调度。进一步的,手机还可以将监测到的策略网络异常(如可能出现在游戏等应用版本更新后)上报至服务器。服务器根据收集到各手机等电子设备上报的策略网络异常,可以分析异常原因、重新训练策略网络等。
图11示出了部署策略网络后,进行性能监测的流程。该方法应用于手机。在启动调度进程时,手机将会检查相关模块是否正常工作。具体的,手机可以检查调度进程相关的配置文件是否正常,以及调频处理模块是否工作正常。若配置文件正常,且调频处理模块工作正常,则可以继续通过调度进程基于策略网络根据当前状态确定合适的策略。反之,若调度进程相关的配置文件异常,或者调频处理模块异常,则退出调度进程。其中,调频处理模块具体可以用于调整CPU频率、GPU频率以及设置绑核策略。
进一步的,在调度进程运行过程中,监测手机的性能数据。在检测到性能数据异常时,可以退出调度进程。示例性的,手机的性能数据可以包括:手机的FPS、帧率等。
在一些实施例中,***测手机的性能数据,具体可以包括:监测最近x帧的帧长;和/或,监测最近y帧的帧率。进一步的,最近x帧的帧长大于预设帧长,或者,最近y帧的帧率小于预设帧率,则表示发生卡顿。其中,x、y、预设帧长以及预设帧率均可以根据实际情况设置。示例性的,x可以设置为3、4或5等;y可以设置为30、60或90等。预设帧长可以设置为1.5*目标帧长;预设帧率可以设置为0.9*目标帧率;目标帧长和目标帧率表示的是应用n设置的期望帧长和期望帧率。
在本申请实施例提供的技术方案中,手机在使用策略网络分配处理器的计算资源的过程中,还可以监控策略网络的使用情况。如果监测到使用策略网络分配计算资源导致手机的性能出现异常,则手机可以暂停使用该策略网络来分配计算资源。例如转为采用常规的方法分配计算资源。这样,可以避免因策略网络决策出现问题而导致降低手机的性能。
通常在手机更新预设应用的版本后容易出现异常。
进一步的,手机在调度进程的运行过程中,若监测到手机的性能数据异常,在退出调度进程的同时,还可以向服务器上报该异常。这样,便于服务器收集策略网络运行过程的异常,从而在满足一定条件的情况下,可以重新训练策略网络。
本申请另一些实施例提供了一种电子设备(如手机)。该电子设备可以包括:存储器和一个或多个处理器。该存储器与处理器耦合。该存储器还用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。该电子设备的结构可以参考图1所示的电子设备100的结构。
本申请另一些实施例提供了一种电子设备(如PC)。该电子设备可以包括:存储器和一个或多个处理器。该存储器与处理器耦合。该存储器还用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中PC执行的各个功能或者步骤。
本申请实施例还提供一种芯片***,如图12所示,该芯片***120包括至少一个处理器1201和至少一个接口电路1202。处理器1201和接口电路1202可通过线路互联。例如,接口电路1202可用于从其它装置(例如计算机的存储器)接收信号。又例如,接口电路1202可用于向其它装置(例如处理器1201)发送信号。示例性的,接口电路1202可读取存储器中存储的指令,并将该指令发送给处理器1201。当指令被处理器1201执行时,可使得计算机执行上述实施例中的各个步骤。当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述手机上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。当计算机指令在上述PC上运行时,使得该电子设备执行上述方法实施例中PC执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中手机执行的各个功能或者步骤。其中,该计算机可以是电子设备,如手机。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种计算资源的调度方法,其特征在于,所述方法应用于第一电子设备,所述方法包括:
获取所述第一电子设备的当前运行状态特征;所述当前运行状态特征包括:CPU相关运行状态特征、GPU相关运行状态特征,以及绑核相关运行状态特征;
基于训练确定的策略网络,获取与所述当前运行状态特征匹配的第一策略;其中,策略网络是对多智能体深度确定策略梯度MADDPG网络训练确定的;所述第一策略包括:第一中央处理器CPU调频策略、第一图形处理器GPU调频策略以及第一绑核策略;
所述第一电子设备的处理器分别基于对应的所述第一策略,调度处理器对应的计算资源。
2.根据权利要求1所述的方法,其特征在于,所述训练确定的策略网络包括:训练确定的CPU策略网络、训练确定的GPU策略网络以及训练确定的绑核策略网络;所述基于训练确定的策略网络,获取与所述当前运行状态特征匹配的第一策略,包括:
基于所述训练确定的CPU策略网络,获取与所述CPU相关运行状态特征对应的第一CPU调频策略;
基于所述训练确定的GPU策略网络,获取与所述GPU相关运行状态特征对应的第一GPU调频策略;
基于所述训练确定的绑核策略网络,获取与所述绑核相关运行状态特征对应的第一绑核策略。
3.根据权利要求1所述的方法,其特征在于,第一CPU调频策略包括CPU频点,第一GPU调频策略包括GPU频点;所述第一电子设备的处理器分别基于对应的所述第一策略,调度处理器对应的计算资源,包括:
所述第一电子设备的CPU按照所述CPU频点调整所述CPU的频率;
所述第一电子设备的GPU按照所述GPU频点调整所述GPU的频率;
以及,所述第一电子设备的CPU按照所述第一绑核策略,将当前运行应用的应用进程或应用线程绑定至所述CPU的对应核心。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述CPU相关运行状态特征包括:CPU负载,或者,所述CPU相关运行状态特征包括:所述CPU负载以及以下至少一项:应用负载、应用画面每秒帧数FPS以及CPU温度;
所述GPU相关运行状态特征包括:GPU负载,或者,所述GPU相关运行状态特征包括:所述GPU负载,以及以下至少一项:应用FPS以及GPU温度;
所述绑核相关运行状态特征包括:CPU负载,或者,所述绑核相关运行状态特征包括:所述CPU负载以及以下至少一项:应用负载、应用FPS以及CPU温度。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一电子设备存储有运行状态特征与第二策略的多个第一映射关系;不同运行状态特征分别对应所述第一电子设备处于不同运行状态;不同的所述第二策略是将不同运行状态特征,分别输入所述训练确定的策略网络获得的;
所述基于训练确定的策略网络,获取与所述当前运行状态特征匹配的第一策略,包括:
根据所述多个第一映射关系,查找与所述当前运行状态特征匹配的所述第二策略,作为所述第一策略。
6.根据权利要求5所述的方法,其特征在于,所述多个第一映射关系包括:特征桶与第三策略的多个第二映射关系;不同特征桶,是对所述第一电子设备在不同运行状态下的不同运行状态特征进行分桶处理获得的;
所述根据所述多个第一映射关系,查找与所述当前运行状态特征匹配的所述第二策略,作为所述第一策略,包括:
确定所述当前运行状态特征所属的目标特征桶;所述目标特征桶为所述不同特征桶中的任一者;
根据所述多个第二映射关系,查找与所述目标特征桶匹配的所述第三策略,作为所述第一策略。
7.根据权利要求1-3或6中任一项所述的方法,其特征在于,所述第一电子设备安装有预设应用;所述获取所述第一电子设备的当前运行状态特征,包括:
在所述预设应用处于前台运行过程中,在每帧结束后,响应于接收到队列缓存区的完成信号,获取所述第一电子设备的当前运行状态特征;
或者,
在所述预设应用处于前台运行过程中,每间隔预设帧数或预设时间,响应于接收到队列缓存区的完成信号,获取所述第一电子设备的当前运行状态特征。
8.根据权利要求1-3或6中任一项所述的方法,其特征在于,在所述获取所述第一电子设备的当前运行状态特征之前,所述方法还包括:
启动调度进程;
所述方法还包括:
在启动所述调度进程时,检查所述调度进程相关的配置文件和/或调频处理模块;所述调频处理模块用于调整CPU频率、GPU频率以及设置绑核策略;若所述配置文件运行异常,或者所述调频处理模块异常,则退出所述调度进程;和/或,
在所述调度进程的运行过程中,监测所述第一电子设备的性能数据;若所述性能数据异常,则退出所述调度进程。
9.一种策略网络的训练方法,其特征在于,所述方法应用于第二电子设备,所述第二电子设备与第一电子设备连接;所述第二电子设备包括预设多智能体深度确定策略梯度MADDPG网络,所述预设MADDPG网络包括策略网络和价值网络;所述方法包括:
与所述第一电子设备交互,获得训练数据;所述训练数据包括:所述第一电子设备在不同时刻的样本运行状态特征,策略网络对不同时刻的样本运行状态特征输出的中间策略,以及,不同时刻对应的奖励信息;
基于所述训练数据对所述预设MADDPG网络进行迭代训练,直至达到终止条件;
其中,所述与所述第一电子设备交互,获得训练数据,包括:
从所述第一电子设备获取当前时刻的第一样本运行状态特征;所述第一样本运行状态特征包括:样本中央处理器CPU相关运行状态特征、样本图形处理器GPU相关运行状态特征,以及样本绑核相关运行状态特征;
将所述第一样本运行状态特征输入策略网络,获得所述策略网络输出的中间策略;所述中间策略包括:所述CPU调频策略、所述GPU调频策略以及所述绑核策略;
将所述中间策略发送至所述第一电子设备;所述中间策略用于指示所述第一电子设备的处理器按照所述中间策略调度所述处理器的计算资源;
获取所述第一电子设备执行所述中间策略后的反馈数据;
基于所述反馈数据生成奖励信息;
从所述第一电子设备获取下一时刻的第二样本运行状态特征;
所述迭代训练中的一次训练过程包括:
将t时刻对应的样本运行状态特征和中间策略输入到价值网络,获得所述价值网络输出的评分数据;其中,t为正整数;
基于所述t时刻对应的奖励信息和所述评分数据,对所述策略网络和所述价值网络进行参数更新;
其中,首次训练时,所述策略网络为初始的策略网络,所述价值网络为初始的价值网络;非首次训练时,所述策略网络包括前一次训练更新后的策略网络;所述价值网络为前一次训练更新后的价值网络。
10.根据权利要求9所述的方法,其特征在于,所述策略网络包括:CPU策略网络、GPU策略网络以及绑核策略网络;所述将所述第一样本运行状态特征输入策略网络,获得所述策略网络输出的中间策略,包括:
将样本CPU相关运行状态特征输入所述CPU策略网络,获得所述CPU策略网络输出的CPU调频策略;
将样本GPU相关运行状态特征输入所述GPU策略网络,获得所述GPU策略网络输出的GPU调频策略;
将所述样本绑核相关运行状态特征输入所述绑核策略网络,获得所述绑核策略网络输出的绑核策略。
11.根据权利要求9所述的方法,其特征在于,所述样本CPU相关运行状态特征包括:样本CPU负载,或者,所述CPU相关运行状态特征包括:所述样本CPU负载以及以下至少一项:应用负载、应用FPS以及CPU温度;
所述样本GPU相关运行状态特征包括:样本GPU负载,或者,所述GPU相关运行状态特征包括:所述样本GPU负载,以及以下至少一项:应用FPS以及GPU温度;
所述样本绑核相关运行状态特征包括:样本CPU负载,或者,所述CPU相关运行状态特征包括:所述样本CPU负载以及以下至少一项:应用负载、应用FPS以及CPU温度。
12.根据权利要求9-11中任一项所述的方法,其特征在于,所述基于所述t时刻对应的奖励信息和所述评分数据,对所述策略网络和所述价值网络进行参数更新,包括:
基于所述t时刻的奖励信息和所述评分数据,采用时序差分TD算法对所述价值网络进行参数更新;和/或,
基于所述t时刻的奖励信息和所述评分数据,采用策略梯度进行梯度上升更新所述策略网络的参数。
13.根据权利要求9-11中任一项所述的方法,其特征在于,所述反馈数据包括:功耗反馈数据和性能反馈数据;所述方法还包括:接收所述第一电子设备发送的所述第一电子设备的期望性能数据;
所述基于所述反馈数据生成奖励信息,包括:
计算所述性能反馈数据和所述期望性能数据的性能数据差值;
基于所述性能数据差值和所述功耗反馈数据,生成所述奖励信息。
14.根据权利要求9-11中任一项所述的方法,其特征在于,所述终止条件包括:策略网络和价值网络均收敛,和/或,所述迭代训练的训练次数达到预设次数。
15.一种计算机装置,其特征在于,所述计算机装置包括:处理器、存储器以及存储在所述存储器上的计算机程序;所述存储器分别与所述处理器耦合;
当所述计算机装置运行时,所述处理器执行所述计算机程序,以实现如权利要求1-8中任一项所述的方法,或者实现如权利要求9-14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被电子设备的处理器运行时,实现如权利要求1-8中任一项所述的方法,或者实现如权利要求9-14中任一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-8中任一项所述的方法,或者实现如权利要求9-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410339430.XA CN117931461A (zh) | 2024-03-25 | 2024-03-25 | 一种计算资源的调度方法、策略网络的训练方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410339430.XA CN117931461A (zh) | 2024-03-25 | 2024-03-25 | 一种计算资源的调度方法、策略网络的训练方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117931461A true CN117931461A (zh) | 2024-04-26 |
Family
ID=90761331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410339430.XA Pending CN117931461A (zh) | 2024-03-25 | 2024-03-25 | 一种计算资源的调度方法、策略网络的训练方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931461A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210067417A1 (en) * | 2019-08-28 | 2021-03-04 | Honeywell International Inc. | Methods, systems and appratuses for optimizing the bin selection of a network scheduling and configuration tool (nst) by bin allocation, demand prediction and machine learning |
CN113010203A (zh) * | 2019-12-20 | 2021-06-22 | Oppo广东移动通信有限公司 | 一种基于开放平台的应用优化方法及相关装置 |
CN113873022A (zh) * | 2021-09-23 | 2021-12-31 | 中国科学院上海微***与信息技术研究所 | 一种可划分任务的移动边缘网络智能资源分配方法 |
CN115037749A (zh) * | 2022-06-08 | 2022-09-09 | 山东省计算中心(国家超级计算济南中心) | 一种性能感知的大规模微服务智能多资源协同调度方法及*** |
CN116405904A (zh) * | 2023-04-06 | 2023-07-07 | 上海大学 | 一种基于深度强化学习的tacs网络资源分配方法 |
CN117666755A (zh) * | 2022-08-29 | 2024-03-08 | 华为技术有限公司 | 任务调度方法及相关设备 |
-
2024
- 2024-03-25 CN CN202410339430.XA patent/CN117931461A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210067417A1 (en) * | 2019-08-28 | 2021-03-04 | Honeywell International Inc. | Methods, systems and appratuses for optimizing the bin selection of a network scheduling and configuration tool (nst) by bin allocation, demand prediction and machine learning |
CN113010203A (zh) * | 2019-12-20 | 2021-06-22 | Oppo广东移动通信有限公司 | 一种基于开放平台的应用优化方法及相关装置 |
CN113873022A (zh) * | 2021-09-23 | 2021-12-31 | 中国科学院上海微***与信息技术研究所 | 一种可划分任务的移动边缘网络智能资源分配方法 |
CN115037749A (zh) * | 2022-06-08 | 2022-09-09 | 山东省计算中心(国家超级计算济南中心) | 一种性能感知的大规模微服务智能多资源协同调度方法及*** |
CN117666755A (zh) * | 2022-08-29 | 2024-03-08 | 华为技术有限公司 | 任务调度方法及相关设备 |
CN116405904A (zh) * | 2023-04-06 | 2023-07-07 | 上海大学 | 一种基于深度强化学习的tacs网络资源分配方法 |
Non-Patent Citations (1)
Title |
---|
成思玥 等: "基于多智能体深度强化学习的测运控一体化资源调度方法", 《天地一体化信息网络》, 31 December 2023 (2023-12-31), pages 1 - 6 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113778663B (zh) | 一种多核处理器的调度方法及电子设备 | |
CN109933429A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112052841B (zh) | 一种视频摘要的生成方法以及相关装置 | |
CN111158455A (zh) | 一种功耗控制方法、装置、存储介质及终端 | |
EP3671441A1 (en) | Application management method and apparatus, storage medium, and electronic device | |
CN107402808B (zh) | 进程管理方法、装置、存储介质及电子设备 | |
CN111338745B (zh) | 一种虚拟机的部署方法、装置及智能设备 | |
CN113115460B (zh) | 时隙选择方法及相关设备 | |
CN107168803A (zh) | 一种cpu资源分配方法和终端 | |
CN108377157A (zh) | 一种Wi-Fi天线的控制方法及装置 | |
CN115460469B (zh) | 多视频播放的处理方法、装置、计算机设备及存储介质 | |
CN112036492B (zh) | 样本集处理方法、装置、设备及存储介质 | |
CN107943570A (zh) | 应用管理方法、装置、存储介质及电子设备 | |
CN115345464A (zh) | 业务订单的派单方法、装置、计算机设备及存储介质 | |
CN110956265A (zh) | 一种模型训练方法和相关装置 | |
CN117217201B (zh) | 基于预训练语言模型的任务处理方法、装置、设备及介质 | |
CN117931461A (zh) | 一种计算资源的调度方法、策略网络的训练方法以及装置 | |
CN116996409A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN112256354A (zh) | 应用启动方法、装置、存储介质及电子设备 | |
US11736354B2 (en) | Appartus for classifying and setting plurality of electronic devices and method thereof | |
CN111796928A (zh) | 终端资源优化方法、装置、存储介质及终端设备 | |
CN117555815B (zh) | 参数预测方法、模型训练方法和相关装置 | |
CN115311851B (zh) | 路况信息确定方法、装置、电子设备及存储介质 | |
CN115361292B (zh) | 资源包发送方法、装置、设备及存储介质 | |
CN113413609B (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 |