Accelerator & dataflow compilation
SAM: The Sparse Abstract Machine
A streaming-dataflow abstract machine and intermediate representation for compiling sparse tensor algebra to reconfigurable and fixed-function dataflow accelerators.
The problem
Sparse tensor accelerators are hard to program and to design, because there is no shared abstraction between the algebra a user writes and the dataflow hardware that runs it.
The idea
Define an abstract machine of streaming dataflow primitives that serves as a compilation target for sparse tensor algebra and a design vocabulary for the hardware itself.
How it fits the group's work
The Sparse Abstract Machine is where the group’s compiler work meets hardware/software co-design. It plays the role that a conventional instruction set plays for CPUs: a stable interface that lets sparse tensor algebra be compiled to, and reasoned about across, a family of dataflow accelerators — a line continued by Stardust and the group’s programmable-accelerator work.