Title: Calculate number of events by searching for event in assembly file or analytical model.
1Evaluation of Hardware Performance Counters on
the R12000 Microprocessor
Wendy Korn Senior
SSEAL Computer Science
Mentor Dr. Patricia Teller
The necessity for accurate performance
counters became apparent when we began defining
the resource usage of Sweep 3D an ASCI benchmark
from the DOD used to evaluate high performance
computers. For years many computer scientists
have used performance counters to help find
problem areas in code. This study shows that
performance counters on modern microprocessors
provide rudimentary performance measurements that
may or may not be accurate. Below shows the
methodology used to determine the accuracy of
this hardware feature on the R12000 as well as
results.
Methodology
- Calculate number of events by searching for event
in assembly file or analytical model. - Validate the numbers from step one with a
simulator. - Compare numbers with those generated by counters.
- Based on results conclusions are made about
problem areas in code.
- Two counters can count up to 30 total events we
studied nine. - To generate events use small programs or
Microbenchmarks.
To quantify the accuracy of performance
counters the number of events a program
generates must be known. Thus microbenchmarks
were designed to generate events for which we
could predict counts. For example if we used
the above code we could measure the number of
cache misses generated by the code. Certain
types of code measure certain events. Below is a
diagram of three types of microbenchmarks and the
events they can generate.
a 1 b 1 c 1 a b 1 b a 1 c a
b a b c b a c c a b
define MAXSIZE 1000000 int main int argc char
argv[] int a[MAXSIZE] ARRAYSIZE i
ARRAYSIZE atoiargv[1] for i0
i
A
B
C
D
E
F