Compiling Recurrences over Dense and Sparse Arrays
Shiv Sundram, Muhammad Usman Tariq, Fredrik Kjolstad

TL;DR
This paper introduces a flexible compiler framework that automatically generates optimized native code for a wide range of recurrence equations across dense and sparse data structures, improving performance and ease of implementation.
Contribution
The paper presents a general compilation framework for recurrences, enabling automatic generation of efficient code for various data structures and scheduling strategies.
Findings
Generated code is competitive with handwritten implementations.
Framework supports both dense and sparse data structures.
Compiler ensures correctness and optimizes performance across multiple domains.
Abstract
Recurrence equations lie at the heart of many computational paradigms including dynamic programming, graph analysis, and linear solvers. These equations are often expensive to compute and much work has gone into optimizing them for different situations. The set of recurrence implementations is a large design space across the set of all recurrences (e.g., the Viterbi and Floyd-Warshall algorithms), the choice of data structures (e.g., dense and sparse matrices), and the set of different loop orders. Optimized library implementations do not exist for most points in this design space, and developers must therefore often manually implement and optimize recurrences. We present a general framework for compiling recurrence equations into native code corresponding to any valid point in this general design space. In this framework, users specify a system of recurrences, the type of data…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Algorithms and Data Compression · Network Packet Processing and Optimization
