Fork me on GitHub

Sympiler

a code generator for transforming sparse matrix codes

Sympiler is a domain-specific code generator that optimizes sparse matrix computations by decoupling the symbolic analysis phase from the numerical manipulation stage in sparse codes. Sympiler then generates specialized code based on the symbolic information. The following figure shows how the input code to Sympiler is transformed internally to an optimized code.

Sympiler

Sympiler can be built from source code. Please look at the README file in the Sympiler repository for configuration instructions. The details of the Sympiler internals are explained in the SC17 paper and presentation.

These academic publications explain how the symbolic information in sparse methods can guide the code generation phase in Sympiler.

ParSy: Inspection and Transformation of Sparse Matrix Computations for Parallelism
Kazem Cheshmi, Shoaib Kamil, Michelle Mills Strout, Maryam Mehri Dehnavi
In Proceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis (SC '18). IEEE Press, Piscataway, NJ, USA, Article 62, 15 pages. ACM DL. BibTex EndNote ACM Ref. ParSy Talk ParSy SC

Sympiler: Transforming Sparse Matrix Codes by Decoupling Symbolic Analysis
Kazem Cheshmi, Shoaib Kamil, Michelle Mills Strout, Maryam Mehri Dehnavi
In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC '17). ACM, New York, NY, USA, Article 13, 13 pages. DOI: https://doi.org/10.1145/3126908.3126936. BibTex EndNote ACM Ref. Slides PDF

Decoupling Symbolic from Numeric in Sparse Matrix Computations
Kazem Cheshmi, Maryam Mehri Dehnavi
First place in 2017 ACM SRC Grand Finals Winners Poster PDF

Development
wiki
issues
code
License
Sympiler is open source, under a commercially permissive MIT license. We encourage you to use it in other projects, open source or commercial!

Design copied from the Halide homepage