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 中的每一个提供最有用的摘要测量结果。