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.

C

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.

Key publications

All software