This repository contains benchmarks for taco and scripts to reproduce the results from the paper The Tensor Algebra Compiler.
Tell taco-bench where taco is located:
export TACO_INCLUDE_DIR=<taco-directory>/include
export TACO_LIBRARY_DIR=<taco-build-directory>/lib
Build taco-bench with CMake 2.8.3 or greater:
cd <taco-bench-directory>
mkdir build
cd build
cmake ..
make
Do the following steps before you build taco-bench with cmake to benchmark against several libraries.
- Download and extract Eigen's source code from https://eigen.tuxfamily.org/dox/GettingStarted.html.
- Specify the variable
EIGEN_DIR
.
- Use the installation guide http://getfem.org/gmm/install.html.
- Specify the variable
GMM_INCLUDE_DIR
.
- Follow the documentation to install ublas: http://www.boost.org/doc/libs/1_45_0/libs/numeric/ublas/doc/index.htm.
- Specify the variable
UBLAS_INCLUDE_DIR
.
- Follow the user guide to install and tune OSKI: http://bebop.cs.berkeley.edu/oski/downloads.html.
- Specify
OSKI_INCLUDE_DIR
andOSKI_LIBRARY_DIR
.
- Follow the user guide to install and tune pOSKI: http://bebop.cs.berkeley.edu/poski/.
- Specify
POSKI_INCLUDE_DIR
andPOSKI_LIBRARY_DIR
.
Note: Install first OSKI and then use this installation to install POSKI.
- Commercial licensed product from Intel: https://software.intel.com/en-us/mkl.
- Specify
MKL_ROOT
.
Note: use the mklvars.sh
script of Intel to set properly your environment.
-
Modify CMakeList.txt: add an environment variable
YOUR
, compilation options,YOUR_INCLUDE
, andYOUR_LIBRARY
directories to your project. -
Implement the expression using your project. Modify
your4taco.h
file. -
Use the
TACO_BENCH
macro to benchmark andvalidate
method to compare against expected results.