我正在尝试用一种启发式来估算一个进程或一个线程在两个时间点之间消耗了多少能量(例如,在焦耳中)。这是在PC(Linux / x86)上,而不是移动设备,因此统计数据将用于比较采用类似挂钟时间的计算的相对能效。
我们的想法是收集或采样硬件统计数据,如循环计数器,p / c状态或动态频率,总线访问等,并为测量之间的能量使用提出合理的公式。我问的是这是否可能,以及这个公式可能是什么样的。
浮现在脑海中的一些挑战: 1)正确地考虑到其他进程(或线程)的上下文切换。
2)正确计算CPU外部使用的能量。如果我们假设I / O可以忽略不计,这意味着主要是RAM。分配数量和/或访问模式如何影响能源使用? (也就是说,假设我有办法测量动态内存分配,例如,使用修改后的分配器。)
3)使用CPU时间作为估计仅限于粗粒度和错误计算,CPU能量使用仅,并假定固定时钟频率。它包括但不能很好地考虑等待RAM的时间。
答案 0 :(得分:14)
答案 1 :(得分:7)
这是正在进行的研究的主题。所以不要指望任何明确的答案。 您可能会感兴趣的一些出版物例如:
Chunling Hu,DanielA.Jiménez和Ulrich Kremer,高效程序功率行为表征,2007年高性能嵌入式架构国际会议论文集&编制者(HiPEAC-2007),第183--197页,2007年1月。(pdf)
Adam Lewis,Soumik Ghosh和N.-F. Tzeng,基于服务器系统工作负载的运行时能耗估算,USENIX 2008,Power Aware计算和系统研讨会(html pdf)
但您可以使用Google Scholar和Citeseer轻松找到更多内容。
答案 2 :(得分:4)
在Linux上,尝试使用PowerTOP实用程序。但是,它不是计算焦耳中的绝对值,而是关注各种系统组件之间的相对功率使用。
答案 3 :(得分:2)
英特尔Energy Efficient Software Guidelines提供了大量有用信息,包括指向自己Application Energy Toolkit.的链接,其中包括...
2)应用能源图形工具
应用能源图形工具 是一个可以的互动工具 测量电池功耗 随着时间的推移,应用程序和日志 并绘制结果数据。
应用程序开发人员可以使用 应用能源图形工具 帮助他们设计应用程序 在移动设备上节省电池电量 计算机系统。
答案 4 :(得分:1)
AMD uProf - 为每个OS进程提供每个进程的绝对能量(mJ)单位。
Intel Platform Power Estimation Tool (IPPET) - 每个过程具有绝对能量(mWh)单位的原型。
英特尔SocWatch(英特尔系统工作室的一部分) - 有许多低级指标,但每个进程没有绝对能量(mWh / mJ)单位。