accelerate: An embedded language for accelerated array processing

[ bsd3, compilers-interpreters, concurrency, data, library, parallelism ] [ Propose Tags ]
Versions 0.4.0,,,,,,,,,,,,,,,,,,,,,,,
Dependencies array (>=0.3 && <0.5), base (==4.*), blaze‑html (==0.3.*), bytestring (==0.9.*), containers (>=0.3 && <0.5), ghc‑prim (==0.2.*), pretty (>=1.0 && <1.2), text (==0.10.*) [details]
License BSD-3-Clause
Author Manuel M T Chakravarty, Gabriele Keller, Sean Lee, Ben Lever, Trevor L. McDonell, Ryan Newtown, Sean Seefried
Maintainer Manuel M T Chakravarty <>
Category Compilers/Interpreters, Concurrency, Data, Parallelism
Home page
Bug tracker
Source repo head: git clone git://
Uploaded by ManuelChakravarty at Sat Jun 9 06:08:49 UTC 2012
Distributions LTSHaskell:, NixOS:, openSUSE:
Downloads 15014 total (104 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

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 currently doesn't support Char and Bool arrays.

An experimental OpenCL backend is available at and an experimental multicore CPU backend building on the Repa array library is available at

Known bugs:

For documentation, see the homepage and


  • Data
    • Array
      • Data.Array.Accelerate
        • Data.Array.Accelerate.AST
        • Analysis
          • Data.Array.Accelerate.Analysis.Shape
          • Data.Array.Accelerate.Analysis.Stencil
          • Data.Array.Accelerate.Analysis.Type
        • Array
          • Data.Array.Accelerate.Array.Data
          • Data.Array.Accelerate.Array.Representation
          • Data.Array.Accelerate.Array.Sugar
        • Data.Array.Accelerate.Interpreter
        • Data.Array.Accelerate.Pretty
        • Data.Array.Accelerate.Smart
        • Data.Array.Accelerate.Tuple
        • Data.Array.Accelerate.Type




Enable the LLVM backend (sequential)


Enable HTML and Graphviz pretty printing.


Enable bounds checking


Enable bounds checking in unsafe operations


Enable internal consistency checks


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