0

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

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

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

4

2 回答 2

1

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

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

于 2009-10-20T18:01:01.617 回答
0

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

于 2009-10-21T02:38:46.467 回答