Modern architecture research relies heavily on detailed pipeline
simulation. Simulating the full execution of an industry standard benchmark
can take weeks to months to complete. To address this issue researchers have
recently proposed using Simulation Points (SimPoints) to increase the
efficiency and accuracy of simulation. SimPoints are a small subset of
execution intervals that are representative of a program's phases, so that when
combined they accurately represent the complete execution of the program.
These SimPoints are found using clustering techniques based on the structure of
the executed code. The prior work on SimPoints assumed a somewhat advanced
simulation environment that supported check-points, had perfect warm-up
ability, and focused only on simulating single threaded architectures. In this
research we explore what happens when you break these assumptions and provide
techniques that are capable of dealing with more complex simulation
environments. We focus on environments that have the ability to fast-forward,
but to not checkpoint, and we extend the use of SimPoints to multi-threaded
architectures. We present results comparing our improved SimPoint techniques
with past SimPoint work and in addition provide a comparison to Random
Sampling.
Pre-2018 CSE ID: CS2002-0727