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.

Python C++

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.

Key publications

All software