Sign inSign up

geticliu/sparse_conv_oopsla

By geticliu

•Updated about 2 years ago

Image
0

56

geticliu/sparse_conv_oopsla repository overview

⁠README

The docker image contains both compiled binaries and the source code for the OOPSLA paper submission "Compiler Support for Sparse Tensor Convolution". Most of the implementation has been upstreamed to LLVM⁠ except the quick hacks to enable parallelization (which is also publicly available)⁠. The benchmark itself can be checked out here⁠.

⁠Pull the image

docker pull geticliu/sparse_conv_oopsla:tagname
# Yes, tagname == tagname, sorry but I am too lazy to give a more meaningful name.

⁠To Run the Experiments (using the pre-compiled binary):

cd /home/pae

# To reproduce Fig 15 (Note that the number of threads 
# used in the experiment is hardcoded to 20).
bash run_resnet.sh

# To reproduce Fig 16.
bash run_hyper_sparse_resnet.sh

# To reproduce Fig 17 (results will be saved as 
# /home/pae/result/bench{1/2/3}d_result_{schedule}.txt)

# 1D convolution
bash run_bench_1d.sh
# 2D convolution
bash run_bench_2d.sh
# 3D convolution (takes long).
bash run_bench_3d.sh

⁠To Compile and Run the Experiments:

cd /home/llvm-project

# Remove pre-compiled files
rm -rf ./build/*

# configure the project
cd ./build
cmake ../llvm \
-DLLVM_ENABLE_PROJECTS="mlir;openmp;clang" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=Off \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ 

# compile
make

# then repeat the instruction in the "To Run the Experiments (using the pre-compiled binary)".

Tag summary

Content type

Image

Digest

sha256:c4d5faa3b…

Size

5.1 GB

Last updated

about 2 years ago

docker pull geticliu/sparse_conv_oopsla:tagname