You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测量传统CPU上运行的Python代码的能耗?

解决pyJoules无法采集CPU能耗的问题

你的问题出在未配置CPU能耗采集设备,pyJoules默认不会自动启用CPU能耗监测,当前输出里的nvidia_gpu_0:0说明工具只检测到GPU且未产生能耗(你的矩阵乘法实际用CPU执行)。以下是具体解决步骤:

1. 确认系统支持CPU能耗监测

Intel CPU在Linux下支持RAPL(Running Average Power Limit)机制,这是pyJoules采集CPU能耗的核心依赖。执行以下命令检查:

ls /sys/class/powercap/intel-rapl

若输出包含intel-rapl:0等目录,说明系统支持。AMD CPU暂不支持RAPL,需使用其他工具(如amd-smi)。

2. 修改代码添加CPU采集器

导入RAPLDevice并在measure_energy装饰器中指定采集设备,修改后的代码如下:

from pyJoules.energy_meter import measure_energy
from pyJoules.device.rapl_device import RAPLDevice
import numpy as np

x = np.random.randn(1000, 1000)
y = np.random.randn(1000, 1000)

# 明确指定采集CPU能耗的RAPL设备
@measure_energy(devices=[RAPLDevice()])
def foo():
    z = x @ y

foo()

3. 以root权限运行脚本

访问RAPL的系统节点需要root权限,执行命令:

sudo python your_script.py

运行后你会看到类似输出,其中包含CPU封装的能耗数据:

begin timestamp : 1713529999.123456; tag : foo; duration : 0.021; package_0 : 1.38

package_0对应CPU封装的能耗(单位:毫焦耳mJ),duration为操作耗时(单位:秒)。

额外注意事项

  • Windows系统不支持RAPL机制,pyJoules对Windows的CPU能耗采集支持有限,建议使用Linux环境测试。
  • 确保pyJoules为最新版本:pip install --upgrade pyJoules

内容的提问来源于stack exchange,提问作者sadpencil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:32:46