# Sympiler: Transforming Sparse Matrix Codes by Decoupling Symbolic   Analysis

**Authors:** Kazem Cheshmi, Shoaib Kamil, Michelle Mills Strout, Maryam Mehri, Dehnavi

arXiv: 1705.06575 · 2018-01-08

## TL;DR

Sympiler is a specialized code generator that decouples symbolic analysis from numerical computation in sparse matrix codes, enabling compile-time optimizations that significantly improve performance in real-world applications.

## Contribution

It introduces a method to perform symbolic analysis at compile-time and apply inspector-guided transformations, leading to faster sparse matrix code generation.

## Key findings

- Achieves 3.8x speedup over Eigen
- Achieves 1.5x speedup over CHOLMOD
- Outperforms highly-optimized matrix factorization codes

## Abstract

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. The computation patterns in sparse numerical methods are guided by the input sparsity structure and the sparse algorithm itself. In many real-world simulations, the sparsity pattern changes little or not at all. Sympiler takes advantage of these properties to symbolically analyze sparse codes at compile-time and to apply inspector-guided transformations that enable applying low-level transformations to sparse codes. As a result, the Sympiler-generated code outperforms highly-optimized matrix factorization codes from commonly-used specialized libraries, obtaining average speedups over Eigen and CHOLMOD of 3.8X and 1.5X respectively.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1705.06575/full.md

## Figures

20 figures with captions in the complete paper: https://tomesphere.com/paper/1705.06575/full.md

## References

72 references — full list in the complete paper: https://tomesphere.com/paper/1705.06575/full.md

---
Source: https://tomesphere.com/paper/1705.06575