PCM on Atom

PCM on Atom

Hello,
I have tried using PCM on linux, but when run it only shows the following: (sudo ./pcm.x 5)

Intel Performance Counter Monitor V2.1 (2012-05-31 14:40:57 +0200 ID=2d18fd5)

Copyright (c) 2009-2012 Intel Corporation

Num (logical) cores: 2
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 2
Width of generic (programmable) counters: 40 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 40 bits
Nominal core frequency: 0 Hz
Number of PCM instances: 10

Detected processor(s) with Intel microarchitecture codename Atom
And it ends, without displaying counter data.
Can you help me? please. What should I do? or what is the error?

Thank you,
regards.

12 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Thomas Willhalm (Intel)

Nominal core frequency: 0 Hz

looks suspicious. I don't know why ths would fail, but maybe you can hardcode this in your program for testing purposes. It is computed in line 688 in cpucounterstest.cpp

And try to delete all the semaphores from PCM instances that were not running successfully.

Thank you for your response,

I've looked in line 688 in cpucounters.cpp, the computation performed ((freq >> 8) & 255) always returns 0 (ie, the second byte is zero). Whereby the frequency is 0 Hz. What should I do?

Portrait de Thomas Willhalm (Intel)
Best Reply

My suggestion was that you directlyhard-code the frequency of your processor as a constant value. This way, you could verify if this is the only issue that you have.

For reproducing the issue internally, can you tell us what type of Atom you are using?

I'm sorry, I had not understood.

I changed the frencuencia to: 1660000000 in Hz, but the result was:

*****************************************************************************************************Intel Performance Counter Monitor V2.1 (2012-05-31 14:40:57 +0200 ID=2d18fd5)

Copyright (c) 2009-2012 Intel Corporation

Num (logical) cores: 2
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 2
Width of generic (programmable) counters: 40 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 40 bits
Nominal core frequency: 1667000 Hz
Number of PCM instances: 8

Detected processor(s) with Intel microarchitecture codename Atom

EXEC : instructions per nominal CPU cycle
IPC : instructions per CPU cycle
FREQ : relation to nominal CPU frequency='unhalted clock ticks'/'invariant timer ticks' (includes Intel Turbo Boost)
L2MISS: L2 cache misses
L2HIT : L2 cache hit ratio (0.00-1.00)
TEMP : Temperature reading in 1 degree Celsius relative to the TjMax temperature (thermal headroom): 0 corresponds to the max temperature

Core (SKT) | EXEC | IPC | FREQ | L2MISS | L2HIT | TEMP

0 0 0.00 -1.00 0.00 0 1.00 44
1 0 0.00 -1.00 0.00 0 1.00 44
-------------------------------------------------------------------------------------------------------------------
SKT 0 0.00 -1.00 0.00 -1.00 0 0 -1.00 1.00 -1.00 -1.00 0.00 0.00 N/A
-------------------------------------------------------------------------------------------------------------------
TOTAL * 0.00 -1.00 0.00 0 1.00 N/A

Instructions retired: 0 ; Active cycles: 0 ; Time (TSC): 943 Mticks ; C0 (active,non-halted) core residency: 0.00 %

C3 core residency: 0.00 %; C6 core residency: 0.00 %; C7 core residency: 0.00 %
C2 package residency: 0.00 %; C3 package residency: 0.00 %; C6 package residency: 0.00 %; C7 package residency: 0.00 %

PHYSICAL CORE IPC : -1.00 => corresponds to -50.00 % utilization for cores in active state
Instructions per nominal CPU cycle: 0.00 => corresponds to 0.00 % core utilization over time interval

*****************************************************************************************************
Then,I changed it to: 1667000 (in / sys/devices/system/cpu/cpu0/cpufreq/scaling_availables_frequencies) kHz, and got:

*****************************************************************************************************

Intel Performance Counter Monitor V2.1 (2012-05-31 14:40:57 +0200 ID=2d18fd5)

Copyright (c) 2009-2012 Intel Corporation

Num (logical) cores: 2
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 2
Width of generic (programmable) counters: 40 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 40 bits
Nominal core frequency: 1660000000 Hz
Number of PCM instances: 8

Detected processor(s) with Intel microarchitecture codename Atom

