GraphBLAS: Building a C++ Matrix API for Graph Algorithms
summary
A working C++ GraphBLAS API prototypes sparse-matrix containers (2-D key_type, fixed shape, compile-time backend hints), callable algebraic primitives (binary ops, monoids and semirings), matrix views and generalized matrix multiply with masks. Implementations (SuiteSparse GraphBLAS, gbts, RG) run standard kernels like BFS as a six-line masked sparse MV loop, show how descriptors and function-pointer costs are avoided, and demonstrate practical interoperability and distributed implementations in progress.
AI-written summary · about
chapters (23)
- 0:00Intro
- 0:40Agenda
- 2:00What is a graph
- 2:56GraphBLAS
- 3:40About GraphBLAS
- 6:29Finding Neighbors
- 8:45Basic Linear Algebra
- 9:56The Semiring
- 11:11GraphBLAS Overview
- 12:00Masks
- 13:34Broader First Search
- 14:50Broader Second Search
- 16:00Mathematics
- 16:35C Matrix API
- 21:26What we need to create
- 27:55Sparse Matrix API
- 33:40Callables
- 38:11Views
- 41:35Algorithms
- 45:26Resources
- 46:40Use Cases
- 48:49Other Questions
- 52:28Roadmap
related talks
01h 18mC++ and Linear Algebra
01h 00mIntroducing a matrix class to the C++ standard library
01h 15mstd::linalg: Linear Algebra Coming to Standard C++
25mNarayanan Sundaram, Research Scientist, Intel Labs
01h 00mThe Blaze High Performance Math Library
05mWhy You Should Care about Sparse Matrices
24mBLAS-on-flash: An Efficient Alternative for Large Scale ML Training and Inference?
32mCompilation of Dynamic Sparse Tensor Algebra
