Code Generation in Linnea
summary
Linnea generates explicit BLAS and LAPACK kernels calls from high-level linear-algebra expressions, rewrites expressions to expose common subexpressions, and picks kernels based on inferred properties. It tracks actual memory layouts with a compatibility partial order and a small converter library to perform in-place or minimal-format conversions when needed. It encodes many matrix properties via matrix bandwidth (upper/lower counts, negative bandwidths, partitions) to propagate structure instead of giant rule tables. On 125 real problems the generated code matches or outperforms hand-tuned library baselines and scales on 24 threads.
AI-written summary · about
chapters (7)
- 0:00Start
- 9:30Storage Formats
- 11:03Compatibility Relation
- 17:55Multiplication
- 19:14Trapezoidal Matrix
- 22:17Flow Matrix Properties
- 23:59Naive Implementation
related talks
18mCompiling Strassen-like Matrix Multiplication Algorithms to Fast CUDA Kernels
01h 00mBeating Hand Tuned Assembly in Compiled Languages
30mGenerating High Performance Code for Irregular Data Structures using Dependent Types
54mProgramming Language Design and Implementation for the Machine Learning Era: A Personal(…)
19mCompiling Recurrences over Dense and Sparse Arrays
53mMATLAB Coder: Partial Evaluation in Practice
19mCompiler Support for Sparse Tensor Convolutions
15mCompilation of Sparse Array Programming Models
