Add likwid collector

This commit is contained in:
Thomas Roehl
2021-03-25 14:47:10 +01:00
parent 4fddcb9741
commit a6ac0c5373
670 changed files with 24926 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
SHORT Branch prediction miss rate/ratio
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
PMC2 BR_PRED
PMC3 BR_MIS_PRED
PMC4 INST_SPEC
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
Branch rate PMC2/PMC0
Branch misprediction rate PMC3/PMC0
Branch misprediction ratio PMC3/(PMC2+PMC3)
Instructions per branch PMC0/(PMC2+PMC3)
LONG
Formulas:
CPI = CPU_CYCLES/INST_RETIRED
Branch rate = BR_PRED/INST_RETIRED
Branch misprediction rate = BR_MIS_PRED/INST_RETIRED
Branch misprediction ratio = BR_MIS_PRED/(BR_PRED+BR_MIS_PRED)
Instructions per branch = INSTR_RETIRED_ANY/(BR_PRED+BR_MIS_PRED)
-
The rates state how often in average a branch or a mispredicted branch occured
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.

View File

@@ -0,0 +1,16 @@
SHORT Cycles and instructions
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
LONG
Formulas:
CPI = CPU_CYCLES/INST_RETIRED
-
This is a metric to determine cycles per instruction.

View File

@@ -0,0 +1,24 @@
SHORT Load to store ratio
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
PMC2 LD_SPEC
PMC3 ST_SPEC
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
Load to store ratio PMC2/PMC3
Load ratio PMC2/PMC0
Store ratio PMC3/PMC0
LONG
Formulas:
CPI = CPU_CYCLES/INST_RETIRED
Load to store ratio = LD_SPEC / ST_SPEC
Load ratio = LD_SPEC / INST_SPEC
Store ratio = ST_SPEC / INST_SPEC
-
This is a metric to determine your load to store ratio.

View File

@@ -0,0 +1,24 @@
SHORT Instruction cache miss rate/ratio
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
PMC2 L1I_CACHE
PMC3 L1I_CACHE_REFILL
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
L1I request rate PMC2/PMC0
L1I miss rate PMC3/PMC0
L1I miss ratio PMC3/PMC2
LONG
Formulas:
CPI = CPU_CYCLES/INST_RETIRED
L1I request rate = L1I_CACHE / INST_RETIRED
L1I miss rate = L1I_CACHE_REFILL / INST_RETIRED
L1I miss ratio = L1I_CACHE_REFILL / L1I_CACHE
-
This group measures some L1 instruction cache metrics.

View File

@@ -0,0 +1,40 @@
SHORT L2 cache bandwidth in MBytes/s
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
PMC2 L1D_CACHE_REFILL
PMC3 L1D_CACHE_WB
PMC4 L1I_CACHE_REFILL
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
L2D load bandwidth [MBytes/s] 1.0E-06*PMC2*64.0/time
L2D load data volume [GBytes] 1.0E-09*PMC2*64.0
L2D evict bandwidth [MBytes/s] 1.0E-06*PMC3*64.0/time
L2D evict data volume [GBytes] 1.0E-09*PMC3*64.0
L2I load bandwidth [MBytes/s] 1.0E-06*PMC4*64.0/time
L2I load data volume [GBytes] 1.0E-09*PMC4*64.0
L2 bandwidth [MBytes/s] 1.0E-06*(PMC2+PMC3+PMC4)*64.0/time
L2 data volume [GBytes] 1.0E-09*(PMC2+PMC3+PMC4)*64.0
LONG
Formulas:
CPI = CPU_CYCLES/INST_RETIRED
L2D load bandwidth [MBytes/s] = 1.0E-06*L1D_CACHE_REFILL*64.0/time
L2D load data volume [GBytes] = 1.0E-09*L1D_CACHE_REFILL*64.0
L2D evict bandwidth [MBytes/s] = 1.0E-06*L1D_CACHE_WB*64.0/time
L2D evict data volume [GBytes] = 1.0E-09*L1D_CACHE_WB*64.0
L2I load bandwidth [MBytes/s] = 1.0E-06*L1I_CACHE_REFILL*64.0/time
L2I load data volume [GBytes] = 1.0E-09*L1I_CACHE_REFILL*64.0
L2 bandwidth [MBytes/s] = 1.0E-06*(L1D_CACHE_REFILL+L1D_CACHE_WB+L1I_CACHE_REFILL)*64.0/time
L2 data volume [GBytes] = 1.0E-09*(L1D_CACHE_REFILL+L1D_CACHE_WB+L1I_CACHE_REFILL)*64.0
-
Profiling group to measure L2 cache bandwidth. The bandwidth is computed by the
number of cacheline loaded from the L2 to the L1 data cache and the writebacks from
the L1 data cache to the L2 cache. The group also outputs total data volume transfered between
L2 and L1. Note that this bandwidth also includes data transfers due to a write
allocate load on a store miss in L1 and cachelines transfered it the instruction
cache.

