High-performance defunctionalisation in futhark

Anders Kiel Hovgaard, Troels Henriksen, Martin Elsman*

*Corresponding author af dette arbejde

    Abstract

    General-purpose massively parallel processors, such as GPUs, have become common, but are difficult to program. Pure functional programming can be a solution, as it guarantees referential transparency, and provides useful combinators for expressing data-parallel computations. Unfortunately, higher-order functions cannot be efficiently implemented on GPUs by the usual means. In this paper, we present a defunctionalisation transformation that relies on type-based restrictions on the use of expressions of functional type, such that we can completely eliminate higher-order functions in all cases, without introducing any branching. We prove the correctness of the transformation and discuss its implementation in Futhark, a data-parallel functional language that generates GPU code. The use of these restricted higher-order functions has no impact on run-time performance, and we argue that we gain many of the benefits of general higher-order functions, without in most practical cases being hindered by the restrictions.

    OriginalsprogEngelsk
    TitelTrends in Functional Programming : 19th International Symposium, TFP 2018, Gothenburg, Sweden, June 11–13, 2018, Revised Selected Papers
    RedaktørerMichał Pałka, Magnus Myreen
    Antal sider21
    ForlagSpringer
    Publikationsdato2019
    Sider136-156
    ISBN (Trykt)9783030185053
    DOI
    StatusUdgivet - 2019
    Begivenhed19th International Symposium on Trends in Functional Programming, TFP 2018 - Gothenburg, Sverige
    Varighed: 11 jun. 201813 jun. 2018

    Konference

    Konference19th International Symposium on Trends in Functional Programming, TFP 2018
    Land/OmrådeSverige
    ByGothenburg
    Periode11/06/201813/06/2018
    SponsorChalmers ICT Area of Advance, Erlang Solutions
    NavnLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Vol/bind11457 LNCS
    ISSN0302-9743

    Fingeraftryk

    Dyk ned i forskningsemnerne om 'High-performance defunctionalisation in futhark'. Sammen danner de et unikt fingeraftryk.

    Citationsformater