dc.rights.license | CC-BY-NC-ND | |
dc.contributor.advisor | Swierstra, W.S. | |
dc.contributor.author | Gils, Jaan Van | |
dc.date.accessioned | 2023-07-22T00:02:30Z | |
dc.date.available | 2023-07-22T00:02:30Z | |
dc.date.issued | 2023 | |
dc.identifier.uri | https://studenttheses.uu.nl/handle/20.500.12932/44275 | |
dc.description.abstract | Data-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.sponsorship | Utrecht University | |
dc.language.iso | EN | |
dc.subject | In 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.title | Fusion of Expand and Permute in Accelerate | |
dc.type.content | Master Thesis | |
dc.rights.accessrights | Open Access | |
dc.subject.keywords | compiler;flattening;vectorisation;optimisation;Haskell;Accelerate;Array fusion;GPU | |
dc.subject.courseuu | Computing Science | |
dc.thesis.id | 19875 | |