Mat2Stencil: A Modular Matrix-Based DSL for Explicit and Implicit Matrix-Free P...
summary
Mat2Stencil is a Python-embedded DSL that turns structured sparse matrices into matrix-free generalized stencils via type-based multi-stage compilation, emitting C with OpenMP and fine-grained sync. It provides row-function sparse-matrix abstraction and automatic polyhedral dependence analysis to generate deterministic task partitioning and minimal synchronization. Four benchmarks (three NAS pseudo-apps and matrix-free HPCG) compile with 6.3% and 16.4% of original LOC and run up to 1.67× (1.03× on average) of hand-tuned code.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:25Limitations of stencil DSLs
- 3:12Stencil as sparse matrices
- 4:39Matrix-based DSL for matrix-free
- 5:02Matrix construction and arithmetic
- 6:27Sparse matrix with row functions
- 7:29SADAL-style routines
- 8:55Code generation with type-based MSP
- 10:43Compile-time unresolved conditions
- 11:27Automatic parallelization
- 13:18Performance results
- 13:46Q&A
related talks
20mExploiting Sparsity and Redundancy
28mFunctional Sparse Tensor Compilation
14mCompressed and Parallelized Structured Tensor Algebra
10mOn the Generality of Matrix Multiplication
18mLoop Fusion in Matrix Multiplications with Sparse Dependence
20mA Mechanized Algebra of Verified Data Structures for Optimizing Sparse Tensor Programs
15mCompilation of Sparse Array Programming Models
17mA Sparse Iteration Space Transformation Framework for Sparse Tensor Algebra
