Skip to content

Latest commit

 

History

History
73 lines (51 loc) · 2.46 KB

README.md

File metadata and controls

73 lines (51 loc) · 2.46 KB

ETISS Accelerator Plugins

This repository contains plugins for modelling ML accelerators in ETISS.

Contents

  • QVanillaAccelerator: TODO: Description
  • QVanillaAcceleratorT: TODO: Description
  • VanillaAccelerator: TODO: Description

Building Instructions

Integrated ETISS Build

  1. Clone ETISS repository
  2. Copy (or symlink) the plugin directory (i.e. QVanillaAcceleratorT) into the PluginImpl directory of the ETISS source tree.
  3. Build ETISS as usual (following the instructions in the README)

Out-of-Tree Build

  1. Clone, build and install ETISS according to the README.
  2. Enter one plugin directory, i.e. cd
  3. Build plugin with CMake, passing it ETISS_DIR to find the relevant CMake configuration
cmake -B ./build -S . -DETISS_DIR=/path/to/etiss/install/etiss/lib/CMake/ETISS
cmake --build build -j$(nproc)

Running Instructions

Integrated ETISS Build

Out-of-Tree Build

Option A (etiss_wd)

  1. Create a directory: mkdir ./temp/
  2. Create INI file with following contents:
# Filename: custom.ini
[StringConfigurations]
etiss_wd=/path/to/temp
  1. Create PluginImpl subdirectory: mkdir ./temp/PluginImpl
  2. Copy ./build/libQVanillaAcceleratorT.so (or other plugin) into this subdir: cp ./build/libQVanillaAcceleratorT.so ./temp/PluginImpl
  3. Run EISS via run_helper.sh script (or calling bare_etiss_processor directly)
/path/to/etiss/install/etiss/bin/run_helper.sh /path/to/program -p QVanillaAcceleratorT -icustom.ini

Hint: Steps 1.-3. can be skipped if executing ETISS in the same path where the PluginImpl directory is located. This yields to this more simple procedure:

mkdir ./PluginImpl
cp ./build/libQVanillaAcceleratorT.so ./PluginImpl
/path/to/etiss/install/etiss/bin/run_helper.sh /path/to/program -p QVanillaAcceleratorT

Option B (list.txt)

  1. Edit the list.txt file located in /path/to/etiss/install/etiss/lib/plugins/
echo "QVanillaAcceleratorT,$(pwd)/build/,QVanillaAcceleratorT" >> ../../../install/etiss/lib/plugins/list.txt
  1. Run ETISS: /path/to/etiss/install/etiss/bin/run_helper.sh /path/to/program -p QVanillaAcceleratorT

Warning: These changes will be overwritten, when ETISS is being rebuilt!

End-to-End Example

A full example on how to use these plugins with TVMs UMA flow is part of the MLonMCU project: https://github.com/tum-ei-eda/mlonmcu/blob/main/ipynb/Examples/TVM-UMA/TVM-UMA.ipynb