Skip to content

Thesys-lab/tvm-ec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Erasure Coding on TVM

This repository contains a private fork of the TVM project. release branch is the functional branch for external use

Setting up your local repository

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 --recursive

Running in Docker container

We provide a container environment with all dependencies installed To build and run the Docker container, execute:

./start_docker.sh

This will create a running container that has the current directory mounted at /home/tvm

To build TVM from within the container, run:

./build.sh

Running in local environment

We also provide a script to build TVM outside of the container. The script is tested on Ubuntu 22.04:

./build_no_container.sh

Example

To run an example of tuning a GEMM with meta schedule, run:

cd ec
python3 gemm.py

To 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.

Exporting to C++

TVM-EC supports exporting the tuned schedule to C++ shared library. See deploy/ for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published