Git Product home page Git Product logo

jitspmm's Introduction

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}
}

jitspmm's People

Contributors

charlifu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.