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

        Optimal Fusion in Data-Parallel Languages: From Diagonal Fusion to Code Generation

        Thumbnail
        View/Open
        Optimal Fusion in Data-Parallel Languages - thesis David van Balen.pdf (2.310Mb)
        Publication date
        2020
        Author
        Balen, D.P. van
        Metadata
        Show full item record
        Summary
        This thesis investigates the necessary steps to introduce optimal fusion into a compiler for a dataparallel, array based language. Existing literature includes various practical fusion methods, which are based on local rewrites and do not consider the global optimal solution, and methods that are able to identify the optimal fusion clustering. There are no methods that use this optimal clustering to achieve optimally fused code, whilst preserving parallelism and type-safety. In this thesis, we expand upon the latter methods and ensure that the resulting fusion system preserves parallelism and type-safety. The proposed method consists of an integer linear programming formulation to identify the optimal clustering, an explicit fusion AST to encode this clustering in the abstract syntax tree, and an explicitly loopy intermediate representation to generate fused code. In the process of developing this system, we formalise the concepts of vertical and horizontal fusion, and introduce diagonal fusion. These concepts are used in the explicit fusion AST, and allow us to preserve type-safety throughout the compiler, amounting to a partial proof of correctness. We demonstrate that this approach is viable through a partial implementation in the compiler for Accelerate, an embedded language in Haskell.
        URI
        https://studenttheses.uu.nl/handle/20.500.12932/37150
        Collections
        • Theses
        Utrecht university logo