SHORT  Cycles per instruction

EVENTSET
FIXC0 INST_RETIRED_ANY
FIXC1 ACTUAL_CPU_CLOCK
FIXC2 MAX_CPU_CLOCK
PMC0  RETIRED_INSTRUCTIONS
PMC1  CPU_CLOCKS_UNHALTED
PMC2  RETIRED_UOPS

METRICS
Runtime (RDTSC) [s] time
Runtime unhalted [s]   FIXC1*inverseClock
Clock [MHz]  1.E-06*(FIXC1/FIXC2)/inverseClock
CPI (fixed)   FIXC1/FIXC0
CPI (PMC)  PMC1/PMC0
CPI (based on uops)   PMC1/PMC2
IPC (fixed)   FIXC0/FIXC1
IPC (PMC)  PMC0/PMC1


LONG
Formulas:
CPI (fixed) = ACTUAL_CPU_CLOCK/INST_RETIRED_ANY
CPI (PMC) = CPU_CLOCKS_UNHALTED/RETIRED_INSTRUCTIONS
CPI (based on uops) = CPU_CLOCKS_UNHALTED/RETIRED_UOPS
IPC (PMC) = RETIRED_INSTRUCTIONS/CPU_CLOCKS_UNHALTED
IPC (fixed) = INST_RETIRED_ANY/ACTUAL_CPU_CLOCK
-
This group measures how efficient the processor works with
regard to instruction throughput. Also important as a standalone
metric is RETIRED_INSTRUCTIONS as it tells you how many instruction
you need to execute for a task. An optimization might show very
low CPI values but execute many more instruction for it.

