Looplets: A Language For Structured Coiteration
Willow Ahrens, Daniel Donenfeld, Fredrik Kjolstad, Saman Amarasinghe

TL;DR
This paper introduces Looplets, a language extension that enables efficient coiteration over structured arrays by abstracting array formats, facilitating new data structures, iteration strategies, and operations.
Contribution
It presents a novel approach to automatically generate efficient code for coiterating over structured arrays with different formats and interactions.
Findings
Enables new array formats like 1DVBL for irregular sparsity
Supports new iteration strategies such as galloping intersections
Allows new operations like concatenation and convolution over structured data
Abstract
Real world arrays often contain underlying structure, such as sparsity, runs of repeated values, or symmetry. Specializing for structure yields significant speedups. But automatically generating efficient code for structured data is challenging, especially when arrays with different structure interact. We show how to abstract over array structures so that the compiler can generate code to coiterate over any combination of them. Our technique enables new array formats (such as 1DVBL for irregular clustered sparsity), new iteration strategies (such as galloping intersections), and new operations over structured data (such as concatenation or convolution).
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAlgorithms and Data Compression · Parallel Computing and Optimization Techniques · Computer Graphics and Visualization Techniques
