tools/power/rapl¶
tools/power/rapl
(或简称 rapl
)是 Mozilla 代码树中的一个命令行实用程序,它定期读取并打印所有可用的英特尔 RAPL 电力估算值。这些是机器范围内的估算值,因此如果您想估算单个程序的功耗,则在测量期间应最大程度地减少机器上的其他活动。
注意:如果您还没有阅读 功耗分析概述,建议您现在阅读。它可能使本文档的某些部分更容易理解。
调用¶
首先,执行 Firefox 的标准构建。
Mac¶
在 Mac 上,rapl
可以按如下方式运行。
$OBJDIR/dist/bin/rapl
Linux¶
在 Linux 上,rapl
可以以 root 权限运行,如下所示。
sudo $OBJDIR/dist/bin/rapl
或者,可以通过将 /proc/sys/kernel/perf_event_paranoid 的内容设置为 0 来在没有 root 权限的情况下运行它。请注意,如果您确实更改了此文件,则在下次重新启动机器时其内容可能会重置。
您必须运行 Linux 内核版本 3.14 或更高版本才能使 rapl
工作。否则,它将失败并显示一条错误消息,解释此要求。
Windows¶
不幸的是,rapl
不适用于 Windows,并且移植它将很困难,因为 Windows 没有允许轻松访问相关模型特定寄存器的 API。
输出¶
以下是 rapl
的默认调用产生的 10 秒输出。
total W = _pkg_ (cores + _gpu_ + other) + _ram_ W
#01 5.17 W = 1.78 ( 0.12 + 0.10 + 1.56) + 3.39 W
#02 9.43 W = 5.44 ( 1.44 + 1.20 + 2.80) + 3.98 W
#03 14.26 W = 10.21 ( 5.47 + 0.19 + 4.55) + 4.04 W
#04 10.02 W = 6.15 ( 2.62 + 0.43 + 3.10) + 3.86 W
#05 14.63 W = 10.43 ( 4.41 + 0.81 + 5.22) + 4.19 W
#06 11.16 W = 6.90 ( 1.91 + 1.68 + 3.31) + 4.26 W
#07 5.40 W = 1.97 ( 0.20 + 0.10 + 1.67) + 3.44 W
#08 5.17 W = 1.76 ( 0.07 + 0.08 + 1.60) + 3.41 W
#09 5.17 W = 1.76 ( 0.09 + 0.08 + 1.58) + 3.42 W
#10 8.13 W = 4.40 ( 1.55 + 0.11 + 2.74) + 3.73 W
需要注意的事项包括以下内容。
所有测量单位均为瓦特。
第一行指示每列的含义。
在
_pkg_
、_gpu_
和_ram_
中的下划线是为了使每列的名称都具有五个字符。总功率是封装功率和内存功率之和。
封装估算值分为三个部分:核心、GPU 和“其他”。“其他”计算为封装功率减去核心功率和 GPU 功率。
如果处理器不支持 GPU 或内存估算值,则会在相关列中打印“
n/a
”而不是数字,并且它将对总计贡献零。
采样完成后——无论是由于用户中断还是因为已获取了请求的样本数——将显示以下摘要数据
10 samples taken over a period of 10.000 seconds
Distribution of 'total' values:
mean = 8.85 W
std dev = 3.50 W
0th percentile = 5.17 W (min)
5th percentile = 5.17 W
25th percentile = 5.17 W
50th percentile = 8.13 W
75th percentile = 11.16 W
95th percentile = 14.63 W
100th percentile = 14.63 W (max)
如果获取的样本数为零或一个,则将省略分布数据。
选项¶
-i --sample-interval
。每个样本的长度(毫秒)。默认为 1000。如果将其设置为低于 50,则会发出警告,因为这可能会导致估算值不准确。-n --sample-count
。要获取的样本数。默认为 0,这意味着“无限”。
与 powermetrics
结合使用¶
在 Mac 上,您可以使用 mach power 命令以结合 powermetrics
运行 rapl
的方式,从而为 Firefox、Chrome 和 Safari 中的每一个提供最有用的摘要测量结果。