Publication: Nikola: Embedding Compiled GPU Functions in Haskell
Date
2010
Published Version
Journal Title
Journal ISSN
Volume Title
Publisher
Association for Computing Machinery
The Harvard community has made this article openly available. Please share how this access benefits you.
Citation
Mainland, Geoffrey, and John Gregory Morrisett. 2010. Nikola: Embedding compiled GPU functions in Haskell. In Haskell '10: Proceedings of the 2010 ACM SIGPLAN Haskell Symposium: September 30, 2010, Baltimore, Maryland, ed. Jeremy Gibbons, 67-78. New York: Association for Computing Machinery.
Research Data
Abstract
We describe Nikola, a first-order language of array computations embedded in Haskell that compiles to GPUs via CUDA using a new set of type-directed techniques to support re-usable computations. Nikola automatically handles a range of low-level details for Haskell programmers, such as marshaling data to/from the GPU, size inference for buffers, memory management, and automatic loop parallelization. Additionally, Nikola supports both compile-time and run-time code generation, making it possible for programmers to choose when and where to specialize embedded programs.
Description
Other Available Sources
Keywords
meta programming, CUDA, GPU, languages, design
Terms of Use
Metadata Only