CN118152111A - 功耗优化方法、装置、电子设备、存储介质 - Google Patents
功耗优化方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN118152111A CN118152111A CN202410036920.2A CN202410036920A CN118152111A CN 118152111 A CN118152111 A CN 118152111A CN 202410036920 A CN202410036920 A CN 202410036920A CN 118152111 A CN118152111 A CN 118152111A
- Authority
- CN
- China
- Prior art keywords
- power consumption
- time window
- data
- consumption data
- cache
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 19
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- Power Sources (AREA)
Abstract
本申请涉及一种计算机技术领域,特别是涉及一种功耗优化方法、装置、电子设备和存储介质。所述方法包括:根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据;获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。本方法可以实现对业务***运行特点的自动感知,并根据运行特点进行局部性能的功耗优化。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种功耗优化方法、装置、电子设备和存储介质。
背景技术
在电子设备中,为了提升中央处理器CPU的运行性能,一般可以采用负载均衡技术、缓存锁定技术等来实现处理器性能的提升。但是,这样的优化方案大多基于整体控制的逻辑;无法实现对于局部的性能优化。
发明内容
基于此,有必要针对上述技术问题,提供一种功耗优化方法、装置、电子设备和存储介质,实现对业务***运行特点的自动感知,并根据运行特点进行功耗优化。
第一方面,本申请提供了一种功耗优化方法,所述方法包括:
根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;
基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据;
获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。
在其中一个实施例中,所述方法还包括:所述根据功耗比对结果确定功耗优化策略,包括:
在所述预估功耗数据与所述实际功耗数据之间的差值小于或者等于预设阈值时,选取目标时间窗对应的功耗优化策略配置为目标功耗优化策略;或者,
在所述预估功耗数据与所述实际功耗数据之间的差值大于预设阈值时,对所述当前时间窗对应的功耗优化策略进行调节,以获取目标功耗优化策略。
在其中一个实施例中,所述根据当前的负载均衡策略,获取当前时间窗的功耗数据,包括:
根据所述负载均衡策略确定对应的分组策略;
基于分组策略分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据。
在其中一个实施例中,所述分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据,包括:
利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗;其中,所述缓存块/程序块组合信息包括:锁定缓存信息、预取块信息;
根据处理器内核的运行参数,确定当前时间窗对应的性能消耗。
在其中一个实施例中,利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗,包括:
基于预取程序块数据、程序块的大小、当前时间窗内程序块在缓存块中被执行的概率,确定当前时间窗对应的缓存块/程序块组合;
结合处理器内核的工作电压、工作频率、指令执行数据,确定各缓存块/程序块组合对应的执行功耗;
基于各缓存块/程序块组合对应的执行功耗,确定当前时间窗对应的***功耗。
在其中一个实施例中,所述方法还包括:
在SoC 事件计数器中配置cache缓存计数器、预取地址计数器;
利用已配置的SoC 事件计数器对处理器事件、缓存事件进行统计,并对事件统计结果进行解析,以获取所述指令执行数据。
在其中一个实施例中,所述功耗优化策略包括缓存锁定方案、预取方案和负载均衡方案中的任意一项或任意多项。
在其中一个实施例中,所述预取程序块根据程序块访问数据的统计结果确定;或者,根据已存储的程序块数据确定。
第二方面,本申请提供了一种功耗优化装置,所述装置包括:
当前时间窗功耗数据计算模块,用于根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;
功耗预估模块,用于基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据;
数据比对模块,用于获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。
第三方面,本申请还提供了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面任一项实施例中方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项实施例中方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现第一方面任一项实施例中方法的步骤。
上述的功耗优化方法、装置、计算机设备和存储介质、计算机程序产品,通过对待分析对象当前的负载均衡策略进行解析来获取当前时间窗的功耗数据,并可以基于当前时间窗的功耗数据实现对下一时间窗的功耗进行预估来获取预估功耗数据;从而实现对待分析对象的运行特点的实时感知;通过对下一时间窗的预估功耗数据和实际功耗数据进行比对,从而可以判断出目前的负载均衡策略是否满足实际需求,从而能够根据当前的功耗比对结果来判断是否需要对功耗优化策略是否需要调节,继而实现基于待分析对象运行特点进行功耗优化。并且,通过基于相邻时间窗的功耗数据进行比对,从而实现对待分析对象的局部性能优化。
附图说明
图1为一个实施例中功耗优化方法的流程示意图;
图2为一个实施例中***功耗计算方法的示意图;
图3为一个实施例中预取程序块优化效果的示意图;
图4为一个实施例中负载均衡优化效果的示意图;
图5为一个实施例中功耗优化装置的结构框图;
图6为一个实施例中电子设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在相关技术中,预取技术是通过计算和访存的重叠,在Cache缓存可能会发生失效之前发出预取请求以便在该数据真正被使用到时已经提前将数据块取入Cache,从而避免Cache失效造成的处理器停顿;一般程序员在底层软件编程时手动显式告知软件某些指令需要预取以提升程序运行性能。Cache锁定技术指的是将某个经常访问到的Cache Line或者Cache Way 锁定,避免该line或way被不恰当的换出,从而提升程序的运行性能。CPU负载均衡技术通常指的是识别某个CPU利用率,对CPU进行均衡调度,让没有运行的CPU择时运行。
对于应用程序来说,由于程序员对底层软/硬件接口了解不充分,容易导致应用程序运行时缺乏对软硬件底层的优化,即大量的应用软件没有充分利用CPU提供的预取机制来提升程序性能。另外,预取机制、Cache锁定技术一般需要程序员预先手动配置缓存,缺少与应用程序运行特点的结合,无法做到动态适配应用程序的运行,无法达到多个局部最优的性能和功耗。另外,3.CPU均衡调度和***低功耗控制往往是两条控制路径,在降低功耗、提升性能、负载均衡之间无法取得局部最优化调度的效果。
在一个实施例中,如图1所示,提供了一种功耗优化方法,包括以下步骤:
步骤S11,根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;
示例性的,上述的待分析对象可以是电子设备中运行的应用程序。可以是针对电子设备中当前运行的应用程序进行功耗控制和优化。其中,上述的负载均衡策略可以是预先定义的针对该应用程序的负载均衡策略,或者,也可以是针对电子设备的负载均衡策略。其中,当前执行的负载均衡策略可以用于描述在当前的分组策略下,各处理器内核执行的任务数量,以及对应的功耗数据。其中,功耗数据可以利用***功耗、性能消耗进行表示。具体的,功耗数据可以用于描述处理器内核执行命令时产生的具体执行功耗;性能消耗可以用于表示各类指令的时间花费。
通过根据当前时间窗对应的功耗负载均衡策略进行分析,基于处理器执行命令的相关数据进行统计和计算,从而能够确定当前时间窗内处理器执行命令对应产生的***功耗,以及性能消耗。
在一个实施例中,在上述的步骤S11中,所述根据当前的负载均衡策略,获取当前时间窗的功耗数据,具体可以包括:根据所述负载均衡策略确定对应的分组策略;基于分组策略分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据。
具体的,T1时刻的负载均衡策略可以表示为:
其中,表示每个处理器内核core上运行的任务数;为 T1时刻,执行分组策略STn ,每个分组的***功耗Power和性能消耗Perf。
基于上述公式,基于T1时刻的分组策略下各处理器内核core执行的任务,可以统计每个分组的***功耗和性能消耗。
在一个实施例中,所述分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据,包括:
利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗;其中,所述缓存块/程序块组合信息包括:锁定缓存信息、预取块信息;
根据处理器内核的运行参数,确定当前时间窗对应的性能消耗。
示例性的,参考图2所示,所述利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗,包括:
步骤S21,基于预取程序块数据、程序块的大小、当前时间窗内程序块在缓存块中被执行的概率,确定当前时间窗对应的缓存块/程序块组合;
步骤S22,结合处理器内核的工作电压、工作频率、指令执行数据,确定各缓存块/程序块组合对应的执行功耗;
步骤S23,基于各缓存块/程序块组合对应的执行功耗,确定当前时间窗对应的***功耗。
示例性的,所述预取程序块根据程序块访问数据的统计结果确定;或者,根据已存储的程序块数据确定。
具体的,缓存块/程序块组合信息可以用于描述当前时刻,Cache缓存块、程序块的组合信息,包括最佳锁定Cache Line(缓存行),最佳锁定Cache Way(缓存路),选择最佳预取块。举例来说,在T1时刻,对应的缓存块/程序块组合信息可以表示为:
其中,表示为预取程序块,/>表示为程序块的尺寸;/>表示为cache块/行;P表示在T1时刻程序块/>在缓存/>中被执行的概率。其中,预取程序块可以通过读取寄存器来获取程序员预先定义的预取程序块,或者,也可以通过对程序块的访问数据进行统计来选取最常被访问的数据块或访问概率最高的程序块作为预取程序块。
其中,程序块在缓存块中被执行的概率可以表示为:
基于上述公式,可以得到T1时刻全部的缓存块/程序块组合信息。
其中,对于缓存块/程序块组合对应的执行功耗,可以包括:
其中,、/>分别为折算因子,/>为 core电压,/>为core的工作频率;instuction代表处理器执行指令的个数;Pinst表示每个指令的经验功耗,例如可以通过查表的方式得到。Power(Bn,Lm)为功耗标量值,通过执行指令个数乘以每个指令的经验功耗的累加和电压及工作频率来计算。
基于上述内容,对于一个处理器内核core在当前时间窗对应的***功耗,例如对于T1时间窗,其计算公式可以包括:
其中,为程序块的个数;/>为 cache缓存的个数。
基于此,T1时刻对应的***功耗可以表示为:
其中,表示为处理器内核core的行和列数。
示例性的,所述根据处理器内核的运行参数,确定当前时间窗对应的性能消耗。
其中,T1时刻的性能最佳路径可以表示为:
具体来说,在一段程序块锁定到对应的cache line时,则该段程序块每条指令从CPU发出到cache缓存的周期是确定的。基于此,通过对T1时间窗内已执行的指令进行统计,得到实际执行增量的周期数,从而可以获取该些已执行指令对应的时间消耗,作为T1时间窗对应的性能消耗。
举例来说,Perfcore 通过每个时间窗Tn内每类指令的平均时间得到,比如从第一次内存取一个数花了20个周期,第二次从内存取一个数花了23个周期,2次平均后的从内存取数的周期就是(20+23)/2, 其他指令如此类推。这是因为程序执行时每条指令会受到实际总线竞争及流水线竞争因素的影响导致运行情况***。最后Perfcore会根据Tn内花时间最多,最显著的指令周期数来判断这个时间窗的性能指标。另外实际执行程序后也可以统计每个程序块一共运行多少时间(由PMU计数器确定)。
示例性的,在T1时间窗,在完成功耗数据的计算后,还可以更新程序块组中每个程序块的执行概率,计算对应的概率矩阵。
步骤S12,基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据。
具体的,在完成T1时间窗的功耗数据后,可以首先基于T1时间窗的Cache缓存/程序块组合生成T2时间窗对应的预估Cache缓存/程序块组合;再基于该预估Cache缓存/程序块组合进行T2时间窗的预测功耗估算,以及对***性能进行估算。
示例性的,以当前时间窗为T1时刻为例,在完成T1时间窗的功耗数据计算后,便可以执行对下一时间窗,即T2时间窗的功耗数据的估算。其中,对于T2时刻来说, T2时刻的Cache缓存/程序块组合可以根据T1时刻程序执行路径的统计结果来得到。
举例来说,对于预取程序块来说,可以对循环中执行的路径进行统计,筛选出执行频率最高的路径,根据该路径对应的程序块配置为T2时间窗功耗预估使用的程序块;或者,可以对程序分支中已执行的路径的历史数据进行统计,并根据历史数据的统计结果来计算各历史路径被执行的概率,筛选执行概率最高的路径对应的程序块作为T2时间窗功耗预估使用的程序块。另外,对于Cache缓存来说,可以根据地址数据的统计结果来筛选使用频率最高的Cache缓存,配置为T2时间窗功耗预估使用的Cache缓存。基于筛选的预取程序块、Cache缓存来构建T2时间窗的功耗数据的估算对应的预估Cache缓存/程序块组合。
在获取T2时刻的对应的预估Cache缓存/程序块组合后,便可以根据该预估Cache缓存/程序块组合对T2时刻的***功耗进行估计。具体的,可以结合处理器内核的工作电压、工作频率、预估Cache缓存/程序块组合,确定各缓存块/程序块组合对应的预估执行功耗,基于各预估缓存块/程序块组合对应的与执行功耗,确定当前时间窗对应的预估***功耗。
其中,预估的Cache/程序块组合可以表示为:
对应的,预估的Cache/程序块集合可以表示为:
其中,n=k为时间窗的个数,k随应用程序的执行时长增长。
对应的,对于T2时刻,一个处理器内核core预估执行功耗可以包括:
其中,对于预估缓存块/程序块组合对应的预估执行功耗
其中,每个CPU的历史执行指令数可以用于CPU指令执行阶段功耗评估。
程序块执行概率可以表示为:
对应的,T2时刻的预估***功耗可以表示为:
示例性的,对于T2时刻,对于预估的性能最佳路径可以表示为:
其中,Tn可以为T2。其中,基于对T2时刻预估的缓存块/程序块组合,由于在一段程序块锁定到对应的cache line时,则该段程序块每条指令从CPU发出到cache缓存的周期是确定的。基于此,程序块的预测运行周期= 分支运行概率*分支执行周期 +分支运行概率*分支的执行周期;在处理器CPU内部体系结构确定时,每个分支路径的周期数理想情况也是确定的。因此,可以得到估计的执行增量的周期数,从而可以获取该些指令对应的时间消耗,作为T2时间窗对应的预估性能消耗。
步骤S13,获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。
示例性的,在T2时间窗结束时,可以对应用程序实际执行的命令,以及实际执行的缓存块/程序块组合信息进行统计,使用如上述的公式,计算T2时间窗对应的实际功耗数据;再将T2时刻对应的实际功耗数据与预估功耗数据进行比对,根据功耗数据差值的大小来判断是否需要修改、调整优化策略。
在一个示例性的实施例中,在上述的步骤S13中,所述根据功耗比对结果确定功耗优化策略,包括:
在所述预估功耗数据与所述实际功耗数据之间的差值小于或者等于预设阈值时,选取目标时间窗对应的功耗优化策略配置为目标功耗优化策略;或者,
在所述预估功耗数据与所述实际功耗数据之间的差值大于预设阈值时,对所述当前时间窗对应的功耗优化策略进行调节,以获取目标功耗优化策略。
示例性的,对于T2时间窗对应的预估功耗数据可以包括:
对于T2时间窗对应的实际功耗数据可以包括:
其中,分别为折算因子。
判断预估功耗数据与实际功耗数据之间的差值是否小于预设阈值,包括:
其中,为预设阈值。
在一个示例性的实施例中,还可以对各时间窗对应的功耗、性能消耗计算结果、预测结果进行归一化处理,并利用归一化处理后的数据结果进行判断。
在一个示例性的实施例中,所述功耗优化策略包括缓存锁定方案、预取方案和负载均衡方案中的任意一项或任意多项。
具体的,可以对T2时刻对应的实际功耗数据与预估功耗数据,分别对***功耗和性能消耗进行比对。若***功耗、性能消耗的差值均小于第一阈值,则可以维持当前的负载均衡策略不变。或者,若***功耗、性能消耗的差值均大于第一阈值,则可以调整负载均衡策略。例如,可以通过调节分组策略,重新配置预取程序块、锁定Cache缓存的方式来实现对负载均衡策略的调节。
举例来说,参考图3所示,可以对Tn时刻的预取程序块进行优化、重新配置,来获取下一时间窗Tn+1时刻的优化后的预取程序块。或者,参考图4所示,可以对Tn时刻的负载均衡策略下对应的处理内核core进行优化,来获取下一时间窗Tn+1时刻的优化后的负载均衡。
或者,在***功耗、性能消耗中的一项差值大于第一阈值,而另一项的差值小于第一阈值时;例如,若***功耗的差值小于第一阈值,而性能消耗的差值大于第一阈值,则可以采用制作雷达图的方式解决,雷达图面积最小者代表功耗最小,性能最好(消耗时间小)。
在一个示例性的实施例中,如果预测值和实际测试值相差过大,例如大于第二阈值,则可以关闭该算法;例如,可以生成对应的提示信息,由程序员输入控制指令,关闭该算法。或者,也可以再观察连续多个时间窗后确定是否需要调整。或者,也可以重新选取新的cache line/way,按照程序执行路径上用的最多的cache line/way,prefetch点选定,以及按照拓扑结构最近原理和集中原理将业务分配到几个物理距离最近的core上,实现对负载均衡的调节。
在一个示例性的实施例中,所述方法还包括:在SoC 事件计数器中配置cache缓存计数器、预取地址计数器;利用已配置的SoC 事件计数器对处理器事件、缓存事件进行统计,并对事件统计结果进行解析,以获取所述指令执行数据。
具体的,对于CPU事件,可以通过AMU(Activity Monitor Unit,活动监视器单元),PMU(Performance Monitor Unit,性能监视器单元) 单元来进行数据采集。其中,AMU可以包括:64-bit事件计数器,CPU cycle(周期)计数器,常量计数器;退役指令(Instructionsretired)计数器, 它计数每条构架意义上执行过的指令(non speculative);内存暂停周期数(Memory stall cycles)计数器,它计数由于在同一clock domain(时钟域)中的最后一级cache中miss导致的指令分发暂停周期数(instruction dispatch stall cycles);多至16个的附加64-bit事件计数器。
可以在SoC 事件计数器中增加cache line及cache way计数器,预取地址计数器;ARM 处理器 MMU(Memory Management Unit,内存管理单元)页表中PBHA(page basedhardware attributes,基于页面的硬件属性)属性可以由设计自定义,利用PBHA扩展+Cache 事件计数器结合实现。PBHA属性由程序员在生成页表时配置,Cache事件统计逻辑和CPU事件逻辑对PBHA属性进行解析并运用。
在一个示例性的实施例中,可以利用PBHA实现上述的功耗优化方法。具体的,可以配置MMU PBHA实现对事件的统计。例如,可以基于RTL PBHA事件计数来配置MMU PBHA;具体的,在页表中的输入数据可以包括时钟信号、复位信号、页表地址输入信号;并定义YsemiPBHA属性位索引;并定时事件计数器,包括cache缓存事件计数器、preftch事件计数器;还需定义寄存器和内部信号。同步时钟触发的行为,包括时钟保持上升沿信号,在复位时触发同步时钟;并复位事件计数器和内部变量,包括cache缓存计数器、preftch事件计数器、页表地址、YsemiPBHA属性位索引。然后,检查前一个页表地址和当前页表地址是否相等;若相等,检查前一个YsemiPBHA属性和当前YsemiPBHA属性的变化;若页表索引的地址不等,YsemiPBHA属性的使能位发生变化,使能位从0变为1,根据其他属性进行事件计数;或者,使能位从1变为0,不进行事件计数。若页表地址发生变化,重置事件计数器;更新前一个页表地址和YsemiPBHA属性。
利用PBHA页表实现负载均衡调整时,可以首先声明数据结构和变量,包括:处理器内核coreID、距离因子(distanceFactor)、平均命令时间(avg Instruction Time)、结构信息(significant In struction)、周期计数(cycle Count)、平均周期时长(avg CycleTime);存储存储核心的向量;计算下一个时间窗Tn在平均指令周期用时最少的核心;以及,计算离彼此最近的核心。在初始化核心数据后,获取上一个时间窗的用时最显著的核心,根据上一个时间窗的数据获取使用过的核心(previous Core)、指令(previous SignificantInstruction)、循环计数(previous Cycle Count),基于该些数据计算上一个时间窗平均指令周期用时,计算公式可以包括:previous AvgCycle Time= previous Cycle Count/previous Significant Instruction。计算每个核心的平均指令周期用时,公式可以包括:cores[i].avgCycleTime=cores[i].avgInstruction Time * previous Avg Cycle Time。找到平均指令周期用时最少的核心,找到离彼此最近的核心,将任务分配给最近的核心。
利用PBHA页表实现对程序实际运行指令周期数和预测指令周期数的差值计算,可以包括:声明数据结构和变量,包括:处理器内核coreID、处理器频率(cpu Frequency)、已执行指令计数(executed Instruction Count)、预测的总周期计数(predicted TotalCycle Count)、实际总周期计数(actual Total Cycle Count)、执行的指令(executedInstructions)。根据存储核心的向量,计算每个核心的实际最消耗时间的指令和消耗周期数;根据指令和经验周期数计算实际周期数。对各处理器内核统计实际最消耗时间的指令、消耗周期数。计算每个核心的实际运行周期数和预测周期数的差值,可以输出实际运行周期数和预测周期数的差值。示例性的,初始化核心数据后,获取每个核心的性能计数器和已执行完指令计数器的值;其中,可以通过PMU获取性能计数器的值,通过AMU获取已执行完指令计数器的值。计算每个核心的实际总周期数,公式包括:cores[i].executedInstruction Count = amu Executed Instruction Counter。计算每个核心假设按最理想情况运行的预测总周期数,公式包括:cores[i].actual Total Cycle Count = pmu CycleCounter。根据每个ARM指令的经验周期数计算预测周期数,公式可以包括:cores[i].predicted Total Cycle Count = cores[i].executed Instruction Count。计算每个核心的实际最消耗时间的指令和消耗周期数,再计算每个核心的实际运行周期数和预测周期数的差值,并输出。
示例性的,可以根据指令周期数和功耗值输出雷达图,首先可以定义功耗数据、指令周期数数据。定义雷达图的标签,将数据转换为合适的形式,可以是将功耗数据首尾相连,形成闭合的雷达图;将指令周期数数据首尾相连,形成闭合的雷达图;将角度数据首尾相连,形成闭合的雷达图。
示例性的,对于程序段性能统计,可以预先定义分支概率和时间;定义Cache和DDR的概率、定义Cache和DDR的消耗时间;初始化分支统计字典;模拟程序块的执行,可以是根据概率随机选择分支,计算分支花费的时间、计算分支在Cache和DDR中的运行时间;随机选择一个DDR并计算分支在DDR中的运行时间,统计分支的运行周期数。
在本申请实施例中提供的功耗优化方法,通过对当前时间窗的***功耗和性能消耗进行统计和分析,实现自动感知大型***业务软件的运行特点调度,包括程序运行时需要预取的程序块,以及需要锁定的哪些cache line/way缓存。通过对下一时间窗的功耗数据进行预估,并与下一时间窗的实际功耗数据进行比对,来确定对单一时间窗的功耗策略调整,通过预划分负载均衡及时间窗的功耗及性能计算结果和预测结果间的差值/阈值判断是否需要调整预取/锁定/负载均衡策略;实现通过多个参变量的最优化算法实现***的功耗/性能/均衡最优化调度;避免应用软件程序员因缺失底层硬件机制知识导致***软件性能优化机会漏失。自动化提升已经设计成型的应用软件的预取及CacheLine锁定机制提升软件效率。并可以实现自定义PBHA的属性,CPU事件统计和Cache统计逻辑对自定义PBHA属性进行解析。相比现有技术中利用编译软件对预取程序块、cache缓存进行进行配置的方式,本方案通过利用预估功耗和实际功耗进行比对,并根据比对结果来调整负载均衡和缓存块/程序块组合,实现对***性能局部的动态调整,减少不可预料的预取机会错失,并提升应用层代码执行效率,丰富了应用层代码的功耗控制手段。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的存储管理方法的功耗优化装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个功耗优化装置实施例中的具体限定可以参见上文中对于功耗优化方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种功耗优化装置;功耗优化装置50包括:
当前时间窗功耗数据计算模块501,用于根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;
功耗预估模块502,用于基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据;
数据比对模块503,用于获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。
在其中一个实施例中,所述数据比对模块503可以用于在所述预估功耗数据与所述实际功耗数据之间的差值小于或者等于预设阈值时,选取目标时间窗对应的功耗优化策略配置为目标功耗优化策略;或者,在所述预估功耗数据与所述实际功耗数据之间的差值大于预设阈值时,对所述当前时间窗对应的功耗优化策略进行调节,以获取目标功耗优化策略。
在其中一个实施例中,所述当前时间窗功耗数据计算模块501可以用于根据所述负载均衡策略确定对应的分组策略;基于分组策略分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据。
在其中一个实施例中,所述当前时间窗功耗数据计算模块501可以包括:***功耗计算模块、性能消耗计算模块。其中,
所述***功耗计算模块可以用于利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗;其中,所述缓存块/程序块组合信息包括:锁定缓存信息、预取块信息。
所述性能消耗计算模块可以用于根据处理器内核的运行参数,确定当前时间窗对应的性能消耗。
在其中一个实施例中,所述***功耗计算模块可以用于基于预取程序块数据、程序块的大小、当前时间窗内程序块在缓存块中被执行的概率,确定当前时间窗对应的缓存块/程序块组合; 结合处理器内核的工作电压、工作频率、指令执行数据,确定各缓存块/程序块组合对应的执行功耗;基于各缓存块/程序块组合对应的执行功耗,确定当前时间窗对应的***功耗。
在其中一个实施例中,所述装置50还包括:计数器配置模块,用于在SoC 事件计数器中配置cache缓存计数器、预取地址计数器;利用已配置的SoC 事件计数器对处理器事件、缓存事件进行统计,并对事件统计结果进行解析,以获取所述指令执行数据。
在其中一个实施例中,所述功耗优化策略包括缓存锁定方案、预取方案和负载均衡方案中的任意一项或任意多项。
在一个实施例中,所述预取程序块根据程序块访问数据的统计结果确定;或者,根据已存储的程序块数据确定。
上述功耗优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子设备,该电子设备可以手机、平板电脑、笔记本电脑、服务器等终端设备,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种医疗影像的分析方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magneto resistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种功耗优化方法,其特征在于,所述方法包括:
根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;
基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据;
获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。
2.根据权利要求1所述的方法,其特征在于,所述根据功耗比对结果确定功耗优化策略,包括:
在所述预估功耗数据与所述实际功耗数据之间的差值小于或者等于预设阈值时,选取目标时间窗对应的功耗优化策略配置为目标功耗优化策略;或者,
在所述预估功耗数据与所述实际功耗数据之间的差值大于预设阈值时,对所述当前时间窗对应的功耗优化策略进行调节,以获取目标功耗优化策略。
3.根据权利要求1所述的方法,其特征在于,所述根据当前的负载均衡策略,获取当前时间窗的功耗数据,包括:
根据所述负载均衡策略确定对应的分组策略;
基于分组策略分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据。
4.根据权利要求3所述的方法,其特征在于,所述分别计算每个分组的***功耗和性能消耗,以获取所述当前时间窗的功耗数据,包括:
利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗;其中,所述缓存块/程序块组合信息包括:锁定缓存信息、预取块信息;
根据处理器内核的运行参数,确定当前时间窗对应的性能消耗。
5.根据权利要求4所述的方法,其特征在于,所述利用缓存块/程序块组合信息,计算当前时间窗对应的***功耗,包括:
基于预取程序块数据、程序块的大小、当前时间窗内程序块在缓存块中被执行的概率,确定当前时间窗对应的缓存块/程序块组合;
结合处理器内核的工作电压、工作频率、指令执行数据,确定各缓存块/程序块组合对应的执行功耗;
基于各缓存块/程序块组合对应的执行功耗,确定当前时间窗对应的***功耗。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在SoC 事件计数器中配置cache缓存计数器、预取地址计数器;
利用已配置的SoC 事件计数器对处理器事件、缓存事件进行统计,并对事件统计结果进行解析,以获取所述指令执行数据。
7.根据权利要求1所述的方法,其特征在于,所述功耗优化策略包括缓存锁定方案、预取方案和负载均衡方案中的任意一项或任意多项。
8.根据权利要求1所述的方法,其特征在于,所述预取程序块根据程序块访问数据的统计结果确定;或者,根据已存储的程序块数据确定。
9.一种功耗优化装置,其特征在于,所述装置包括:
当前时间窗功耗数据计算模块,用于根据待分析对象当前的负载均衡策略,获取当前时间窗的功耗数据;其中,所述功耗数据包括***功耗和性能消耗;
功耗预估模块,用于基于当前时间窗的功耗数据估计下一时间窗的预估功耗数据;
数据比对模块,用于获取下一时间窗的实际功耗数据,将所述下一时间窗的预估功耗数据与所述实际功耗数据进行比对,并根据功耗比对结果确定目标功耗优化策略。
10.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的功耗优化方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的功耗优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410036920.2A CN118152111A (zh) | 2024-01-10 | 2024-01-10 | 功耗优化方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410036920.2A CN118152111A (zh) | 2024-01-10 | 2024-01-10 | 功耗优化方法、装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152111A true CN118152111A (zh) | 2024-06-07 |
Family
ID=91295765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410036920.2A Pending CN118152111A (zh) | 2024-01-10 | 2024-01-10 | 功耗优化方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118152111A (zh) |
-
2024
- 2024-01-10 CN CN202410036920.2A patent/CN118152111A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106486B2 (en) | Techniques to manage virtual classes for statistical tests | |
US9031826B2 (en) | Method and apparatus for simulating operation in a data processing system | |
CN109446225B (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
US11500828B1 (en) | Method and device for constructing database model with ID-based data indexing-enabled data accessing | |
CN106557436A (zh) | 终端的内存压缩功能使能方法及装置 | |
CN114443680A (zh) | 数据库管理***、相关装置、方法和介质 | |
US10684834B2 (en) | Method and apparatus for detecting inter-instruction data dependency | |
Silfa et al. | E-BATCH: Energy-efficient and high-throughput RNN batching | |
Shen et al. | Statistical behavior guided block Allocation in hybrid cache-based edge computing for cyber-physical-social systems | |
WO2021114757A1 (zh) | 计算图的优化方法、装置、计算机设备和存储介质 | |
CN118152111A (zh) | 功耗优化方法、装置、电子设备、存储介质 | |
Brandalero et al. | Accelerating error-tolerant applications with approximate function reuse | |
Bayliss et al. | Methodology for designing statically scheduled application-specific SDRAM controllers using constrained local search | |
US11860784B1 (en) | Live profile-driven cache aging policies | |
CN118227446B (zh) | 高速缓存性能评估方法、装置、电子设备及可读存储介质 | |
CN118193051B (zh) | 程序效能优化方法与电子装置 | |
CN115905236B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
Bielby | Ultra low power cooperative branch prediction | |
Balasa et al. | Signal assignment to hierarchical memory organizations for embedded multidimensional signal processing systems | |
CN110197026B (zh) | 一种基于近阈值计算的处理器核优化方法及*** | |
Yu et al. | Hierarchical Read/Write Analysis for Pointer-Based OpenCL Programs on RRAM | |
Chakraborty et al. | Opportunity for compute partitioning in pursuit of energy-efficient systems | |
CN118312100A (zh) | 数据处理方法、装置、计算机设备、存储介质和程序产品 | |
CN118276664A (zh) | Cpu功率计算方法、装置、设备、存储介质和程序产品 | |
CN118394670A (zh) | 面向numa结构的内存优化方法、***、计算机设备、及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |