Sparse tensor & array compilation
RECUMA: The Recurrence Computation Machine
A compiler that lowers user-specified systems of recurrence equations, with data-structure and scheduling directives, into imperative C loops over dense and sparse arrays.
The problem
Many algorithms are naturally written as recurrences — each value defined in terms of earlier ones — but turning a system of recurrences into efficient loop code over the right data structures is done by hand.
The idea
Let the programmer state the recurrences plus how data is stored and scheduled, and have the compiler generate loop nests over dense and sparse arrays automatically.
How it fits the group's work
RECUMA extends the group’s compilation model from tensor algebra to recurrences, another way of describing computation that is independent of how its data is laid out. The follow-on REPTILE work adds performant tiling of recurrences, continuing the theme of separating a computation from its representation and its schedule.