macos-cpupower
Get your CPU core and cluster power draw in Watts.
What It Does and How It Works
This project is designed to get the power draw of your Macs CPU cores and clusters. Each architecture supported by this project uses its own special technique to fetch this data.
On Apple Silicon
CPU core and cluster power draw metrics are measured by fetching two samples of the CPUs energy counter values (which are hidden away in IOReport
), and subtracting those values from each other in order to get our data, formatted in milliWatts (which is then converted to Watts).
On Intel
CPU package power draw metrics are pulled from the SMC. Due to the identical frequency behaviors of non-idle cores in Intel Processors prior to Icelake, individual core power draw is estimated by dividing the package power draw metric by the number of physical CPU cores.
Usage
Preparation
Download the precompiled binary from the releases, cd
into your Downloads folder, and run the following commands to fix the binary permissions:
chmod 755 ./macos-cpupower
xattr -cr ./macos-cpupower
Now you can simply run ./macos-cpupower
.
Examples
Here is an example running ./macos-cpupower
on an M1 Mac Mini during a Geekbench run:
Average Power Draw
------------------------
ECPU_CLUSTER.......... : 0.656 Watts ( 2.5 Watts: 26.24% )
PCPU_CLUSTER.......... : 10.616 Watts ( 28.4 Watts: 37.38% )
E-Core Power Draw
------------------------
ECPU_CORE_0........... : 0.135 Watts ( 0.6 Watts: 21.60% )
ECPU_CORE_1........... : 0.130 Watts ( 0.6 Watts: 20.80% )
ECPU_CORE_2........... : 0.124 Watts ( 0.6 Watts: 19.84% )
ECPU_CORE_3........... : 0.118 Watts ( 0.6 Watts: 18.88% )
P-Core Power Draw
------------------------
PCPU_CORE_0........... : 4.632 Watts ( 7.1 Watts: 65.24% )
PCPU_CORE_1........... : 1.520 Watts ( 7.1 Watts: 21.41% )
PCPU_CORE_2........... : 1.336 Watts ( 7.1 Watts: 18.82% )
PCPU_CORE_3........... : 0.916 Watts ( 7.1 Watts: 12.90% )
Here is an example running ./macos-cpupower
on an 13" MacBook Pro with an dual-core i7-4578U:
CPU Power Draw
------------------------
CPU_PACKAGE........... : 13.754 Watts ( 28 Watts: 49.12% )
CPU_INDIVIDUAL_CORE... : 6.877 Watts ( 14 Watts: 49.12% )
Options
The following command-line options are supported:
-h | --help show this message
-v | --version print version number
-r | --remove-cache remove the cache storing CPU data
-l | --loop-rate
loop output (0=infinite) [default: disabled]
-i | --sample-rate
set sampling rate (may affect accuracy) [default: 0.8s]
-s | --select-core
selected specific CPU core [default: disabled]
-c | --cores print power information for CPU cores (ARM64)
-C | --clusters print power information for CPU clusters (ARM64)
-e | --e-cluster print power information for ECPU types (ARM64)
-p | --p-cluster print power information for PCPU types (ARM64)
Bugs and Issues
Known Problems
- Support for M1 Pro/Max currently unofficial (if anyone has a machine with this silicon, let me know how it works for you)
If any other bugs or issues are identified, please let me know in the issues section.
❤️
Support If you would like to support me, you can donate to my Cash App.