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 data volume [GBytes] 1.0E-09*UPMC0*64.0
Memory write bandwidth [MBytes/s] 1.0E-06*UPMC1*64.0/time
Memory 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 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 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.