View File

@@ -0,0 +1,30 @@
SHORT L3 cache bandwidth in MBytes/s
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
PMC2 L2D_CACHE_REFILL
PMC3 L2D_CACHE_WB
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
L3 read bandwidth [MBytes/s] 1.0E-06*(PMC2)*64.0/time
L3 read data volume [GBytes] 1.0E-09*(PMC2)*64.0
L3 write bandwidth [MBytes/s] 1.0E-06*(PMC3)*64.0/time
L3 write data volume [GBytes] 1.0E-09*(PMC3)*64.0
L3 bandwidth [MBytes/s] 1.0E-06*(PMC2+PMC3)*64.0/time
L3 data volume [GBytes] 1.0E-09*(PMC2+PMC3)*64.0
LONG
Formulas:
L3 read bandwidth [MBytes/s] = 1.0E-06*(L2D_CACHE_REFILL)*64.0/runtime
L3 read data volume [GBytes] = 1.0E-09*(L2D_CACHE_REFILL)*64.0
L3 write bandwidth [MBytes/s] = 1.0E-06*(L2D_CACHE_WB)*64.0/runtime
L3 write data volume [GBytes] = 1.0E-09*(L2D_CACHE_WB)*64.0
L3 bandwidth [MBytes/s] = 1.0E-06*(L2D_CACHE_REFILL+L2D_CACHE_WB)*64.0/runtime
L3 data volume [GBytes] = 1.0E-09*(L2D_CACHE_REFILL+L2D_CACHE_WB)*64.0
-
Profiling group to measure traffic between L2 and L3 cache.

View File

@@ -0,0 +1,29 @@
SHORT Main memory bandwidth in MBytes/s
EVENTSET
PMC0 INST_RETIRED
PMC1 CPU_CYCLES
PMC2 MEM_ACCESS_RD
PMC3 MEM_ACCESS_WR
METRICS
Runtime (RDTSC) [s] time
CPI PMC1/PMC0
Memory read bandwidth [MBytes/s] 1.0E-06*(PMC2)*64.0/time
Memory read data volume [GBytes] 1.0E-09*(PMC2)*64.0
Memory write bandwidth [MBytes/s] 1.0E-06*(PMC3)*64.0/time
Memory write data volume [GBytes] 1.0E-09*(PMC3)*64.0
Memory bandwidth [MBytes/s] 1.0E-06*(PMC2+PMC3)*64.0/time
Memory data volume [GBytes] 1.0E-09*(PMC2+PMC3)*64.0
LONG
Formulas:
Memory read bandwidth [MBytes/s] = 1.0E-06*(MEM_ACCESS_RD)*64.0/runtime
Memory read data volume [GBytes] = 1.0E-09*(MEM_ACCESS_RD)*64.0
Memory write bandwidth [MBytes/s] = 1.0E-06*(MEM_ACCESS_WR)*64.0/runtime
Memory write data volume [GBytes] = 1.0E-09*(MEM_ACCESS_WR)*64.0
Memory bandwidth [MBytes/s] = 1.0E-06*(MEM_ACCESS_RD+MEM_ACCESS_WR)*64.0/runtime
Memory data volume [GBytes] = 1.0E-09*(MEM_ACCESS_RD+MEM_ACCESS_WR)*64.0
-
Profiling group to measure memory bandwidth

View File

@@ -0,0 +1,30 @@
SHORT L1/L2 TLB information
EVENTSET
PMC0 L1D_TLB
PMC1 L1I_TLB
PMC2 L2D_TLB
PMC3 L1D_TLB_REFILL
PMC4 L1I_TLB_REFILL
PMC5 L2D_TLB_REFILL
METRICS
Runtime (RDTSC) [s] time
L1 DTLB accesses PMC0
L1 ITLB accesses PMC1
L2 DTLB accesses PMC2
L1 DTLB refills PMC3
L1 ITLB refills PMC4
L2 DTLB refills PMC5
L1 DTLB refill ratio PMC3/PMC0
L1 ITLB refill ratio PMC4/PMC1
L1 DTLB refill ratio PMC5/PMC2
LONG
Formulas:
L1 DTLB refill ratio = L1D_TLB_REFILL / L1D_TLB
L1 ITLB refill ratio = L1I_TLB_REFILL / L1I_TLB
L2 DTLB refill ratio = L2D_TLB_REFILL / L2D_TLB
-
This group gives information about the TLB usage for all TLBs:
L1 data, L1 instruction and L2 data.