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 or runtime schedule based on the symbolic information. The following figure shows how the input code to Sympiler is transformed internally to an optimized code. For more information, See Sympiler overview
Sympiler can be built from source code. Please look at the Getting started with Sympiler for configuration instructions. The details of the Sympiler internals are briefly explained in Sympiler docs .
Transforming Sparse Matrix Computations
Kazem Cheshmi
University of Toronto, Computer Science, PhD Thesis
BibTex
Optimizing Sparse Computations Jointly
Kazem Cheshmi, Michelle Mills Strout, and Maryam Mehri Dehnavi
Symposium on Principles and Practice of Parallel Programming , PPoPP'22
BibTex
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
International Conference for High Performance Computing, Networking, Storage, and Analysis, SC'18
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
International Conference for High Performance Computing, Networking, Storage and Analysis, SC'17
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