CN104461849B - 一种移动处理器上cpu与gpu软件功耗测量方法 - Google Patents
一种移动处理器上cpu与gpu软件功耗测量方法 Download PDFInfo
- Publication number
- CN104461849B CN104461849B CN201410741891.6A CN201410741891A CN104461849B CN 104461849 B CN104461849 B CN 104461849B CN 201410741891 A CN201410741891 A CN 201410741891A CN 104461849 B CN104461849 B CN 104461849B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- cpu
- measured
- program
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种移动处理器上CPU与GPU软件功耗测量方法,该方法包括建立CPU功耗模型、修改待测程序并重新编译、待测平台设置、运行待测程序和数据处理;本发明提出的移动处理器上CPU和GPU的功耗测量方法有效地解决了目前移动智能终端上软件开发人员难以同时获取程序执行时移动CPU、GPU上的功耗问题。无需任何额外的测量工具,并且无需拆解待测平台,可以直接在移动智能终端上精确的获取程序在移动CPU和GPU上执行的功耗,能够帮助应用程序的开发人员设计低功耗的智能终端应用程序和游戏。
Description
技术领域
本发明涉及功功耗测量领域,具体涉及一种移动处理器上CPU与GPU软件功耗测量方法。
背景技术
移动计算技术日新月异,以智能手机、平板电脑为代表的手持终端也得到了广泛普及和应用。随着移动计算技术的发展,特别是移动处理器技术的巨大进步,这些手持终端的应用范围从传统的通信、拍照功能发展到今天的智能手机和平板电脑普遍具有的高速上网、3D游戏、高清视频等功能。
手持智能终端搭载的移动处理器通常包含CPU和GPU两部分,CPU承担通用计算功能,GPU承担2D、3D图形绘制、运算、显示等功能。目前在智能手机、平板电脑等移动终端上运行的应用程序、游戏,播放高清视频对移动处理器的性能要求越来越高,同时带来了更大的功耗开销。由于智能手机、平板电脑等手持智能终端通常由锂电池驱动,因此应用程序、游戏和视频导致的功耗开销对于用户体验起着十分关键的作用。为了更好地开发低功耗的智能终端应用程序,开发人员需要获取程序执行时的功耗信息。然而目前已有的性能剖析软件仅能较为获取应用程序的执行时间,对于程序执行时移动CPU和GPU上的功耗开销缺乏有效、精确的测定方法。人们期待利用功耗测量方法,灵活方便的获得应用程序的执行时间、功耗,进而获取能耗信息,从而帮助开发人员降低程序的执行功耗,提升用户使用体验。
另外,由于大多数移动智能终端中CPU、GPU等部件集成在同一块SoC芯片中,所以无法直接从硬件上进行方便的功率与能耗测量。
发明内容
发明目的:为了解决现有技术的不足,通过外部程序对移动设备的CPU和GPU直接进行功耗测量,克服了现有技术缺乏有效、精准测量方法的问题。
技术方案:一种移动处理器上CPU与GPU软件功耗测量方法,其特征在于,该方法包括建立CPU功耗模型、修改待测程序并重新编译、待测平台设置、运行待测程序和数据处理;该方法包括以下步骤:
1)建立基于使用率的CPU功耗模型:
P=∑Ui×βi
式中:
P为CPU的动态功率;
Ui为第i个CPU核心的使用率;
βi为第i个CPU核心的功耗系数;
运行计算密集型测试集,在运行过程中采样从待测平台的操作***得到的电池瞬时电流电压值和CPU的使用频率并记录,通过线性规约方式处理所得数据,得到CPU功耗模型中的βi;
2)依据待测平台的各个程序模块的功能和功耗测试需求,将其划分一个以上的待测代码段;在各个待测代码段的首尾和整个程序代码的首尾加入相关性能剖析代码gtick(),并重新编译待测程序;
3)运行步骤2)中重新编译的待测程序:该重新编译的待测程序在运行过程中记录执行到各个代码段的时刻和执行完各个代码段的时刻;同时,持续采样从待测平台的操作***得到的电池瞬时电流电压值和CPU的使用率并记录;该重新编译的待测程序在开始执行前和结束执行前休眠一段时间,在休眠期间仍然持续采样电池瞬时电流电压值和CPU使用率;休眠是为了使CPU/GPU处于Idle状态一段时间,以便测量背景功耗。
4)处理步骤3)中记录的数据,具体包括以下步骤:
4.1)将各个采样点的瞬时电流值与瞬时电压值相乘,得到各个采样时刻的瞬时功耗值;取瞬时功耗最小值为背景功耗,所述背景功耗包括各个采样时刻CPU与GPU处于Idle状态的功耗;
4.2)将各个采样点的瞬时功耗值减去背景功耗,得到各个采样时刻CPU与GPU的实际总功耗;
4.3)使用步骤1)中的CPU功耗模型与步骤3)中各采样时刻的CPU使用率信息,将步骤4.2)得到的CPU与GPU实际总功耗减去步骤1)中CPU功耗模型公式计算出的功耗,得到各采样时刻的CPU功耗,进而可以计算出各采样时刻的GPU功耗;
4.4)通过步骤3)重新编译的待测程序在运行过程中记录执行到各个代码段的时刻和执行完各个代码段的时刻,计算出各个代码段上耗费的执行时间;利用步骤4.1)计算出的各个采样时刻的瞬时功耗值,计算出在各个代码段上耗费的平均功率与总能耗。
进一步的,步骤4)中,对待测程序进行多次测量取平均值。
有益效果:
本发明提出的移动处理器上CPU和GPU的功耗测量方法有效地解决了目前移动智能终端上软件开发人员难以同时获取程序执行时移动CPU、GPU上的功耗问题。
本发明提出了一种在移动智能终端上,如智能手机、平板电脑,进行移动CPU和GPU的程序执行时间、功耗的测量方法。
利用本发明的技术方案,无需任何额外的测量工具,并且无需拆解待测平台,可以直接在移动智能终端上精确的获取程序在移动CPU和GPU上执行的功耗,能够帮助应用程序的开发人员设计低功耗的智能终端应用程序和游戏。
本发明可以对需要设计低功耗的应用程序和硬件的开发人员带来明显效益。
附图说明
图1为代码流程示意图
图2为本发明的流程图
图3为10次测试数据处理后的执行时间、功耗和能耗的输出示意图
图4为20次测试数据处理后的执行时间、功耗和能耗的输出示意图
具体实施方式
下面结合附图对本发明做更进一步的解释。
一种移动处理器上CPU与GPU软件功耗测量方法,其特征在于,该方法包括建立CPU功耗模型、修改待测程序并重新编译、待测平台设置、运行待测程序和数据处理;该方法包括以下步骤:
1)建立基于使用率的CPU功耗模型:
P=∑Ui×βi
式中:
P为CPU的动态功率;
Ui为第i个CPU核心的使用率;
βi为第i个CPU核心的功耗系数;
运行计算密集型测试集,在运行过程中采样从待测平台的操作***得到的电池瞬时电流电压值和CPU的使用频率并记录,通过线性规约方式处理所得数据,得到CPU功耗模型中的βi;
2)依据待测平台的各个程序模块的功能和功耗测试需求,将其划分一个以上的待测代码段;在各个待测代码段的首尾和整个程序代码的首尾加入相关性能剖析代码gtick(),并重新编译待测程序;
3)运行步骤2)中重新编译的待测程序:该重新编译的待测程序在运行过程中记录执行到各个代码段的时刻和执行完各个代码段的时刻;同时,持续采样从待测平台的操作***得到的电池瞬时电流电压值和CPU的使用率并记录;该重新编译的待测程序在开始执行前和结束执行前会休眠一段时间,在休眠期间仍然持续采样电池瞬时电流电压值和CPU使用率;
4)处理步骤3)中记录的数据,具体包括以下步骤:
4.1)将各个采样点的瞬时电流值与瞬时电压值相乘,得到各个采样时刻的瞬时功耗值;取瞬时功耗最小值为背景功耗,得到各个采样时刻CPU与GPU处于Idle状态的功耗;
4.2)将各个采样点的瞬时功耗值减去背景功耗,得到各个采样时刻CPU与GPU的实际总功耗;
4.3)使用步骤1)中的CPU功耗模型与步骤3)中各采样时刻的CPU使用率信息,推算出各采样时刻的CPU功耗,进而可以计算出各采样时刻的GPU功耗;
4.4)通过步骤3)重新编译的待测程序在运行过程中记录执行到各个代码段的时刻和执行完各个代码段的时刻,计算出各个代码段上耗费的执行时间;利用步骤4.1)计算出的各个采样时刻的瞬时功耗值,计算出在各个代码段上耗费的平均功率与总能耗,对待测程序进行多次测量取平均值。
如图1所示,为对待测程序进行代码段划分并在各个代码段的首尾和整个程序的首尾加入相关性能剖析代码的示意图。此处以一种基于OpenCL的异构计算测试程序为例来说明本发明方案,但本方案并不局限于OpenCL程序。该测试程序包含了在CPU和GPU上执行的计算任务,并依据程序的功能和性能剖析需求进行了代码段划分。测试程序可以划分为4个代码段,其中A、D是在CPU上执行,B、C是在GPU上执行。本发明提出的程序执行时间、功耗测量均是基于代码段划分进行,从而最终获得各个代码段的执行时间和功耗性能结果。
如图2所示,为测量运行在移动处理器CPU和GPU上程序的执行时间、功耗和能耗方法的流程图。该流程图略去了CPU功耗建模的过程。从图中可知,所述测量方法由修改待测程序并重新编译、待测平台设置、运行待测程序和数据处理几个部分组成。首先,需要对待测程序进行修改并重新编译。具体来说,在代码段划分得到的各个功能模块代码段的开始、结束处加上gtick函数;在待测程序的main函数首尾处分别加上gticki和gticke函数;如果程序运行的时间很长,需要在适当的地方加上gtickr和gtickp函数,以使得程序每运行一段时间就更新测量数据日志。gtick函数用于记录当前的时刻,并在后面的环节用于记录各个功能模块的执行时间。gticki是初始化函数,同时负责启动Linux内核编程接口提供的电流、电压采样sampler线程,gticke是终止函数。此外,为了功耗测量本身带来过多额外的执行时间以及功耗开销,本发明测量的数据均记录在内存中,并在测量结束时或运行gtickp函数时写入外存。同时,程序会在初始化时完成内存分配,不会在测量过程中出现realloc,以避免其带来的内存分配功耗对测量造成的干扰。为了测量时上述内存空间不够存放中间数据的情况,设计引入gtickr和gtickp两个函数用于实现电流、电压采样sampler线程和待测程序的暂停和重启,并在在暂停的间隙将数据日志写入外存。其次,需要对待测平台的进行适当的设置,如固定移动处理器CPU主频、核心数以及显示屏幕亮度,从而消除影响功耗测量的不确定因素。通过修改Android操作***的初始化脚本可以实现上述目的。接下来,在待测平台上运行测试程序,同时得到移动处理器CPU和GPU的执行时间和功耗性能结果。如前所述,gtick函数用于记录程序执行的当前时刻,gticki函数用于启动电流、电压采样sampler线程。此外,为了精准地测量移动处理器的功耗,对于不使用显示屏的待测程序,将会关闭待测平台的显示屏,然后这有可能导致待测平台进入sleep mode。针对此问题,运行Launcher程序可以保证测试程序一直不***作***kill,同时保证待测平台显示屏关闭时,如果待测程序还未运行结束,则阻止待测平台进入sleep mode。为了得到更为精确的执行时间和功耗测量数据,bench函数用于重复调用待测程序,最终的数据可以取平均值作为最终结果。最后,对gtick函数记录的执行时刻和电流、电压的采样数据进行处理,绘制出执行时间和功耗的性能表格,并计算出能耗结果。在待测程序运行结束后,需要将记录下来的数据日志传送回PC进行统计,fig函数用于执行时间、功耗以及能耗的计算、统计和表格绘制。具体数据处理方法如下:
1)将各个采样点的瞬时电流值与瞬时电压值相乘可以得到各个采样时刻的瞬时功耗值。
2)取各个采样时刻的瞬时功耗的最小值为背景功耗,即移动平台CPU、GPU处于Idle状态的功耗。将各个采样时刻的瞬时功耗值减去背景功耗,即可得到各个采样时刻CPU与GPU的总功耗。
3)借助CPU功耗模型与各采样时刻的CPU使用率信息,可以推算出各采样时刻的CPU功耗,利用总功耗值减去CPU功耗值,进而计算出各采样时刻的GPU功耗。
4)通过步骤3所记录的执行到和执行完各个代码段的时刻,可以计算出各个代码段上耗费的执行时间。在利用上面计算出的各个采样时刻的瞬时功耗值,可以计算出在各个代码段上耗费的平均功率与总能耗。
如图3、图4所示,分别为数据处理之后得到的移动处理器CPU、GPU上的测试程序执行时间、功耗和能耗的输出示意图。虚线上方的数据为测试程序的整体性能,下方为节选部分重点功能模块(代码段)的性能剖析。测试程序的整体性能包括了执行时间、测量功耗和基准功耗、能耗信息,部分模块的性能剖析包括了各部分的执行时间、功耗、能耗和所占比例值。图4所示的移动处理器GPU测量结果还包括了GPU初始化(init)、CPU和GPU的数据传输(mems)等操作性能结果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种移动处理器上CPU与GPU软件功耗测量方法,其特征在于,该方法包括建立CPU功耗模型、修改待测程序并重新编译、待测平台设置、运行待测程序和数据处理;该方法包括以下步骤:
1)建立基于使用率的CPU功耗模型:
P=∑Ui×βi
式中:
P为CPU的动态功率;
Ui为第i个CPU核心的使用率;
βi为第i个CPU核心的功耗系数;
运行计算密集型测试集,在运行过程中采样从待测平台的操作***得到的电池瞬时电流电压值和CPU的使用频率并记录,通过线性规约方式处理所得数据,得到CPU功耗模型中的βi;
2)依据待测平台的各个程序模块的功能和功耗测试需求,将其划分一个以上的待测代码段;在各个待测代码段的首尾和整个程序代码的首尾加入相关性能剖析代码gtick(),并重新编译待测程序;
3)运行步骤2)中重新编译的待测程序:该重新编译的待测程序在运行过程中记录执行到各个代码段的时刻和执行完各个代码段的时刻;同时,持续采样从待测平台的操作***得到的电池瞬时电流电压值和CPU的使用率并记录;该重新编译的待测程序在开始执行前和结束执行前休眠一段时间,在休眠期间仍然持续采样电池瞬时电流电压值和CPU使用率;
4)处理步骤3)中记录的数据,具体包括以下步骤:
4.1)将各个采样点的瞬时电流值与瞬时电压值相乘,得到各个采样时刻的瞬时功耗值;取瞬时功耗最小值为背景功耗,所述背景功耗包括各个采样时刻CPU与GPU处于Idle状态的功耗;
4.2)将各个采样点的瞬时功耗值减去背景功耗,得到各个采样时刻CPU与GPU的实际总功耗;
4.3)使用步骤1)中的CPU功耗模型与步骤3)中各采样时刻的CPU使用率信息,将步骤4.2)得到的CPU与GPU实际总功耗减去步骤1)中CPU功耗模型公式计算出的功耗,得到各采样时刻的CPU功耗,进而可以计算出各采样时刻的GPU功耗;
4.4)通过步骤3)重新编译的待测程序在运行过程中记录执行到各个代码段的时刻和执行完各个代码段的时刻,计算出各个代码段上耗费的执行时间;利用步骤4.1)计算出的各个采样时刻的瞬时功耗值,计算出在各个代码段上耗费的平均功率与总能耗。
2.如权利要求1所述的一种移动处理器上CPU与GPU软件功耗测量方法,其特征在于,步骤4)中,对待测程序进行多次测量取平均值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410741891.6A CN104461849B (zh) | 2014-12-08 | 2014-12-08 | 一种移动处理器上cpu与gpu软件功耗测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410741891.6A CN104461849B (zh) | 2014-12-08 | 2014-12-08 | 一种移动处理器上cpu与gpu软件功耗测量方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461849A CN104461849A (zh) | 2015-03-25 |
CN104461849B true CN104461849B (zh) | 2017-06-06 |
Family
ID=52907942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410741891.6A Active CN104461849B (zh) | 2014-12-08 | 2014-12-08 | 一种移动处理器上cpu与gpu软件功耗测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461849B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101927233B1 (ko) * | 2015-03-16 | 2018-12-12 | 한국전자통신연구원 | 이기종 멀티-코어 시스템의 gpu 전력 측정 방법 |
CN104778113B (zh) * | 2015-04-10 | 2017-11-14 | 四川大学 | 一种矫正功率传感器数据的方法 |
CN105446877A (zh) * | 2015-11-04 | 2016-03-30 | 上海聚力传媒技术有限公司 | 一种测试移动应用程序功耗的方法和装置 |
CN106686179B (zh) * | 2016-12-27 | 2019-06-21 | 东南大学 | 一种基于测试自动化的手机功耗测试***及方法 |
CN109684144B (zh) * | 2018-12-26 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种gpu-box***测试的方法及装置 |
CN111538636B (zh) * | 2020-04-24 | 2021-11-19 | 深圳华锐金融技术股份有限公司 | 计算机设备确定方法、装置和存储介质 |
CN111782454B (zh) * | 2020-08-05 | 2023-08-18 | 中国人民解放军国防科技大学 | 基于指令epi的细粒度gpdsp功耗测试方法、***及介质 |
CN112150631B (zh) * | 2020-09-23 | 2021-09-21 | 浙江大学 | 一种基于神经网络的实时能耗优化绘制方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279446A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种利用cpu+gpu+mic异构混合计算的多平台*** |
CN104106053A (zh) * | 2012-02-08 | 2014-10-15 | 英特尔公司 | 使用功率的动态cpu gpu 负载平衡 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304570B2 (en) * | 2011-12-15 | 2016-04-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements |
-
2014
- 2014-12-08 CN CN201410741891.6A patent/CN104461849B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104106053A (zh) * | 2012-02-08 | 2014-10-15 | 英特尔公司 | 使用功率的动态cpu gpu 负载平衡 |
CN103279446A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种利用cpu+gpu+mic异构混合计算的多平台*** |
Non-Patent Citations (2)
Title |
---|
An Integrated GPU Power and Performance Model;Sunpyo Hong等;《ACM SIGARCH Computer Architecture News 》;20100623;第38卷(第3期);第280-289页 * |
关于CPU+GPU异构计算的研究与分析;许桢;《科技信息》;20101231(第17期);第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104461849A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461849B (zh) | 一种移动处理器上cpu与gpu软件功耗测量方法 | |
Shye et al. | Characterizing and modeling user activity on smartphones: summary | |
CN104424092B (zh) | 页面加载时长测试方法及装置 | |
Kim et al. | Enhancing online power estimation accuracy for smartphones | |
Bunse et al. | On the energy consumption of design patterns | |
Bornholt et al. | The model is not enough: Understanding energy consumption in mobile devices | |
CN103376414B (zh) | 电池电量监控的方法及装置 | |
CN103425577B (zh) | 一种测试方法和装置 | |
WO2014169596A1 (zh) | 处理器的核处理方法、装置及终端 | |
WO2019119326A1 (zh) | 充电方法、装置、终端设备及计算机可读存储介质 | |
Duan et al. | Energy analysis and prediction for applications on smartphones | |
CN103324777A (zh) | 一种基于时间的Android应用程序能耗建模方法 | |
WO2017113877A1 (zh) | 一种基于物理实测的移动端app加载能耗自动测量方法 | |
CN107168859A (zh) | 用于安卓设备的能耗分析方法 | |
Dzhagaryan et al. | An environment for automated measurement of energy consumed by mobile and embedded computing devices | |
Zhang | Power, Performance Modeling and Optimization for Mobile System and Applications. | |
Park et al. | PIOS: A platform-independent offloading system for a mobile web environment | |
Kamiyama et al. | A model-based energy profiler using online logging for Android applications | |
CN103428320A (zh) | 基于模型拟合的智能手机功耗评估方法 | |
Milosevic et al. | An environment for automated power measurements on mobile computing platforms | |
CN208287003U (zh) | 八段锦训练运动轨迹采集装置 | |
CN107506275A (zh) | 一种基于arm指令虚拟化的软件防护能耗评估方法 | |
Chen et al. | A Real-Time Power Analysis Platform for Power-Aware Embedded System Development. | |
CN105808806B (zh) | 集成电路的时序分析方法及集成电路的时序分析装置 | |
CN108235760A (zh) | 智能终端的功耗稳定方法、其装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190423 Address after: 215123 Linquan Street 399, Dushu Lake Higher Education District, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Institute, Southeast University Address before: No. 2, four archway in Xuanwu District, Nanjing, Jiangsu Patentee before: Southeast University |