Simpoints

From Marss86

NOTE: This feature is available only in 'features' branch.

Contents

Introduction

Simpoints is used in Computer Architecture research for reducing simulation time for long running benchmarks. This tool exploit the application phase behavior to reduce simulation time. Marss supports simpoints based checkpoints creation so users can reduce their simulation time. Simpoints only support single core applications so in Marss this feature works only with single CPU context (when compiled with c=1).

Creating Simpoints

To create simpoints for a specific application please refer to Simpoint FAQ page.

Creating Checkpoints using Simpoints

Once you generate a 'simpoint' file for your application use that file with Marss to generate checkpoints at specific 'points' provided in that file. Follow the steps below to generate the checkpoints.

  1. Before starting with simpoints, you must create a checkpoint just before starting your application. For example to create checkpoints for bzip benchmarks use following command:
      $ ~/create_checkpoint bzip; ./bzip PARAMS ; ~/stop_sim
  2. Then restart the Marss from your application checkpoint with following simconfig options:
    -simpoint SIMPOINT_FILE
    -simpoint-interval N
    -simpoint-chk-name CHK_PREFIX
    • -simpoint : Enable simpoint based checkpoint generation and also specify the simpoint file
    • -simpoint-interval : Number of instructions in the single simpoint interval. By default its 10mil
    • -simpoint-chk-name : Prefix added to each simpoint checkpoint. Suffix is set to '_sp_N' where N is simpoint label read from simpoints file.

After 2nd step Marss will create checkpoints at specific points in your disk image. Use those checkpoints to run simulations.

Merging Stats using Weights

After creating simpoint based checkpoints and running simulation you'll generate stats file. Next step is to merge those stats based on the 'weights' file provided by Simpoint tool.

To merge stats, mstats.py provides simpoint specific options:

  1. --sp-weights WEIGHTS_FILE : Specify simpoint.weight file to use
  2. --sp-pfx CHK_NAME_PFX : Checkpoint name prefix used to create simpoint based checkpoints.

For example to collect IPC based on simpoints weight from all checkpoints use following command:

$ ./mstats.py -y --yaml-out --sp-weights bzip.weights --sp-pfx bzip -t user -n base_machine::ooo_.\*::thread0::commit::ipc *.yml

Above command will find for all stats with 'bzip_sp_*' tags and collect user mode IPC.

Personal tools