Publication:
Nikola: Embedding Compiled GPU Functions in Haskell

Thumbnail Image

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.

Research Projects

Organizational Units

Journal Issue

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

Endorsement

Review

Supplemented By

Referenced By

Related Stories