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 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

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?

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.

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.

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.

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

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

发表评论

登录添加评论。还不是成员?立即加入