计算机体系结构 33:性能、功耗与能量预算
计算机体系结构 33:性能、功耗与能量预算
核心问题
平均功率下降,为什么完成同一任务的能量仍可能上升?功率描述单位时间的能量变化,任务能量还要乘以持续时间。降频降压可能降低动态功率,却也会拉长执行时间;静态功耗、内存和其他系统部件在延长的时间里仍在消耗能量。
本篇只做两个题设点的能量预算。附件:33-energy.json。
范围与证据等级
证据等级为手算。当前没有采集 RAPL、Linux powercap、板级功率计、频率、温度或硬件计数器。题设中的 40 W、25 W、2 s 和 4 s 都是模型输入,不对应当前宿主的传感器读数。
能量关系为:
1 | |
动态 CMOS 功耗常用 αCV²f 解释电压、频率和活动因子的关系,但真实芯片还包含泄漏、供电转换、内存与散热等成本。没有测量就不能把公式写成某颗 CPU 的能耗结论。
核心案例:低功率点消耗更多任务能量
快点题设为 40 W、2 s,任务能量是 80 J。慢点功率降到 25 W,但运行 4 s,任务能量变为 100 J。功率下降 37.5%,任务能量反而增加 25%。
这个反例只证明“低功率不推出低能量”。若工作负载在降频后仍受 I/O 等待限制,时间不一定同比增长;若电压也显著下降,结果还可能反转。温控触发 throttling 时,静态设定点甚至不能代表实际运行轨迹。
模式:把任务边界纳入能量核算
1 | |
CPU DVFS、GPU power cap 和数据中心批任务都适合按任务积分。报告平均功率时必须同时给出测量区间和完成的工作量。
验收结果
python3 examples/computer-architecture/run_batch.py 29-33 退出 0,手算结果为 80 J 与 100 J。输出显式保留 measured_energy=false 和 frequency_temperature_counters=false。本篇没有真机能耗、频率或温度结论。
练习
若慢点功率仍为 25 W,要使任务能量不超过 80 J,执行时间最多是多少?
设计一次真机实验时,为什么只读任务结束瞬间的功率值不够?
模式速查
| 已知量 | 能回答 | 不能回答 |
|---|---|---|
| 平均功率与时间 | 任务能量 | 功耗来自哪个部件 |
| 频率设定 | 控制目标 | 实际频率轨迹 |
| 手算题设 | 关系反例 | 当前机器能耗 |






