ProtoFlex   Carnegie Mellon

Differences

This shows you the differences between two versions of the page.

documentation:iiswc2010_tutorial_flexus [2010/12/02 23:28]
papamix
documentation:iiswc2010_tutorial_flexus [2010/12/03 22:25] (current)
mferdman
Line 109: Line 109:
  - You can see how the source code inserts the magic instructions by looking at **spinlock.c**   - You can see how the source code inserts the magic instructions by looking at **spinlock.c**
-  - Create a new Simics script called break.simics and fill it in with this:+  - Create a new Simics script called break.simics and fill it in with this: (this should already be available for you under ~/simics-3.0.22/targets/serengeti)
<code> <code>
@def hap_callback(user_arg, cpu, arg): @def hap_callback(user_arg, cpu, arg):
Line 140: Line 140:
======3. Working with Flexus====== ======3. Working with Flexus======
-From the simics checkpoint you just created, you will get a chance to run some sample jobs with Flexus and create a Flexpoint library. By this point you should have a valid initial checkpoint stored as **~/images/spinlock**.+From the simics checkpoint you just created, you will get a chance to run some sample jobs with Flexus. By this point you should have a valid initial checkpoint stored as **~/images/spinlock**.
  - Before starting, you should have a few initial directories in the home (which we will explain in the next steps):<code>   - Before starting, you should have a few initial directories in the home (which we will explain in the next steps):<code>
Line 183: Line 183:
Run a "spinlock" trace job with CMP.L2Shared.Trace Run a "spinlock" trace job with CMP.L2Shared.Trace
  * **run_job -run trace -cfg 4cores -local CMP.L2Shared.Trace spinlock**   * **run_job -run trace -cfg 4cores -local CMP.L2Shared.Trace spinlock**
-    * Explanation of "local": -local requests to run a batch of jobs locally.  without -local an interactive run is assumed which waits at the simics> prompt instead of running. +  * Explanation of "local": -local requests to run a batch of jobs locally.  without -local an interactive run is assumed which waits at the simics> prompt instead of running. 
-   * Explanation of "remote": -remote will submit jobs to a remote cluster (e.g., Condor, PBS, etc...) [not available for the tutorial].+ * Explanation of "remote": -remote will submit jobs to a remote cluster (e.g., Condor, PBS, etc...) [not available for the tutorial]
 +  * You can **run** simulation, interrupt it with **ctrl+c**, and change debug severity with **flexus.debug-set-severity iface**.
++++ ++++
-====Displaying statistics through the stat-manager tool====+====Displaying statistics with the stat-manager tool====
++++CLICK - Expand/Collapse| ++++CLICK - Expand/Collapse|
Find the run directory for the trace job in ~/results/ and examine the resulting statistics database: Find the run directory for the trace job in ~/results/ and examine the resulting statistics database:
Line 198: Line 199:
    * **~/tutorial_files/flexus_v4/stat-manager/stat-manager -per-node print 'Region 001' | less**     * **~/tutorial_files/flexus_v4/stat-manager/stat-manager -per-node print 'Region 001' | less**
++++ ++++
 +
 +====Running timing simulations====
 +++++CLICK - Expand/Collapse|
 +Run a "spinlock" timing job with CMP.L2SharedNUCA.OoO
 +  * **run_job -run timing -cfg 4cores -ma CMP.L2SharedNUCA.OoO spinlock**
 +  * NOTE: When running timing simulations, one must pass the **-ma** parameter to Simics.
 +  * You can **run** simulation, interrupt it with **ctrl+c**, and change debug severity with **flexus.debug-set-severity iface**, **run 10** will run 10 cycles on all CPUs.
 +  * Rebuild the simulator with **vverb** debug output (CMP.L2SharedNUCA.OoO-vverb) and try running simulation with **flexus.debug-set-severity vverb** to see the detailed debug output.
 +++++
 +
 +======4. Using Statistical Sampling with Flexus======
====Creating a flexpoint library==== ====Creating a flexpoint library====