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 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.
NASOQ: Numerically Accurate Sparsity-Oriented QP Solver
Kazem Cheshmi,
Danny Kaufman,
Shoaib Kamil,
Maryam Mehri Dehnavi
SIGGRAPH 2020. NASOQ Webpage
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.
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.
Decoupling Symbolic from Numeric in Sparse Matrix Computations
Kazem Cheshmi,
Maryam Mehri Dehnavi
First place in 2017 ACM SRC Grand Finals Winners
Design copied from the Halide homepage