mirror of
https://github.com/ClusterCockpit/cc-metric-collector.git
synced 2025-07-31 08:56:06 +02:00
Add likwid collector
This commit is contained in:
31
collectors/likwid/groups/westmere/BRANCH.txt
Normal file
31
collectors/likwid/groups/westmere/BRANCH.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
SHORT Branch prediction miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 BR_INST_RETIRED_ALL_BRANCHES
|
||||
PMC1 BR_MISP_RETIRED_ALL_BRANCHES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
Branch rate PMC0/FIXC0
|
||||
Branch misprediction rate PMC1/FIXC0
|
||||
Branch misprediction ratio PMC1/PMC0
|
||||
Instructions per branch FIXC0/PMC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
Branch rate = BR_INST_RETIRED_ALL_BRANCHES/INSTR_RETIRED_ANY
|
||||
Branch misprediction rate = BR_MISP_RETIRED_ALL_BRANCHES/INSTR_RETIRED_ANY
|
||||
Branch misprediction ratio = BR_MISP_RETIRED_ALL_BRANCHES/BR_INST_RETIRED_ALL_BRANCHES
|
||||
Instructions per branch = INSTR_RETIRED_ANY/BR_INST_RETIRED_ALL_BRANCHES
|
||||
-
|
||||
The rates state how often on average a branch or a mispredicted branch occurred
|
||||
per instruction retired in total. The branch misprediction ratio sets directly
|
||||
into relation what ratio of all branch instruction where mispredicted.
|
||||
Instructions per branch is 1/branch rate.
|
||||
|
26
collectors/likwid/groups/westmere/CACHE.txt
Normal file
26
collectors/likwid/groups/westmere/CACHE.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
SHORT Data cache miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 L1D_REPL
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
data cache misses PMC0
|
||||
data cache miss rate PMC0/FIXC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
data cache misses = L1D_REPL
|
||||
data cache miss rate = L1D_REPL / INSTR_RETIRED_ANY
|
||||
-
|
||||
This group measures the locality of your data accesses with regard to the
|
||||
L1 cache.
|
||||
The data cache miss rate gives a measure how often it was necessary to get
|
||||
cache lines from higher levels of the memory hierarchy.
|
||||
|
21
collectors/likwid/groups/westmere/CLOCK.txt
Normal file
21
collectors/likwid/groups/westmere/CLOCK.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
SHORT CPU clock information
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
Runtime (RDTSC) [s] = time
|
||||
Runtime unhalted [s] = CPU_CLK_UNHALTED_CORE*inverseClock
|
||||
Clock [MHz] = 1.E-06*(CPU_CLK_UNHALTED_CORE/CPU_CLK_UNHALTED_REF)/inverseClock
|
||||
CPI = CPU_CLK_UNHALTED_CORE/INSTR_RETIRED_ANY
|
||||
-
|
||||
CPU clock information
|
22
collectors/likwid/groups/westmere/DATA.txt
Normal file
22
collectors/likwid/groups/westmere/DATA.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
SHORT Load to store ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 MEM_INST_RETIRED_LOADS
|
||||
PMC1 MEM_INST_RETIRED_STORES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
Load to store ratio PMC0/PMC1
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
Load to store ratio = MEM_INST_RETIRED_LOADS/MEM_INST_RETIRED_STORES
|
||||
-
|
||||
This is a simple metric to determine your load to store ratio.
|
||||
|
24
collectors/likwid/groups/westmere/DIVIDE.txt
Normal file
24
collectors/likwid/groups/westmere/DIVIDE.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
SHORT Divide unit information
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 ARITH_NUM_DIV
|
||||
PMC1 ARITH_CYCLES_DIV_BUSY
|
||||
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
Number of divide ops PMC0
|
||||
Avg. divide unit usage duration PMC1/PMC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
Number of divide ops = ARITH_NUM_DIV
|
||||
Avg. divide unit usage duration = ARITH_CYCLES_DIV_BUSY/ARITH_NUM_DIV
|
||||
-
|
||||
This performance group measures the average latency of divide operations
|
35
collectors/likwid/groups/westmere/FLOPS_DP.txt
Normal file
35
collectors/likwid/groups/westmere/FLOPS_DP.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
SHORT Double Precision MFLOP/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 FP_COMP_OPS_EXE_SSE_FP_PACKED
|
||||
PMC1 FP_COMP_OPS_EXE_SSE_FP_SCALAR
|
||||
PMC2 FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION
|
||||
PMC3 FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
DP [MFLOP/s] 1.0E-06*(PMC0*2.0+PMC1)/time
|
||||
Packed [MUOPS/s] 1.0E-06*PMC0/time
|
||||
Scalar [MUOPS/s] 1.0E-06*PMC1/time
|
||||
SP [MUOPS/s] 1.0E-06*PMC2/time
|
||||
DP [MUOPS/s] 1.0E-06*PMC3/time
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
DP [MFLOP/s] = 1.0E-06*(FP_COMP_OPS_EXE_SSE_FP_PACKED*2+FP_COMP_OPS_EXE_SSE_FP_SCALAR)/runtime
|
||||
Packed [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_PACKED/runtime
|
||||
Scalar [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_SCALAR/runtime
|
||||
SP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION/runtime
|
||||
DP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION/runtime
|
||||
-
|
||||
Westmere has no possibility to measure MFLOPs if mixed precision calculations are done.
|
||||
Therefore both single as well as double precision are measured to ensure the correctness
|
||||
of the measurements. You can check if your code was vectorized on the number of
|
||||
FP_COMP_OPS_EXE_SSE_FP_PACKED versus the FP_COMP_OPS_EXE_SSE_FP_SCALAR.
|
||||
|
35
collectors/likwid/groups/westmere/FLOPS_SP.txt
Normal file
35
collectors/likwid/groups/westmere/FLOPS_SP.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
SHORT Single Precision MFLOP/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 FP_COMP_OPS_EXE_SSE_FP_PACKED
|
||||
PMC1 FP_COMP_OPS_EXE_SSE_FP_SCALAR
|
||||
PMC2 FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION
|
||||
PMC3 FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
SP [MFLOP/s] 1.0E-06*(PMC0*4.0+PMC1)/time
|
||||
Packed [MUOPS/s] 1.0E-06*PMC0/time
|
||||
Scalar [MUOPS/s] 1.0E-06*PMC1/time
|
||||
SP [MUOPS/s] 1.0E-06*PMC2/time
|
||||
DP [MUOPS/s] 1.0E-06*PMC3/time
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
SP [MFLOP/s] = 1.0E-06*(FP_COMP_OPS_EXE_SSE_FP_PACKED*4+FP_COMP_OPS_EXE_SSE_FP_SCALAR)/runtime
|
||||
Packed [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_PACKED/runtime
|
||||
Scalar [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_SCALAR/runtime
|
||||
SP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION/runtime
|
||||
DP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION/runtime
|
||||
-
|
||||
Westmere has no possibility to measure MFLOPs if mixed precision calculations are done.
|
||||
Therefore both single as well as double precision are measured to ensure the correctness
|
||||
of the measurements. You can check if your code was vectorized on the number of
|
||||
FP_COMP_OPS_EXE_SSE_FP_PACKED versus the FP_COMP_OPS_EXE_SSE_FP_SCALAR.
|
||||
|
21
collectors/likwid/groups/westmere/FLOPS_X87.txt
Normal file
21
collectors/likwid/groups/westmere/FLOPS_X87.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
SHORT X87 MFLOP/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 INST_RETIRED_X87
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
X87 [MFLOP/s] 1.0E-06*PMC0/time
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
X87 [MFLOP/s] = 1.0E-06*INST_RETIRED_X87/runtime
|
||||
-
|
||||
Profiling group to measure X87 FLOP rate.
|
||||
|
25
collectors/likwid/groups/westmere/ICACHE.txt
Normal file
25
collectors/likwid/groups/westmere/ICACHE.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
SHORT Instruction cache miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 L1I_READS
|
||||
PMC1 L1I_MISSES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L1I request rate PMC0/FIXC0
|
||||
L1I miss rate PMC1/FIXC0
|
||||
L1I miss ratio PMC1/PMC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L1I request rate = L1I_READS / INSTR_RETIRED_ANY
|
||||
L1I miss rate = ICACHE_MISSES / INSTR_RETIRED_ANY
|
||||
L1I miss ratio = ICACHE_MISSES / L1I_READS
|
||||
-
|
||||
This group measures some L1 instruction cache metrics.
|
38
collectors/likwid/groups/westmere/L2.txt
Normal file
38
collectors/likwid/groups/westmere/L2.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
SHORT L2 cache bandwidth in MBytes/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 L1D_REPL
|
||||
PMC1 L1D_M_EVICT
|
||||
PMC2 L1I_MISSES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L2D load bandwidth [MBytes/s] 1.0E-06*PMC0*64.0/time
|
||||
L2D load data volume [GBytes] 1.0E-09*PMC0*64.0
|
||||
L2D evict bandwidth [MBytes/s] 1.0E-06*PMC1*64.0/time
|
||||
L2D evict data volume [GBytes] 1.0E-09*PMC1*64.0
|
||||
L2 bandwidth [MBytes/s] 1.0E-06*(PMC0+PMC1+PMC2)*64.0/time
|
||||
L2 data volume [GBytes] 1.0E-09*(PMC0+PMC1+PMC2)*64.0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L2D load bandwidth [MBytes/s] = 1.0E-06*L1D_REPL*64.0/time
|
||||
L2D load data volume [GBytes] = 1.0E-09*L1D_REPL*64.0
|
||||
L2D evict bandwidth [MBytes/s] = 1.0E-06*L1D_M_EVICT*64.0/time
|
||||
L2D evict data volume [GBytes] = 1.0E-09*L1D_M_EVICT*64.0
|
||||
L2 bandwidth [MBytes/s] = 1.0E-06*(L1D_REPL+L1D_M_EVICT+L1I_MISSES)*64/time
|
||||
L2 data volume [GBytes] = 1.0E-09*(L1D_REPL+L1D_M_EVICT+L1I_MISSES)*64
|
||||
-
|
||||
Profiling group to measure L2 cache bandwidth. The bandwidth is computed by the
|
||||
number of cache line allocated in the L1 and the number of modified cache lines
|
||||
evicted from the L1. The group also reports of data volume transferred between
|
||||
L2 and L1 cache. Note that this bandwidth also includes data transfers due to a
|
||||
write allocate load on a store miss in L1 and traffic caused by misses in the
|
||||
L1 instruction cache.
|
||||
|
34
collectors/likwid/groups/westmere/L2CACHE.txt
Normal file
34
collectors/likwid/groups/westmere/L2CACHE.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
SHORT L2 cache miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 L2_RQSTS_REFERENCES
|
||||
PMC1 L2_RQSTS_MISS
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L2 request rate PMC0/FIXC0
|
||||
L2 miss rate PMC1/FIXC0
|
||||
L2 miss ratio PMC1/PMC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L2 request rate = L2_RQSTS_REFERENCES/INSTR_RETIRED_ANY
|
||||
L2 miss rate = L2_RQSTS_MISS/INSTR_RETIRED_ANY
|
||||
L2 miss ratio = L2_RQSTS_MISS/L2_RQSTS_REFERENCES
|
||||
-
|
||||
This group measures the locality of your data accesses with regard to the
|
||||
L2 cache. L2 request rate tells you how data intensive your code is
|
||||
or how many data accesses you have on average per instruction.
|
||||
The L2 miss rate gives a measure how often it was necessary to get
|
||||
cache lines from memory. And finally L2 miss ratio tells you how many of your
|
||||
memory references required a cache line to be loaded from a higher level.
|
||||
While the data cache miss rate might be given by your algorithm you should
|
||||
try to get data cache miss ratio as low as possible by increasing your cache reuse.
|
||||
|
||||
|
37
collectors/likwid/groups/westmere/L3.txt
Normal file
37
collectors/likwid/groups/westmere/L3.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
SHORT L3 cache bandwidth in MBytes/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 L2_RQSTS_MISS
|
||||
PMC1 L2_LINES_OUT_DIRTY_ANY
|
||||
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L3 load bandwidth [MBytes/s] 1.0E-06*PMC0*64.0/time
|
||||
L3 load data volume [GBytes] 1.0E-09*PMC0*64.0
|
||||
L3 evict bandwidth [MBytes/s] 1.0E-06*(PMC1)*64.0/time
|
||||
L3 evict data volume [GBytes] 1.0E-09*(PMC1)*64.0
|
||||
L3 bandwidth [MBytes/s] 1.0E-06*(PMC0+PMC1)*64.0/time
|
||||
L3 data volume [GBytes] 1.0E-09*(PMC0+PMC1)*64.0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L3 load bandwidth [MBytes/s] = 1.0E-06*L2_RQSTS_MISS*64.0/time
|
||||
L3 load data volume [GBytes] = 1.0E-09*L2_RQSTS_MISS*64.0
|
||||
L3 evict bandwidth [MBytes/s] = 1.0E-06*L2_LINES_OUT_DIRTY_ANY*64.0/time
|
||||
L3 evict data volume [GBytes] = 1.0E-09*L2_LINES_OUT_DIRTY_ANY*64.0
|
||||
L3 bandwidth [MBytes/s] = 1.0E-06*(L2_RQSTS_MISS+L2_LINES_OUT_DIRTY_ANY)*64/time
|
||||
L3 data volume [GBytes] = 1.0E-09*(L2_RQSTS_MISS+L2_LINES_OUT_DIRTY_ANY)*64
|
||||
-
|
||||
Profiling group to measure L3 cache bandwidth. The bandwidth is computed by the
|
||||
number of cache line allocated in the L2 and the number of modified cache lines
|
||||
evicted from the L2. The group also reports total data volume between L3 and
|
||||
the measured L2 cache. Note that this bandwidth also includes data transfers
|
||||
due to a write allocate load on a store miss in L2.
|
||||
|
34
collectors/likwid/groups/westmere/L3CACHE.txt
Normal file
34
collectors/likwid/groups/westmere/L3CACHE.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
SHORT L3 cache miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
UPMC0 UNC_L3_HITS_ANY
|
||||
UPMC1 UNC_L3_MISS_ANY
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L3 request rate (UPMC0+UPMC1)/FIXC0
|
||||
L3 miss rate UPMC1/FIXC0
|
||||
L3 miss ratio UPMC1/(UPMC0+UPMC1)
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L3 request rate = (UNC_L3_HITS_ANY+UNC_L3_MISS_ANY)/INSTR_RETIRED_ANY
|
||||
L3 miss rate = UNC_L3_MISS_ANY/INSTR_RETIRED_ANY
|
||||
L3 miss ratio = UNC_L3_MISS_ANY/(UNC_L3_HITS_ANY+UNC_L3_MISS_ANY)
|
||||
-
|
||||
This group measures the locality of your data accesses with regard to the L3
|
||||
Cache. L3 request rate tells you how data intensive your code is or how many
|
||||
data accesses you have on average per instruction. The L3 miss rate gives a
|
||||
measure how often it was necessary to get cache lines from memory. And finally
|
||||
L3 miss ratio tells you how many of your memory references required a cache line
|
||||
to be loaded from a higher level. While the data cache miss rate might be given
|
||||
by your algorithm you should try to get data cache miss ratio as low as
|
||||
possible by increasing your cache reuse.
|
||||
|
||||
|
50
collectors/likwid/groups/westmere/MEM.txt
Normal file
50
collectors/likwid/groups/westmere/MEM.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
SHORT Main memory bandwidth in MBytes/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
UPMC0 UNC_QMC_NORMAL_READS_ANY
|
||||
UPMC1 UNC_QMC_WRITES_FULL_ANY
|
||||
UPMC2 UNC_QHL_REQUESTS_REMOTE_READS
|
||||
UPMC3 UNC_QHL_REQUESTS_REMOTE_WRITES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
Memory read bandwidth [MBytes/s] 1.0E-06*UPMC0*64.0/time
|
||||
Memory read data volume [GBytes] 1.0E-09*UPMC0*64.0
|
||||
Memory write bandwidth [MBytes/s] 1.0E-06*UPMC1*64.0/time
|
||||
Memory write data volume [GBytes] 1.0E-09*UPMC1*64.0
|
||||
Memory bandwidth [MBytes/s] 1.0E-06*(UPMC0+UPMC1)*64.0/time
|
||||
Memory data volume [GBytes] 1.0E-09*(UPMC0+UPMC1)*64.0
|
||||
Remote memory read bandwidth [MBytes/s] 1.0E-06*UPMC2*64.0/time
|
||||
Remote memory read data volume [GBytes] 1.0E-09*UPMC2*64.0
|
||||
Remote memory write bandwidth [MBytes/s] 1.0E-06*UPMC3*64.0/time
|
||||
Remote memory write data volume [GBytes] 1.0E-09*UPMC3*64.0
|
||||
Remote memory bandwidth [MBytes/s] 1.0E-06*(UPMC2+UPMC3)*64.0/time
|
||||
Remote memory data volume [GBytes] 1.0E-09*(UPMC2+UPMC3)*64.0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
Memory read bandwidth [MBytes/s] = 1.0E-06*UNC_QMC_NORMAL_READS_ANY*64.0/time
|
||||
Memory read data volume [GBytes] = 1.0E-09*UNC_QMC_NORMAL_READS_ANY*64.0
|
||||
Memory write bandwidth [MBytes/s] = 1.0E-06*UNC_QMC_WRITES_FULL_ANY*64.0/time
|
||||
Memory write data volume [GBytes] = 1.0E-09*UNC_QMC_WRITES_FULL_ANY*64.0
|
||||
Memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0/time
|
||||
Memory data volume [GBytes] = 1.0E-09*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0
|
||||
Remote memory read bandwidth [MBytes/s] = 1.0E-06*UNC_QHL_REQUESTS_REMOTE_READS*64.0/time
|
||||
Remote memory read data volume [GBytes] = 1.0E-09*UNC_QHL_REQUESTS_REMOTE_READS*64.0
|
||||
Remote memory write bandwidth [MBytes/s] = 1.0E-06*UNC_QHL_REQUESTS_REMOTE_WRITES*64.0/time
|
||||
Remote memory write data volume [GBytes] = 1.0E-09*UNC_QHL_REQUESTS_REMOTE_WRITES*64.0
|
||||
Remote memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64.0/time
|
||||
Remote memory data volume [GBytes] = 1.0E-09*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64.0
|
||||
-
|
||||
Profiling group to measure memory bandwidth drawn by all cores of a socket.
|
||||
This group will be measured by one core per socket. The remote read BW tells
|
||||
you if cache lines are transferred between sockets, meaning that cores access
|
||||
data owned by a remote NUMA domain. The group also reports total data volume
|
||||
transferred from main memory.
|
||||
|
66
collectors/likwid/groups/westmere/MEM_DP.txt
Normal file
66
collectors/likwid/groups/westmere/MEM_DP.txt
Normal file
@@ -0,0 +1,66 @@
|
||||
SHORT Main memory bandwidth in MBytes/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 FP_COMP_OPS_EXE_SSE_FP_PACKED
|
||||
PMC1 FP_COMP_OPS_EXE_SSE_FP_SCALAR
|
||||
PMC2 FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION
|
||||
PMC3 FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION
|
||||
UPMC0 UNC_QMC_NORMAL_READS_ANY
|
||||
UPMC1 UNC_QMC_WRITES_FULL_ANY
|
||||
UPMC2 UNC_QHL_REQUESTS_REMOTE_READS
|
||||
UPMC3 UNC_QHL_REQUESTS_REMOTE_WRITES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
DP [MFLOP/s] 1.0E-06*(PMC0*2.0+PMC1)/time
|
||||
Packed [MUOPS/s] 1.0E-06*PMC0/time
|
||||
Scalar [MUOPS/s] 1.0E-06*PMC1/time
|
||||
SP [MUOPS/s] 1.0E-06*PMC2/time
|
||||
DP [MUOPS/s] 1.0E-06*PMC3/time
|
||||
Memory read bandwidth [MBytes/s] 1.0E-06*UPMC0*64.0/time
|
||||
Memory read data volume [GBytes] 1.0E-09*UPMC0*64.0
|
||||
Memory write bandwidth [MBytes/s] 1.0E-06*UPMC1*64.0/time
|
||||
Memory write data volume [GBytes] 1.0E-09*UPMC1*64.0
|
||||
Memory bandwidth [MBytes/s] 1.0E-06*(UPMC0+UPMC1)*64.0/time
|
||||
Memory data volume [GBytes] 1.0E-09*(UPMC0+UPMC1)*64.0
|
||||
Remote memory read bandwidth [MBytes/s] 1.0E-06*UPMC2*64.0/time
|
||||
Remote memory read data volume [GBytes] 1.0E-09*UPMC2*64.0
|
||||
Remote memory write bandwidth [MBytes/s] 1.0E-06*UPMC3*64.0/time
|
||||
Remote memory write data volume [GBytes] 1.0E-09*UPMC3*64.0
|
||||
Remote memory bandwidth [MBytes/s] 1.0E-06*(UPMC2+UPMC3)*64.0/time
|
||||
Remote memory data volume [GBytes] 1.0E-09*(UPMC2+UPMC3)*64.0
|
||||
Operational intensity (PMC0*2.0+PMC1)/((UPMC0+UPMC1)*64.0)
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
DP [MFLOP/s] = 1.0E-06*(FP_COMP_OPS_EXE_SSE_FP_PACKED*2+FP_COMP_OPS_EXE_SSE_FP_SCALAR)/runtime
|
||||
Packed [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_PACKED/runtime
|
||||
Scalar [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_SCALAR/runtime
|
||||
SP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION/runtime
|
||||
DP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION/runtime
|
||||
Memory read bandwidth [MBytes/s] = 1.0E-06*UNC_QMC_NORMAL_READS_ANY*64.0/time
|
||||
Memory read data volume [GBytes] = 1.0E-09*UNC_QMC_NORMAL_READS_ANY*64.0
|
||||
Memory write bandwidth [MBytes/s] = 1.0E-06*UNC_QMC_WRITES_FULL_ANY*64.0/time
|
||||
Memory write data volume [GBytes] = 1.0E-09*UNC_QMC_WRITES_FULL_ANY*64.0
|
||||
Memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0/time
|
||||
Memory data volume [GBytes] = 1.0E-09*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0
|
||||
Remote memory read bandwidth [MBytes/s] = 1.0E-06*UNC_QHL_REQUESTS_REMOTE_READS*64.0/time
|
||||
Remote memory read data volume [GBytes] = 1.0E-09*UNC_QHL_REQUESTS_REMOTE_READS*64.0
|
||||
Remote memory write bandwidth [MBytes/s] = 1.0E-06*UNC_QHL_REQUESTS_REMOTE_WRITES*64.0/time
|
||||
Remote memory write data volume [GBytes] = 1.0E-09*UNC_QHL_REQUESTS_REMOTE_WRITES*64.0
|
||||
Remote memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64.0/time
|
||||
Remote memory data volume [GBytes] = 1.0E-09*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64.0
|
||||
Operational intensity = (FP_COMP_OPS_EXE_SSE_FP_PACKED*2+FP_COMP_OPS_EXE_SSE_FP_SCALAR)/((UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0)
|
||||
-
|
||||
Profiling group to measure memory bandwidth drawn by all cores of a socket.
|
||||
This group will be measured by one core per socket. The remote read BW tells
|
||||
you if cache lines are transferred between sockets, meaning that cores access
|
||||
data owned by a remote NUMA domain. The group also reports total data volume
|
||||
transferred from main memory.
|
||||
|
66
collectors/likwid/groups/westmere/MEM_SP.txt
Normal file
66
collectors/likwid/groups/westmere/MEM_SP.txt
Normal file
@@ -0,0 +1,66 @@
|
||||
SHORT Main memory bandwidth in MBytes/s
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 FP_COMP_OPS_EXE_SSE_FP_PACKED
|
||||
PMC1 FP_COMP_OPS_EXE_SSE_FP_SCALAR
|
||||
PMC2 FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION
|
||||
PMC3 FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION
|
||||
UPMC0 UNC_QMC_NORMAL_READS_ANY
|
||||
UPMC1 UNC_QMC_WRITES_FULL_ANY
|
||||
UPMC2 UNC_QHL_REQUESTS_REMOTE_READS
|
||||
UPMC3 UNC_QHL_REQUESTS_REMOTE_WRITES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
SP [MFLOP/s] 1.0E-06*(PMC0*4.0+PMC1)/time
|
||||
Packed [MUOPS/s] 1.0E-06*PMC0/time
|
||||
Scalar [MUOPS/s] 1.0E-06*PMC1/time
|
||||
SP [MUOPS/s] 1.0E-06*PMC2/time
|
||||
DP [MUOPS/s] 1.0E-06*PMC3/time
|
||||
Memory read bandwidth [MBytes/s] 1.0E-06*UPMC0*64.0/time
|
||||
Memory read data volume [GBytes] 1.0E-09*UPMC0*64.0
|
||||
Memory write bandwidth [MBytes/s] 1.0E-06*UPMC1*64.0/time
|
||||
Memory write data volume [GBytes] 1.0E-09*UPMC1*64.0
|
||||
Memory bandwidth [MBytes/s] 1.0E-06*(UPMC0+UPMC1)*64.0/time
|
||||
Memory data volume [GBytes] 1.0E-09*(UPMC0+UPMC1)*64.0
|
||||
Remote memory read bandwidth [MBytes/s] 1.0E-06*UPMC2*64.0/time
|
||||
Remote memory read data volume [GBytes] 1.0E-09*UPMC2*64.0
|
||||
Remote memory write bandwidth [MBytes/s] 1.0E-06*UPMC3*64.0/time
|
||||
Remote memory write data volume [GBytes] 1.0E-09*UPMC3*64.0
|
||||
Remote memory bandwidth [MBytes/s] 1.0E-06*(UPMC2+UPMC3)*64.0/time
|
||||
Remote memory data volume [GBytes] 1.0E-09*(UPMC2+UPMC3)*64.0
|
||||
Operational intensity (PMC0*4.0+PMC1)/((UPMC0+UPMC1)*64.0)
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
SP [MFLOP/s] = 1.0E-06*(FP_COMP_OPS_EXE_SSE_FP_PACKED*4+FP_COMP_OPS_EXE_SSE_FP_SCALAR)/runtime
|
||||
Packed [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_PACKED/runtime
|
||||
Scalar [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_SCALAR/runtime
|
||||
SP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION/runtime
|
||||
DP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION/runtime
|
||||
Memory read bandwidth [MBytes/s] = 1.0E-06*UNC_QMC_NORMAL_READS_ANY*64.0/time
|
||||
Memory read data volume [GBytes] = 1.0E-09*UNC_QMC_NORMAL_READS_ANY*64.0
|
||||
Memory write bandwidth [MBytes/s] = 1.0E-06*UNC_QMC_WRITES_FULL_ANY*64.0/time
|
||||
Memory write data volume [GBytes] = 1.0E-09*UNC_QMC_WRITES_FULL_ANY*64.0
|
||||
Memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0/time
|
||||
Memory data volume [GBytes] = 1.0E-09*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0
|
||||
Remote memory read bandwidth [MBytes/s] = 1.0E-06*UNC_QHL_REQUESTS_REMOTE_READS*64.0/time
|
||||
Remote memory read data volume [GBytes] = 1.0E-09*UNC_QHL_REQUESTS_REMOTE_READS*64.0
|
||||
Remote memory write bandwidth [MBytes/s] = 1.0E-06*UNC_QHL_REQUESTS_REMOTE_WRITES*64.0/time
|
||||
Remote memory write data volume [GBytes] = 1.0E-09*UNC_QHL_REQUESTS_REMOTE_WRITES*64.0
|
||||
Remote memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64.0/time
|
||||
Remote memory data volume [GBytes] = 1.0E-09*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64.0
|
||||
Operational intensity = (FP_COMP_OPS_EXE_SSE_FP_PACKED*4+FP_COMP_OPS_EXE_SSE_FP_SCALAR)/((UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64.0)
|
||||
-
|
||||
Profiling group to measure memory bandwidth drawn by all cores of a socket.
|
||||
This group will be measured by one core per socket. The remote read BW tells
|
||||
you if cache lines are transferred between sockets, meaning that cores access
|
||||
data owned by a remote NUMA domain. The group also reports total data volume
|
||||
transferred from main memory.
|
||||
|
35
collectors/likwid/groups/westmere/TLB_DATA.txt
Normal file
35
collectors/likwid/groups/westmere/TLB_DATA.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
SHORT L2 data TLB miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 DTLB_LOAD_MISSES_ANY
|
||||
PMC1 DTLB_MISSES_ANY
|
||||
PMC2 DTLB_LOAD_MISSES_WALK_CYCLES
|
||||
PMC3 DTLB_MISSES_WALK_CYCLES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L1 DTLB load misses PMC0
|
||||
L1 DTLB load miss rate PMC0/FIXC0
|
||||
L1 DTLB load miss duration [Cyc] PMC2/PMC0
|
||||
L1 DTLB store misses (PMC1-PMC0)
|
||||
L1 DTLB store miss rate (PMC1-PMC0)/FIXC0
|
||||
L1 DTLB store miss duration [Cyc] (PMC3-PMC2)/(PMC1-PMC0)
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L1 DTLB load misses = DTLB_LOAD_MISSES_ANY
|
||||
L1 DTLB load miss rate = DTLB_LOAD_MISSES_ANY / INSTR_RETIRED_ANY
|
||||
L1 DTLB load miss duration [Cyc] = DTLB_LOAD_MISSES_WALK_CYCLES / DTLB_LOAD_MISSES_ANY
|
||||
L1 DTLB store misses = DTLB_MISSES_ANY-DTLB_LOAD_MISSES_ANY
|
||||
L1 DTLB store miss rate = (DTLB_MISSES_ANY-DTLB_LOAD_MISSES_ANY) / INSTR_RETIRED_ANY
|
||||
L1 DTLB store miss duration [Cyc] = (DTLB_MISSES_WALK_CYCLES-DTLB_LOAD_MISSES_WALK_CYCLES) / (DTLB_MISSES_ANY-DTLB_LOAD_MISSES_ANY)
|
||||
-
|
||||
The DTLB miss rate gives a measure how often a TLB miss occurred
|
||||
per instruction. The store miss calculations are done using ALL-LOADS TLB walks.
|
||||
|
27
collectors/likwid/groups/westmere/TLB_INSTR.txt
Normal file
27
collectors/likwid/groups/westmere/TLB_INSTR.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
SHORT L1 Instruction TLB miss rate/ratio
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 ITLB_MISSES_ANY
|
||||
PMC1 ITLB_MISSES_WALK_CYCLES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
L1 ITLB misses PMC0
|
||||
L1 ITLB miss rate PMC0/FIXC0
|
||||
L1 ITLB miss duration [Cyc] PMC1/PMC0
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
L1 ITLB misses = ITLB_MISSES_ANY
|
||||
L1 ITLB miss rate = ITLB_MISSES_ANY / INSTR_RETIRED_ANY
|
||||
L1 ITLB miss duration [Cyc] = ITLB_MISSES_WALK_CYCLES / ITLB_MISSES_ANY
|
||||
-
|
||||
The ITLB miss rates gives a measure how often a TLB miss occurred
|
||||
per instruction. The duration measures the time in cycles how long a walk did take.
|
||||
|
35
collectors/likwid/groups/westmere/UOPS.txt
Normal file
35
collectors/likwid/groups/westmere/UOPS.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
SHORT UOPs execution info
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 UOPS_ISSUED_ANY
|
||||
PMC1 UOPS_EXECUTED_THREAD
|
||||
PMC2 UOPS_RETIRED_ANY
|
||||
PMC3 UOPS_ISSUED_FUSED
|
||||
|
||||
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
Issued UOPs PMC0
|
||||
Merged UOPs PMC3
|
||||
Executed UOPs PMC1
|
||||
Retired UOPs PMC2
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
Issued UOPs = UOPS_ISSUED_ANY
|
||||
Merged UOPs = UOPS_ISSUED_FUSED
|
||||
Executed UOPs = UOPS_EXECUTED_THREAD
|
||||
Retired UOPs = UOPS_RETIRED_ANY
|
||||
-
|
||||
This group returns information about the instruction pipeline. It measures the
|
||||
issued, executed and retired uOPs and returns the number of uOPs which were issued
|
||||
but not executed as well as the number of uOPs which were executed but never retired.
|
||||
The executed but not retired uOPs commonly come from speculatively executed branches.
|
||||
|
50
collectors/likwid/groups/westmere/VIEW.txt
Normal file
50
collectors/likwid/groups/westmere/VIEW.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
SHORT Overview of arithmetic and memory performance
|
||||
|
||||
EVENTSET
|
||||
FIXC0 INSTR_RETIRED_ANY
|
||||
FIXC1 CPU_CLK_UNHALTED_CORE
|
||||
FIXC2 CPU_CLK_UNHALTED_REF
|
||||
PMC0 FP_COMP_OPS_EXE_SSE_FP_PACKED
|
||||
PMC1 FP_COMP_OPS_EXE_SSE_FP_SCALAR
|
||||
PMC2 FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION
|
||||
PMC3 FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION
|
||||
UPMC0 UNC_QMC_NORMAL_READS_ANY
|
||||
UPMC1 UNC_QMC_WRITES_FULL_ANY
|
||||
UPMC2 UNC_QHL_REQUESTS_REMOTE_READS
|
||||
UPMC3 UNC_QHL_REQUESTS_LOCAL_READS
|
||||
UPMC4 UNC_QHL_REQUESTS_REMOTE_WRITES
|
||||
|
||||
METRICS
|
||||
Runtime (RDTSC) [s] time
|
||||
Runtime unhalted [s] FIXC1*inverseClock
|
||||
Clock [MHz] 1.E-06*(FIXC1/FIXC2)/inverseClock
|
||||
CPI FIXC1/FIXC0
|
||||
DP [MFLOP/s] (DP assumed) 1.0E-06*(PMC0*2.0+PMC1)/time
|
||||
SP [MFLOP/s] (SP assumed) 1.0E-06*(PMC0*4.0+PMC1)/time
|
||||
Packed [MUOPS/s] 1.0E-06*PMC0/time
|
||||
Scalar [MUOPS/s] 1.0E-06*PMC1/time
|
||||
SP [MUOPS/s] 1.0E-06*PMC2/time
|
||||
DP [MUOPS/s] 1.0E-06*PMC3/time
|
||||
Memory bandwidth [MBytes/s] 1.0E-06*(UPMC0+UPMC1)*64/time
|
||||
Memory data volume [GBytes] 1.0E-09*(UPMC0+UPMC1)*64
|
||||
Remote Read BW [MBytes/s] 1.0E-06*(UPMC2)*64/time
|
||||
Remote Write BW [MBytes/s] 1.0E-06*(UPMC4)*64/time
|
||||
Remote BW [MBytes/s] 1.0E-06*(UPMC2+UPMC4)*64/time
|
||||
|
||||
LONG
|
||||
Formulas:
|
||||
DP [MFLOP/s] = (FP_COMP_OPS_EXE_SSE_FP_PACKED*2 + FP_COMP_OPS_EXE_SSE_FP_SCALAR)/ runtime
|
||||
SP [MFLOP/s] = (FP_COMP_OPS_EXE_SSE_FP_PACKED*4 + FP_COMP_OPS_EXE_SSE_FP_SCALAR)/ runtime
|
||||
Packed [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_PACKED/time
|
||||
Scalar [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_FP_SCALAR/time
|
||||
SP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_SINGLE_PRECISION/time
|
||||
DP [MUOPS/s] = 1.0E-06*FP_COMP_OPS_EXE_SSE_DOUBLE_PRECISION/time
|
||||
Memory bandwidth [MBytes/s] = 1.0E-06*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64/time
|
||||
Memory data volume [GBytes] = 1.0E-09*(UNC_QMC_NORMAL_READS_ANY+UNC_QMC_WRITES_FULL_ANY)*64
|
||||
Remote Read BW [MBytes/s] = 1.0E-06*(UNC_QHL_REQUESTS_REMOTE_READS)*64/time
|
||||
Remote Write BW [MBytes/s] = 1.0E-06*(UNC_QHL_REQUESTS_REMOTE_WRITES)*64/time
|
||||
Remote BW [MBytes/s] = 1.0E-06*(UNC_QHL_REQUESTS_REMOTE_READS+UNC_QHL_REQUESTS_REMOTE_WRITES)*64/time
|
||||
-
|
||||
This is a overview group using the capabilities of Westmere to measure multiple events at
|
||||
the same time.
|
||||
|
Reference in New Issue
Block a user