Fusing Gathers with Integer Linear Programming

David van Balen,Gabriele Keller,Ivo Gabede Wolff,Trevor L. McDonell
DOI: https://doi.org/10.1145/3677997.3678227
2024-07-18
Abstract:We present an Integer Linear Programming based approach to finding the optimal fusion strategy for combinator-based parallel programs. While combinator-based languages or libraries provide a convenient interface for programming parallel hardware, fusing combinators to more complex operations is essential to achieve the desired performance. Our approach is not only suitable for languages with the usual map, fold, scan, indexing and scatter operations, but also gather operations, which access arrays in arbitrary order, and therefore goes beyond the traditional producer-consumer fusion. It can be parametrised with appropriate cost functions, and is fast enough to be suitable for just-in-time compilation.
Programming Languages
What problem does this paper attempt to address?