Implementation and evaluation scripts for DynVec
- Intel oneAPI 2021.1 (other version is not tested)
DynVec-motivationincludes thegather/scattermicro-benchmarks for motivating performance evalutions;scriptsincludes the build/run tooling scripts to build/run all artifacts including ICC, DynVec, MKL, CSR5, and DynVec motivtions;spmv/Benchmark_SpMV_using_CSR5is the implementations for CSR5 (as a submodule);spmv/CVRis the implementations for CVR on AVX512 platforms (as a submodule);spmv/spmv_mklcontains the source codes to implement SpMV with MKL;spmv/DynVeccontains the DynVec source codes.data.tar.gzcan be downloaded from here and it will be used inrun.shfor SpMV evaluation.
First, we need to clone the entire repo with compared CSR5 submodule:
git clone --recursive https://github.com/buaa-hipo/DynVec-artifact.git
After cloning the repo, use the build script to build the dependency, DynVec, CSR5 and motivation benchmarks:
./build.sh <knl,avx2,avx512>
Note that the build script will download and compiles llvm-8.0.0, which may take some time to finish.
To run spmv with prepared dataset (data.tar.gz in release), we just need to use the run script:
./run.sh
The results are stored in log/run_log/spmv/log_spmv_*.
- Intel Xeon E5-2620 v3 CPU (Haswell, build with
avx2) - Intel Xeon E5-2680 v4 CPU (Broadwell, build with
avx2) - Intel Xeon Gold 6126 CPU (Skylake, build with
avx512) - Intel Xeon Platinum 9242 CPU (Cascade, build with
avx512) - Intel Phi 7210 CPU (KNL, build with
knl)