View Item 
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        JavaScript is disabled for your browser. Some features of this site may not work without it.

        Browse

        All of UU Student Theses RepositoryBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

        Safe In-Place Updates for ILP Fusion in Array Languages

        Thumbnail
        View/Open
        UU_Master_Thesis_In_Place_Updates (Submitted Ver).pdf (1.699Mb)
        Publication date
        2025
        Author
        Post, Timo
        Metadata
        Show full item record
        Summary
        Accelerate is a combinator based, parallel array programming language embedded in Haskell capable of targeting the CPU and GPU. To eliminate the overhead of intermediate arrays, Accelerate uses a fusion step to combine combinators into larger, more efficient computation clusters. This fusion step is implemented as an ILP that solves for the most efficient clustering of combinators for a given cost function. Another optimization is in-place (or destructive) updates. When an in-place update happens, the output of a computation is written to one of its input arrays, destroying the input in the process. The order of computations, which is determined by fusion, is therefor highly important when applying in-place updates. This thesis explores how in-place updates can be integrated into Accelerate’s existing fusion ILP. The resulting ILP is implemented in Accelerate and benchmarked. It turns out that in-place update have a particularly high impact on programs with little possibility for fusion and/or many sparse scatter-like operations. In case of the former they reduce memory usage by running (parts of) programs fully in-place. In the latter case, in-place updates eliminate the need to make a copy of the destination array, reducing runtime by up to 5×.
        URI
        https://studenttheses.uu.nl/handle/20.500.12932/50544
        Collections
        • Theses
        Utrecht university logo