Compile-time sparse matrices
summary
Claims a C++ library that encodes any sparsity (zeros, ones, symmetric remaps) in types and removes runtime loops by using compile-time loops and fold expressions with an IG/Blaze backend. Multiplication uses if constexpr elimination to drop 0 and 1 cases and a sparsity functor to remap entries. Benchmarks show memory savings (avoid storing up to ~50% zero entries) and speedups up to ~50% on small matrices and ~20% on moderate sizes versus IG SIMD; compile times and template bloat grow steeply, so limits and binary-size tradeoffs apply.
AI-written summary · about
chapters (10)
- 0:00Compile-time sparse matrices intro
- 3:15Type-safe linear algebra recap
- 16:20Runtime vs compile-time matrices
- 23:09Efficient sparse multiplication
- 30:55Sparsity functor design
- 39:05Quiz on sparsity correctness
- 44:48Experimental benchmarks
- 53:31Summary and mission
- 54:54Q&A on binary size
- 1:00:15Q&A on GPU acceleration
related talks
28mCommunication Avoiding Algorithms for Linear Algebra and Beyond
06mLightning Talk: Let's Fix Sparse Linear Algebra with C++. It'll Be Fun and Easy!
01h 03mCompute More in Less Time Using C++ Simd Wrapper Libraries
48mC++ Algorithmic Complexity, Data Locality, Parallelism, Compiler Optimizations, & Some Concurrency
54mFast C++ by using SIMD Types with Generic Lambdas and Filters
23mModular Construction and Optimization of the UZP Sparse Format for SpMV on CPUs
56mCompile-Time Compression and Resource Generation with C++20
01h 02mSqueezing the Hardware to Make Performance Juice
