Low-level functional GPU programming for parallel algorithms

Martin Dybdal, Martin Elsman, Bo Joel Svensson, Mary Sheeran

2 Citationer (Scopus)

Abstract

We present a Functional Compute Language (FCL) for low-level GPU programming. FCL is functional in style, which allows for easy composition of program fragments and thus easy prototyping and a high degree of code reuse. In contrast with projects such as Futhark, Accelerate, Harlan, Nessie and Delite, the intention is not to develop a language providing fully automatic optimizations, but instead to provide a platform that supports absolute control of the GPU computation and memory hierarchies. The developer is thus required to have an intimate knowledge of the target platform, as is also required when using CUDA/OpenCL directly. FCL is heavily inspired by Obsidian. However, instead of relying on a multi-staged meta-programming approach for kernel generation using Haskell as meta-language, FCL is completely self-contained, and we intend it to be suitable as an intermediate language for data-parallel languages, including data-parallel parts of high-level array languages, such as R, Matlab, and APL. We present a type-system and a dynamic semantics suitable for understanding the performance characteristics of both FCL and Obsidian-style programs. Our aim is that FCL will be useful as a platform for developing new parallel algorithms, as well as a target-language for various code-generators targeting GPU hardware.

OriginalsprogEngelsk
TitelProceedings of the 5th International Workshop on Functional High-Performance Computing
Antal sider7
ForlagAssociation for Computing Machinery
Publikationsdato8 sep. 2016
Sider31-37
ISBN (Trykt)978-1-4503-4433-3
DOI
StatusUdgivet - 8 sep. 2016
Begivenhed5th International Workshop on Functional High-Performance Computing - Nara, Japan
Varighed: 22 sep. 201622 sep. 2016
Konferencens nummer: 5

Konference

Konference5th International Workshop on Functional High-Performance Computing
Nummer5
Land/OmrådeJapan
ByNara
Periode22/09/201622/09/2016

Emneord

  • GPU programming, Type systems, array-programming, data-parallel languages, hierarchical machine models, iteration schemes, pull-arrays, push-arrays

Fingeraftryk

Dyk ned i forskningsemnerne om 'Low-level functional GPU programming for parallel algorithms'. Sammen danner de et unikt fingeraftryk.

Citationsformater