ICFP Workshops 2024
29th ACM SIGPLAN International Conference on Functional Programming (ICFP 2024)
Powered by
Conference Publishing Consulting

1st ACM SIGPLAN International Workshop on Functional Programming for Productivity and Performance (FProPer 2024), September 6, 2024, Milan, Italy

FProPer 2024 – Preliminary Table of Contents

Contents - Abstracts - Authors

1st ACM SIGPLAN International Workshop on Functional Programming for Productivity and Performance (FProPer 2024)


Title Page

Message from the Chairs



A Comparison of OpenCL, CUDA, and HIP as Compilation Targets for a Functional Array Language
Troels Henriksen ORCID logo
(University of Copenhagen, Denmark)
This paper compares OpenCL, CUDA, and HIP as compilation targets for Futhark, a functional array language. We compare the performance of OpenCL versus CUDA, and OpenCL versus HIP, on the code generated by the Futhark compiler on a collection of 48 application benchmarks on two different GPUs. Despite the generated code in most cases being equivalent, we observe significant performance differences on the same hardware, ranging from 0.42x to 1.72x in the most extreme cases. We identify the root causes of most of these differences, many of which are due to relatively superficial details such as inconsistent defaults regarding compiler optimisation and numerical accuracy, although a few remain mysterious.

Preprint Info
Fusing Gathers with Integer Linear Programming
David van Balen ORCID logo, Gabriele Keller ORCID logo, Trevor L. McDonell ORCID logo, and Ivo Gabe de Wolff ORCID logo
(Utrecht University, Netherlands)
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.


proc time: 2.08