Abstract
Futhark is a purely functional data-parallel array language that offers a machine-neutral programming model and an optimising compiler that generates OpenCL code for GPUs. This paper presents the design and implementation of three key features of Futhark that seek a suitable middle ground with imperative approaches. First, in order to express efficient code inside the parallel constructs, we introduce a simple type system for in-place updates that ensures referential transparency and supports equational reasoning. Second, we furnish Futhark with parallel operators capable of expressing efficient strength-reduced code, along with their fusion rules. Third, we present a flattening transformation aimed at enhancing the degree of parallelism that (i) builds on loop interchange and distribution but uses higher-order reasoning rather than array-dependence analysis, and (ii) still allows further locality-of-reference optimisations. Finally, an evaluation on 16 benchmarks demonstrates the impact of the language and compiler features and shows application-level performance competitive with hand-written GPU code. Copyright is held by the owner/author(s).
| Original language | English |
|---|---|
| Title of host publication | Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation |
| Number of pages | 16 |
| Publisher | Association for Computing Machinery |
| Publication date | 2017 |
| Pages | 556-571 |
| ISBN (Electronic) | 978-1-4503-4988-8 |
| DOIs | |
| Publication status | Published - 2017 |
| Event | 38th ACM SIGPLAN Conference on Programming Language Design and Implementation - Barcelona, Spain Duration: 18 Jun 2017 → 23 Jun 2017 Conference number: 38 |
Conference
| Conference | 38th ACM SIGPLAN Conference on Programming Language Design and Implementation |
|---|---|
| Number | 38 |
| Country/Territory | Spain |
| City | Barcelona |
| Period | 18/06/2017 → 23/06/2017 |
Keywords
- Compilers
- Functional language
- GPGPU
- Parallel
Cite this
- APA
- Standard
- Harvard
- Vancouver
- Author
- BIBTEX
- RIS