Title
Accelerating Haskell array codes with multicore GPUs
Abstract
Current GPUs are massively parallel multicore processors optimised for workloads with a large degree of SIMD parallelism. Good performance requires highly idiomatic programs, whose development is work intensive and requires expert knowledge. To raise the level of abstraction, we propose a domain-specific high-level language of array computations that captures appropriate idioms in the form of collective array operations. We embed this purely functional array language in Haskell with an online code generator for NVIDIA's CUDA GPGPU programming environment. We regard the embedded language's collective array operations as algorithmic skeletons; our code generator instantiates CUDA implementations of those skeletons to execute embedded array programs. This paper outlines our embedding in Haskell, details the design and implementation of the dynamic code generator, and reports on initial benchmark results. These results suggest that we can compete with moderately optimised native CUDA code, while enabling much simpler source programs.
Year
DOI
Venue
2011
10.1145/1926354.1926358
DAMP
Keywords
Field
DocType
collective array operation,cuda implementation,code generator,multicore gpus,dynamic code generator,cuda gpgpu programming environment,accelerating haskell array code,embedded array program,online code generator,native cuda code,functional array language,array computation,dynamic compilation,code generation,high level language,data parallelism,multicore processors,algorithmic skeletons,gpgpu
Dynamic compilation,Programming language,Massively parallel,Computer science,CUDA,Parallel computing,Algorithmic skeleton,Code generation,Data parallelism,Haskell,General-purpose computing on graphics processing units
Conference
Citations 
PageRank 
References 
99
2.87
23
Authors
5
Name
Order
Citations
PageRank
Manuel M.T. Chakravarty11707.02
Gabriele Keller265736.02
Sean Lee31417.58
Trevor L. McDonell41436.67
Vinod Grover526113.61