EXEC : instructions per nominal CPU cycle
IPC : instructions per CPU cycle
FREQ : relation to nominal CPU frequency='unhalted clock ticks'/'invariant timer ticks' (includes Intel Turbo Boost)
L2MISS: L2 cache misses
L2HIT : L2 cache hit ratio (0.00-1.00)
TEMP : Temperature reading in 1 degree Celsius relative to the TjMax temperature (thermal headroom): 0 corresponds to the max temperature

Core (SKT) | EXEC | IPC | FREQ | L2MISS | L2HIT | TEMP

0 0 0.00 -1.00 0.00 0 1.00 43
1 0 0.00 -1.00 0.00 0 1.00 43
-------------------------------------------------------------------------------------------------------------------
SKT 0 0.00 -1.00 0.00 -1.00 0 0 -1.00 1.00 -1.00 -1.00 0.00 0.00 N/A
-------------------------------------------------------------------------------------------------------------------
TOTAL * 0.00 -1.00 0.00 0 1.00 N/A

Instructions retired: 0 ; Active cycles: 0 ; Time (TSC): 1688 Mticks ; C0 (active,non-halted) core residency: 0.00 %

C3 core residency: 0.00 %; C6 core residency: 0.00 %; C7 core residency: 0.00 %
C2 package residency: 0.00 %; C3 package residency: 0.00 %; C6 package residency: 0.00 %; C7 package residency: 0.00 %

PHYSICAL CORE IPC : -1.00 => corresponds to -50.00 % utilization for cores in active state
Instructions per nominal CPU cycle: 0.00 => corresponds to 0.00 % core utilization over time interval

*****************************************************************************************************The results are not expected. What does this mean? I am using Atom N450.
Thank you!

Hello,

Again I ran pcm.x and, this time, it gave acceptable values.
I have not modified it from the last time, but now it worked
(only I adjusted the nominal core frequency).

****************Core (SKT) | EXEC | IPC | FREQ | L2MISS | L2HIT | TEMP

0 0 0.06 0.13 0.42 309 K 0.78 49
1 0 0.09 0.21 0.42 396 K 0.80 49
-------------------------------------------------------------------------------------------------------------------
SKT 0 0.07 0.17 0.42 0.65 0 705 K -1.00 0.80 -1.00 -1.00 0.00 0.00 N/A
-------------------------------------------------------------------------------------------------------------------
TOTAL * 0.07 0.17 0.42 705 K 0.80 N/A

Instructions retired: 78 M ; Active cycles: 460 M ; Time (TSC): 545 Mticks ; C0 (active,non-halted) core residency: 65.06 %

C3 core residency: 0.00 %; C6 core residency: 0.00 %; C7 core residency: 0.00 %
C2 package residency: 0.00 %; C3 package residency: 0.00 %; C6 package residency: 0.00 %; C7 package residency: 0.00 %

PHYSICAL CORE IPC : 0.34 => corresponds to 17.06 % utilization for cores in active state
Instructions per nominal CPU cycle: 0.14 => corresponds to 7.20 % core utilization over time interval

****************
Thank you very much for your help.
Greetings.

Portrait de Roman Dementiev (Intel)

Hi Maru,

thank youfor your feedback. We have reproduced the issue internally and will provide a fix in the next PCM update. Till then please use the workaround suggested by Thomas.

Thank you
Roman

Hi
One question, I am working with frequency scaling, and I will need to use the metric EXEC.
If I directly hard-code the nominal frequency, the EXEC values are correct ? (assuming you, can change the frequency).
Thank you
Maru.

Portrait de Thomas Willhalm (Intel)

The EXEC metric is not affected by hard-coding the nominal frequency. It simply returns the ratio of instructions retired versus invariant timer clocks. In particular, thenominal frequency is not part of this equation.

Great!
Thanks for your reply.
Greetings.

Portrait de Roman Dementiev (Intel)

we have just found out that the invariant timer clock function is not working on Atom when CPU is in a power saving C states. This makes EXEC metric output wrong values in such case. In the next PCM version we will provide a workaround for it.

for now you can computethe EXEC metric (getExec(a,b)) as

getInstructionsRetired(a,b)/(time_in_seconds*m->getNominalFrequency())

Thanks,
Roman

Portrait de Roman Dementiev (Intel)

this should be fixed in the recent Intel PCM "V2.2" release.thanks,Roman

Connectez-vous pour laisser un commentaire.