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.
docker pull geticliu/sparse_conv_oopsla:tagname
# Yes, tagname == tagname, sorry but I am too lazy to give a more meaningful name.
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
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)".
Content type
Image
Digest
sha256:c4d5faa3b…
Size
5.1 GB
Last updated
about 2 years ago
docker pull geticliu/sparse_conv_oopsla:tagname