#energy #benchmarking #sustainability

rapl-energy

一个用于获取 RAPL 的 CPU 能耗的小型库

10 个版本

0.1.9 2024 年 7 月 24 日
0.1.8 2024 年 7 月 23 日
0.1.2 2024 年 6 月 26 日

#204性能分析

Download history 222/week @ 2024-06-17 153/week @ 2024-06-24 217/week @ 2024-07-01 376/week @ 2024-07-08 2/week @ 2024-07-15 257/week @ 2024-07-22 13/week @ 2024-07-29

667 每月下载量

Apache-2.0

16KB
369

Rapl Energy

从 RAPL 和其他相关工具获取 CPU 能耗的小型库。

该项目仍然是一个正在进行中的项目,主要用于内部使用。不过,如果对任何人有用,我也在这里分享它。

RAPL 权限

读取 RAPL 需要提升权限。

我建议添加一个新的 rapl 组。

sudo addgroup rapl
sudo usermod -aG rapl $(whoami)

然后添加必要的条目到 /etc/sysfs.conf。 (需要安装 sysfsutils。)

mode class/powercap/intel-rapl:0/energy_uj = 0440
owner class/powercap/intel-rapl:0/energy_uj = root:rapl
mode class/powercap/intel-rapl:0:0/energy_uj = 0440
owner class/powercap/intel-rapl:0:0/energy_uj = root:rapl

MSR 权限

读取特定模型的寄存器 (MSR) 需要提升权限。

sudo apt install msr-tools

你可能还需要运行 modprobe。

modprobe msr

然后可以按以下方式打印累积的能量值。 (其中 -a 打印所有 CPU,而 -u 将值以无符号十进制形式打印。)

sudo rdmsr 0xC001029A -au

看起来必须用 sudo 运行可执行文件。我仍在研究是否可以用组来完成。

sudo ./target/debug/examples/amd

MSR 组

创建一个 MSR 组可能很有用。遗憾的是,这并没有解决上述问题。

sudo groupadd msr
sudo chgrp msr /dev/cpu/*/msr
sudo chmod g+rw /dev/cpu/*/msr
sudo usermod -aG msr $(whoami)
newgrp msr

依赖关系

~0.8–2.7MB
~44K SLoC