Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorSwierstra, W.S.
dc.contributor.authorGils, Jaan Van
dc.date.accessioned2023-07-22T00:02:30Z
dc.date.available2023-07-22T00:02:30Z
dc.date.issued2023
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/44275
dc.description.abstractData-parallel array languages, like Accelerate, provide data-parallel operations as high-level functions for which no low-level programming mastery is required. Permutation and flattening by expansion are two of such operations that are useful for handling irregular nested data. Accelerate transforms the high-level code written by the user to low-level code. Because many programs are inherently memory-bound, it is beneficial to minimise the number of repeated memory loads and the number of temporary, intermediate arrays generated by this process. In this thesis, we study whether the number of temporary arrays can be reduced when performing a permutation after an expansion. Moreover, we will study the performance benefits of such a reduction.
dc.description.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectIn this thesis, a certain specialisation of the code generation in the "Accelerate" language is introduced. The aim is to optimise the generated code when permutation and flattening-by-expansion are used consecutively in the mentioned order. This is useful, as this is a pattern that occurs frequently. The specialisation is benchmarked to see if it leads to performance benefits.
dc.titleFusion of Expand and Permute in Accelerate
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordscompiler;flattening;vectorisation;optimisation;Haskell;Accelerate;Array fusion;GPU
dc.subject.courseuuComputing Science
dc.thesis.id19875


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record