Skip to main content

A bundle of auxiliary scripts for the Anycore project

Project description

atool-simenv

A new toolset to reliably packing, then spawning a RISC-V workload (app) for any simulation purpose.

An app is packed into a simenv, which is basically the rootfs containing all the essentials for a simulation. The tool learns what are the essentials by analyzing the workload's syscall trace. When simulating with the proper PK/FESVR, the dynamic instruction stream is even reproducible.

The motivation is to help Dr. Rotenberg's microarchitecture research group and ECE721 students using SPEC CPU2006 and CPU2017 workloads (usually checkpointed workloads) with ease.

At the time, run atool-simenv --help to see how to use it (docs are incoming).

Usage: atool-simenv [OPTIONS] COMMAND [ARGS]...

  The simenv utility

Options:
  --db-path DIRECTORY             Override the manifest directory path.
  --checkpoints-archive-path DIRECTORY
                                  Override the checkpoint archive directory
                                  path.

  --help                          Show this message and exit.

Commands:
  learn   Create a new simenv by learning the syscall trace.
  list    List the simenv for available apps and checkpoints.
  mkgen   Generate a Makefile for a simenv, at current dir.
  spawn   Spawn a simenv.
  verify  Perform integrity checking for a simenv.

* If you are using bash/zsh/fish, you can run eval "$(_ATOOL_SIMENV_COMPLETE=source_$(basename $SHELL) atool-simenv)" to enable the auto completion for atool-simenv.

Misc.

  • SpecResultVerification/spike_trim.py - Trim out the extra header/tail message produced by spike or pk during the simulation. Useful if you want to automatically verify the STDOUT output of a SPEC simulation.
  • Checkpointing/ChkptDescFileGen/smpt2ckptdesc.py - Convert the Simpoint output file to the checkpoint job description file accepted by Spike.
  • Checkpointing/DumpHTIF/chkpt_htif_dump.py - Show the HTIF syscalls recorded in a checkpoint file. When restoring a checkpoint, those syscalls will be executed in sequence to bring back the state of HTIF FESVR.
  • TetherSim/SimTetheringController.py - Controller for 721sims working in tethering mode.

To work with trace dump

  • CpuTraceAnalysis/trace2google.py - Analyze the trace dumped by spike or 721sim and output the result in Google's Trace Event Format.

  • To visualize the result, use speedscope (recommend) or Chromium's about://tracing .

    • if ignore_symbol.yaml exists in CWD, it will be read to filter out the defined function calls. See CpuTraceAnalysis/ignore_symbol.yaml for an example.
  • CpuTraceAnalysis/trace2tracevis.py - Analyze and visualize the trace dumped by spike or 721sim in a homebrew timeline frontend (using timeline-js).

    • if ignore_symbol.yaml exists in CWD - Will be read to filter out the defined function calls. See CpuTraceAnalysis/ignore_symbol.yaml for an example.
    • It's recommended to use trace2google.py. Because the trace_vis frontend uses timeline-js, which is not intended for visualizing tracing result, it can be very slow and unresponsive when working with trace with a large amount of event.

image-20201105011703029

Viewing the trace2google.py output with speedscope

image-20201105011839379

Viewing the trace2google.py output with Chrome's about:tracing

image-20200813043919822

Viewing the trace using homebrew TraceVis frontend (use timeline-js)

WIP.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anycore-dbg-supplement-0.2.3.tar.gz (7.5 MB view details)

Uploaded Source

Built Distribution

anycore_dbg_supplement-0.2.3-py3-none-any.whl (7.7 MB view details)

Uploaded Python 3

File details

Details for the file anycore-dbg-supplement-0.2.3.tar.gz.

File metadata

  • Download URL: anycore-dbg-supplement-0.2.3.tar.gz
  • Upload date:
  • Size: 7.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.4.80-1-MANJARO

File hashes

Hashes for anycore-dbg-supplement-0.2.3.tar.gz
Algorithm Hash digest
SHA256 a6fd3f4cacb8b8c1387079662c0cf506a1bfdb839a9203c03b99bee401cb78e5
MD5 c18a284859d554e782175988d9259617
BLAKE2b-256 83052b50f90ca9eacc30e8d5bad4525f1e4f3651ce15fbbfaf21b4f9a1ea9297

See more details on using hashes here.

Provenance

File details

Details for the file anycore_dbg_supplement-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for anycore_dbg_supplement-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0c1fa0ec7c5af2c703583a326b885dcfcb93c44b927c32ae480723ce2f6952a5
MD5 40812aa1caa5af6a9523309de97ed760
BLAKE2b-256 053b491121d9685b85edc2f2e2dd46cb05588fd0f195c43c82ba75278c9e78f8

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page