Abstract
This paper presents and evaluates a novel second-order operator, named 'redomap', that stems from 'map'-'reduce' compositions in the context of the purely-functional array language Futhark, which is aimed at efficient GPGPU execution. Main contributions are: First, we demonstrate an aggressive fusion technique that is centered on the 'redomap' operator. Second, we present a compilation technique for 'redomap' that efficiently sequentializes the excess parallelism and ensures coalesced access to global memory, even for non-commutative 'reduce' operators. Third, a detailed performance evaluation shows that Futhark's automatically generated code matches or exceeds performance of hand-tuned Thrust code. Our evaluation infrastructure is publicly available and we encourage replication and verification of our results.
Original language | English |
---|---|
Title of host publication | Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming |
Number of pages | 8 |
Publisher | Association for Computing Machinery |
Publication date | 2016 |
Pages | 17-24 |
ISBN (Electronic) | 978-1-4503-4384-8 |
DOIs | |
Publication status | Published - 2016 |
Event | 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming - Santa Barbara, United States Duration: 14 Jun 2016 → 14 Jun 2016 Conference number: 3 |
Conference
Conference | 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming |
---|---|
Number | 3 |
Country/Territory | United States |
City | Santa Barbara |
Period | 14/06/2016 → 14/06/2016 |