【问题标题】:How does Intel's RAPL estimate the power consumptionIntel的RAPL如何估算功耗
【发布时间】:2021-08-27 17:03:05
【问题描述】:

首先,我不知道我应该在这里还是在 Electronics StackExchange 中提问,所以如果您认为我应该在那里提问,请告诉我。

我有兴趣测量英特尔 CPU 中每个 CPU 内核的能耗。我已阅读英特尔的英特尔 64 位开发人员手册,据我了解,RAPL 将为以下方面提供能量估算:

  • 整个包
  • 核心
  • 未指定的 Uncore 设备(仅在客户端处理器中)
  • DRAM(仅在服务器处理器中)

这表明我可以追求的最佳值是 CPU 中所有内核的总能耗值。不过我也知道“RAPL不是模拟功率计,而是使用软件功率模型”,https://01.org/blogs/2014/running-average-power-limit-%E2%80%93-rapl.

我想知道的是,这个模型的工作方式是已知的还是公开的?而且,是否可以使用 RAPL 或其他接口提供的指标来估算单个内核的功耗?我知道,如果英特尔不通过 RAPL 提供此信息,则可能无法获得,但我想至少找到一个可以证实这一点的来源。

感谢您的帮助!

【问题讨论】:

  • 如果“其他接口”包括构建您自己的具有 CPU 电源线电流测量能力的主板,那么是的,可以检查功耗。或者在 CPU 稳压器的 12V 电源上使用电流表进行适当的近似,因为现代主板通常使用与电源分开的电缆来供电;效率 > 90% 的假设可能足够接近,不会成为大的错误来源。如果有人以前这样做并发表了一些关于它的东西,我不会感到惊讶。
  • 哇,我不知道功率测量是使用微控制器完成的,该微控制器对一些物理量(例如:温度)和一些架构事件进行采样,然后将这些事件馈送到软件模型中。如果有任何关于它的内容,那就是专利(尝试在 Google 专利中搜索“a combination of Intel”、“PMA”、“PCU”、“RAPL”)。关于每个核心的威力,我认为不可能。核心通常是 RAPL 域 P0,所有这些。我猜你想要实时测量,而不是仅仅停止一个核心以外的所有核心(由于 TB 会使测量产生偏差)。

标签: cpu intel cpu-architecture energy msr


【解决方案1】:

这里有一个post,您可以使用这些工具来获取不同操作系统的能量测量结果。如果您使用的是 Linux,请考虑使用 Perf,因为它使用 RAPL 接口来获取能量测量值。据我所知,Perf 不提供每个内核的能源消耗,而是作为一个整体(包)提供,您可以使用以下命令获取可执行文件(任何类型:Python、Java、SHELL、C 等)的能源测量命令:

sudo perf stat -e power/energy-cores/ ./executable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    相关资源
    最近更新 更多