While analyzing system power on an M4 Max under GPU-heavy compute workloads, I noticed that the the GPU power reported by powermetrics does not come anywhere close to total system DC power reported by the SMC counter PDTR (as used by utilities like mactop).
For example, in a heavy GPU workload, powermetrics would report a 65W idle-load delta on the GPU, but at the same time system DC power would rise by 179W, leaving 114W or nearly 2/3 of total system DC power on a Mac Studio M4 Max unexplained.
From measurements, the difference appears to correlate with the amount of on-chip data movement (for example, varying bytes-per-FLOP in the workload changes the observed gap). Using SMC and IOReport, I was able to reverse engineer an energy model for the GPU that explains almost all of the energy flow with less than 2% error on the workload I studied.
The result is a simple two-term energy roofline model:
P_GPU (GPU_combined term in the plot) ≈ a * bytes + b * FLOPs
with:
~5 pJ/byte for SRAM movement
~2.7 pJ/FLOP for compute.
Has anyone observed similar behavior, or is there guidance on how GPU power reported by IOReport/powermetrics should be interpreted relative to total system power?
In particular, I’m interested in whether certain classes of GPU activity may not be attributed to the GPU component in IOReport.
Full details with the methodology and results are available here: https://youtu.be/HKxIGgyeISM
Topic:
Developer Tools & Services
SubTopic:
Developer Forums
Tags:
ML Compute
Metal Performance Shaders
Battery Life
0
0
21