This is the source code of the paper
Weifeng Liu and Brian Vinter. 2015. CSR5: An Efficient Storage Format for Cross-Platform Sparse Matrix-Vector Multiplication. In Proceedings of the 29th ACM international conference on Supercomputing (ICS '15). (To appear).
A draft version is downloadable at http://arxiv.org/abs/1503.05032.
Contact: Weifeng Liu (weifeng.liu at nbi.ku.dk) and/or Brian Vinter (vinter at nbi.ku.dk).
- Execution
- Set environments for the Intel C/C++ Compilers. For example, use
source /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64
, - Run
make
, - Run
./spmv example.mtx
.
- Tested environments
- Intel Core i7-4770R CPU with Ubuntu 14.04 64-bit Linux installed.
- Intel Xeon E5-2667 v3 dual-socket CPUs with Redhat 6.5 64-bit Linux installed.
- Data type
- Currently, only 64-bit double precision SpMV is supported.
- Execution
- Set CUDA path in the Makefile,
- Run
make
, - Run
./spmv example.mtx
.
- Tested environments
- nVidia GeForce GTX 980 GPU in a host with Ubuntu 14.04 64-bit Linux installed.
- nVidia GeForce GT 650M GPU in a host with Mac OS X 10.9.2 installed.
- Data type
- The code supports both double precision and single precision SpMV. Use
make VALUE_TYPE=double
for double precision ormake VALUE_TYPE=float
for single precision.
- Execution
- Set OpenCL path in the Makefile,
- Run
make
, - Run
./spmv example.mtx
.
- Tested environments
- AMD Radeon R9-290X GPU in a host with Ubuntu 14.04 64-bit Linux installed.
- Data type
- The code supports both double precision and single precision SpMV. Use
make VALUE_TYPE=double
for double precision ormake VALUE_TYPE=float
for single precision.
- Execution
- Set environments for the Intel C/C++ Compilers. For example, use
source /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64
, - Run
make
, - Run
./spmv example.mtx
.
- Tested environments
- Intel Xeon Phi 5110p in a host with Redhat 6.5 64-bit Linux installed.
- Data type
- Currently, only 64-bit double precision SpMV is supported.