This repository contains a private fork of the TVM project.
release branch is the functional branch for external use
Run the following commands to set up your local repository
git clone https://github.com/jackkosaian/ec-tvm.git
cd ec-tvm
git checkout release
git submodule update --init --recursiveWe provide a container environment with all dependencies installed To build and run the Docker container, execute:
./start_docker.shThis will create a running container that has the current directory mounted at /home/tvm
To build TVM from within the container, run:
./build.shWe also provide a script to build TVM outside of the container. The script is tested on Ubuntu 22.04:
./build_no_container.shTo run an example of tuning a GEMM with meta schedule, run:
cd ec
python3 gemm.pyTo tune an ec schedule, run
cd ec
python3 ../ec/benchmark.py \
-ecParity <ecParity> -ecData <ecData> -N <ecN> \
--log_dir <log_dir> --result_file <result_file> --tune_num_trials_total <num_trials>ecParity, ecData: matrix parameter of erasure codes. k = ecParity*w, m = ecData*w
ecN: parameter n of erasure code
log_dir: directory to store log files, should end with /
result_file: file to store the statistics
num_trials: number of trials to autotune
See reproduce/ for example usage. reproduce/ also contains instruction to reproduce the result in the paper.
TVM-EC supports exporting the tuned schedule to C++ shared library. See deploy/ for details.