【问题标题】:Estimate Power Consumption Based on Running Time Analysis / Code Size根据运行时间分析/代码大小估算功耗
【发布时间】:2009-10-20 17:49:55
【问题描述】:

我已经在我的 PC 上开发并测试了一个 C 程序,现在我想估计一下程序执行一次运行所需的功耗。我分析了应用程序的运行时间和应用程序中的个别函数调用,我知道汇编行和原始 C 行中的代码大小。

如何根据性能分析和/代码大小估算功耗?我想它会随着使用 CPU 进行计算或进行内存访问的行数而变化,但我希望得到更准确的答案。

另外,我如何区分我的 PC 上的功耗与微芯片设备上的功耗之间的差异?

【问题讨论】:

  • @Mike - 除了发布者和版主之外,我不相信任何人都可以删除 cmets。另外,为什么非男性比男性更容易被这个笑​​话冒犯(顺便说一句,这也是偶尔会复活的“有趣”问题之一的答案)?
  • 他个人资料中的消息是对 SO 上“什么是最好的编程报价”问题的回复之一。
  • 这些 cmets 似乎与上下文无关,与主题无关?有人删除了你上面的评论吗?

标签: c performance energy


【解决方案1】:

祝你好运。您想要做的事情在台式电脑上几乎是不可能的。您可能会做的最好的事情是在空闲时测量从墙上消耗的电量,并且在运行程序时,同时运行尽可能少的其他程序。平均运行 100 次左右的结果,您应该得到一个准确度为百分之几的值(适用标准统计免责声明)。

在 Microchip 设备上,计算功耗应该更容易,因为它们会发布各种模式的(平均)功耗值,并且时序是确定性的。不幸的是,像这样的处理器和您的桌面处理器之间存在如此多的差异(字长、流水线、多问题、多进程等),实际上没有任何有效的方法可以比较两者。

【讨论】:

  • 我知道其他执行相同任务的人已经根据执行的汇编代码行数找到了功耗的近似公式。我不是在寻找任何精确的东西,只是功率 c 的一般近似值。
【解决方案2】:

英特尔网站上有一篇论文,提供了average energy per instruction 用于各种处理器。例如,它们为 Core Duo 的每条指令提供 11 nJ。我猜这对您有多大用处取决于您的代码与 SpecInt 基准测试的相似程度。

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多