Skip to content

Source codes for JitSpMM (Distinguish Paper Award) published at CGO'24

Notifications You must be signed in to change notification settings

charlifu/JitSpMM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JitSpMM (CGO'24)


Software requirement

CMake (3.13+)

gcc/clang/icc (c++17 support)


Hardware

x86 CPU with avx512 extension.

Use command lscpu to check if your cpu supports avx512 or not.


Build

git submodule update --init --recursive
mkdir -p third_party/asmjit/build/ && cd third_party/asmjit/build/
cmake -G Ninja ..
cmake --build .
cmake --install . --prefix .
cd -
mkdir -p ./build && cd build
cmake -G Ninja ..
cmake --build .

Execute

Run JitSpMM on the toy example:

./spmm -i ../data/1138_bus/1138_bus.csrbin

To run JitSpMM on other dataset, please download the mtx file from SuiteSparse Matrix Collection. And convert it to our own binary format using mm_to_csrbin:

./mm_to_csrbin -i [input .mtx file] -o [output .csrbin file]

Run ./spmm -h to see more options.


Reference

If you use JitSpMM in your project, please cite the following paper.

@inproceedings{fu2024jitspmm,
  title={JITSPMM: Just-in-Time Instruction Generation for Accelerated Sparse Matrix-Matrix Multiplication},
  author={Fu, Qiang and Rolinger, Thomas B and Huang, H Howie},
  booktitle={2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)},
  pages={448--459},
  year={2024},
  organization={IEEE}
}

About

Source codes for JitSpMM (Distinguish Paper Award) published at CGO'24

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published