accelerate: An embedded language for accelerated array processing

[ accelerate, bsd3, compilers-interpreters, concurrency, data, library, parallelism ] [ Propose Tags ]

This library defines an embedded language for regular, multi-dimensional array computations with multiple backends to facilitate high-performance implementations. Currently, there are two backends: (1) an interpreter that serves as a reference implementation of the intended semantics of the language and (2) a CUDA backend generating code for CUDA-capable NVIDIA GPUs.

To use the CUDA backend, you need to have CUDA version 3.x installed. The CUDA backend still misses some features of the full language; in particular, the array operations replicate, slice, and foldSeg are not yet supported.

Known bugs in this version:

Versions [faq] 0.4.0,,,,,,,,,,,,,,,,,,,,,,,,,,
Dependencies array, base (==4.*), binary, bytestring, containers, cuda (==0.2.*), directory, fclabels, filepath, ghc-prim, haskell98, language-c (==0.3.*), llvm (>=0.6.8), monads-fd, pretty, transformers (==0.2.*), unix [details]
License BSD-3-Clause
Author Manuel M T Chakravarty, Gabriele Keller, Sean Lee, Trevor L. McDonell
Maintainer Manuel M T Chakravarty <>
Category Compilers/Interpreters, Concurrency, Data
Home page
Bug tracker
Source repo head: darcs get
Uploaded by ManuelChakravarty at 2010-07-18T14:17:40Z
Distributions NixOS:
Downloads 27322 total (438 in the last 30 days)
Rating 2.5 (votes: 5) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]





enable the LLVM backend (sequential)


enable the CUDA parallel backend for NVIDIA GPUs


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees