Fusing filters with Integer Linear Programming

Amos Robinson*, Ben Lippmeier, Gabriele Keller

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

Abstract

The key to compiling functional, collection oriented array programs into efficient code is to minimise memory traffic. Simply fusing subsequent array operations into a single computation is not sufficient; we also need to cluster separate traversals of the same array into a single traversal. Previous work demonstrated how Integer Linear Programming (ILP) can be used to cluster the operators in a general data-flow graph into subgraphs, which can be individually fused. However, these approaches can only handle operations which preserve the size of the array, thereby missing out on some optimisation opportunities. This paper addresses this shortcoming by extending the ILP approach with support for size-changing operations, using an external ILP solver to find good clusterings. Copyright is held by the owner/author(s).

Original languageEnglish
Title of host publicationFHPC 2014 - Proceedings of the 2014 ACM SIGPLAN Workshop on Functional High-Performance Computing
PublisherAssociation for Computing Machinery
Pages53-62
Number of pages10
ISBN (Electronic)9781450330404
DOIs
Publication statusPublished - 1 Jan 2014
Externally publishedYes
Event3rd ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2014 - Gothenburg, Sweden
Duration: 4 Sept 20144 Sept 2014

Conference

Conference3rd ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2014
Country/TerritorySweden
CityGothenburg
Period4/09/144/09/14

Keywords

  • Arrays
  • Fusion
  • Haskell

Fingerprint

Dive into the research topics of 'Fusing filters with Integer Linear Programming'. Together they form a unique fingerprint.

Cite this