Finch: Sparse and Structured Tensor Programming with Control Flow
Willow Ahrens, Teodoro Fields Collin, Radha Patel, Kyle Deeds,, Changwan Hong, Saman Amarasinghe

TL;DR
Finch is a new programming language that enables flexible control flow and diverse structured tensor data types, leading to significant performance improvements in tensor computations involving sparsity, symmetry, and other structures.
Contribution
Finch introduces a unified programming model that combines control flow and structured data, allowing co-optimization and automatic specialization for diverse tensor structures.
Findings
Dramatic speedups in SpMV and SpGEMM operations
Effective handling of various tensor structures like sparsity and symmetry
Enhanced performance in image processing and graph analytics
Abstract
From FORTRAN to NumPy, tensors have revolutionized how we express computation. However, tensors in these, and almost all prominent systems, can only handle dense rectilinear integer grids. Real world tensors often contain underlying structure, such as sparsity, runs of repeated values, or symmetry. Support for structured data is fragmented and incomplete. Existing frameworks limit the tensor structures and program control flow they support to better simplify the problem. In this work, we propose a new programming language, Finch, which supports both flexible control flow and diverse data structures. Finch facilitates a programming model which resolves the challenges of computing over structured tensors by combining control flow and data structures into a common representation where they can be co-optimized. Finch automatically specializes control flow to data so that performance…
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
TopicsEvolutionary Algorithms and Applications · Cellular Automata and Applications · DNA and Biological Computing
