Skip to content

Virtual Prototype for identifying Application Specific Hardware Optimization candidates

License

Notifications You must be signed in to change notification settings

agra-uni-bremen/opt-vp

Repository files navigation

Opt-VP

an extension to the RISC-V based Virtual Prototype (VP)

RISC-V based Virtual Prototype (VP)

Most hardware in the area of IoT and embedded systems only ever runs a single application.
To reduce the cost and increase performance the hardware can be tailored to this application.
Unfortunately, identifying, designing, and evaluating application-specific optimizations is complex and requires significant effort.

In order to combine the advantages of high-level and lowlevel approaches we propose this Virtual Prototype to automatically identify promising hardware optimization candidates based on recurring patterns.

For information about the base RISC-V VP please visit the base repository

🎯 Additional Features

  • Tracing of any RISC-V binary compiled for RV32IMAC
  • Generation of bounded execution trees for every instruction
  • Support for arbitrary scoring function for the analysis
  • Ouput dot visualization of iternal trees
  • export best sequences as json
  • full csv export for trees
  • reload scoring functions during runtime

🚀 Getting Started

🔧Building the VP

Check out all submodules

$ git submodule update --init --recursive

Afterwards

$ make

will build the VP

For dependencies and detailed instruction on how to build the Opt-Vp please follow the instructions from the base RISC-V VP

To uninstall/clean use

$ make clean

💻 Usage

The command line interface of the Opt-VP can be used according to the following scheme:

$ ./vp/build/bin/tiny32-vp --intercept-syscalls <executable> --output-file <output-directory>

You can find examples on how to run and analyze programs in the ./run_and_dot.sh script:

  ./vp/build/bin/tiny32-vp --intercept-syscalls $input_file --output-file ./out/ --dot

Additional arguments include

  • --csv to export all trees as csv files
  • --dot to output dot files for the internal trees
  • --seq to output the best sequences used in opt-seq
  • -i to enter interactive mode after the simulation has finished

Acknowledgements:

The Opt-VP extension was supported in part by the German Federal Ministry of Education and Research (BMBF) within projects Scale4Edge under grant no. 16ME0127, ECXL under grant no. 01IW22002 and VE-HEP under grant no. 16KIS1342.

About

Virtual Prototype for identifying Application Specific Hardware Optimization candidates

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published