Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

PCM "Proc Energy" Metric

Sadiqbatcha__Sheriff
1,243 Views

Hello all,

 

First of all, I would like to thank the folks who are responsible for developing and maintaining Intel PCM. You guys are amazing! We owe you a great deal.

 

I have a question regarding the metric named "Proc Energy (Joules)".

In the decoder that Mr. Willhalm shared (https://software.intel.com/en-us/blogs/2014/07/18/intel-pcm-column-names-decoder-ring) the description of the metric is "The energy consumed by the processor in Joules. Divide by the time to get the power consumption in watt".

 

Does anyone happen to know if this metric gives us the energy consumption of the entire chip. For instance, if I'm using a chip that has an integrated GPU in it, does this only cover the CPU side or the whole chip?

To me it seems like it's only for the CPU side. If so, would it be the entire CPU side (i.e. including shared LLC, memory controller etc) or does it only cover the cores? Please advise.

 

A quick background on why I'm asking this question.

I'm a PhD candidate at an EDA lab at UC Riverside. I have been using Intel PCM in sort of an unconventional way for the past couple of years. Since PCM gives us a comprehensive view of the chip's utilization, I was able to train a RNN based thermal model that uses the PCM metrics as inputs to estimate the temperature of the chip while it is under load (https://ieeexplore.ieee.org/document/8714918).

This was quite successful so we want to explore power modeling as well. We have an IR thermography system that can record heatmaps of the chip while it is under load. In order to convert the heatmaps to powermaps, we need time-series power information. The "Proc Energy" metric from PCM seems to be very promising as dividing this by the period of our sampling frequency gives us power.

 

If anyone can lead me in the right direction, it would be very much appreciated.

Thank you so much in advance for your help.

 

Sincerely,

Sheriff Sadiqbatcha

 

0 Kudos
1 Solution
Roman_D_Intel
Employee
1,243 Views

Hi,

PCM reads this data from MSR_PKG_ENERGY_STATUS (0x611). It is for the whole package domain. There are other MSRs for PP0 and PP1 domain. PP0 is processor cores only. This is documented in sections Package RAPL domain and PP0/PP1 RAPL domains in the Intel® 64 and IA-32 Architectures Software Developer’s Manual.
 

Best regards,

Roman

View solution in original post

0 Kudos
3 Replies
Roman_D_Intel
Employee
1,244 Views

Hi,

PCM reads this data from MSR_PKG_ENERGY_STATUS (0x611). It is for the whole package domain. There are other MSRs for PP0 and PP1 domain. PP0 is processor cores only. This is documented in sections Package RAPL domain and PP0/PP1 RAPL domains in the Intel® 64 and IA-32 Architectures Software Developer’s Manual.
 

Best regards,

Roman

0 Kudos
Sadiqbatcha__Sheriff
1,243 Views

Hi Mr. Dementiev,

 

Thanks a lot for this info. This is what I needed. I'm currently reading through the Intel® 64 and IA-32 Architectures Software Developer’s Manual.

Do you happen to know if the MSRs on the integrated GPU domain can be read using rdmsr? Please advise.

Thank you again for your help.

 

Best regards,

Sheriff Sadiqbatcha

0 Kudos
Roman_D_Intel
Employee
1,243 Views

same as MSR_PKG_ENERGY_STATUS, PP1 (uncore graphic device) MSR  can be read using rdmsr instruction in the kernel/using a kernel msr driver (like PCM does).

Roman

0 Kudos
Reply