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

An experimental OpenCL backend is available at https://github.com/HIPERFIT/accelerate-opencl and an experimental multicore CPU backend building on the Repa array library is available at https://github.com/blambo/accelerate-repa.

Known bugs: https://github.com/mchakravarty/accelerate/issues

  • New in 0.10.0.0: Complete sharing recovery for scalar expressions (but currently disabled by default). Also bug fixes in array sharing recovery and a few new convenience functions.

  • New in 0.9.0.0: Streaming, precompilation, Repa-style indices, stencils, more scans, rank-polymorphic fold, generate, block I/O & many bug fixes

  • New in 0.8.1.0: bug fixes and some performance tweaks

  • New in 0.8.0.0: replicate, slice and foldSeg supported in the CUDA backend; frontend and interpreter support for stencil; bug fixes

  • New in 0.7.1.0: the CUDA backend and a number of scalar functions

For documentation, see the homepage and https://github.com/mchakravarty/accelerate/wiki.

Modules

[Last Documentation]

  • Data
    • Array
      • Data.Array.Accelerate
        • Data.Array.Accelerate.AST
        • Analysis
          • Data.Array.Accelerate.Analysis.Shape
          • Data.Array.Accelerate.Analysis.Type
        • Array
          • Data.Array.Accelerate.Array.Data
          • Data.Array.Accelerate.Array.Representation
          • Data.Array.Accelerate.Array.Sugar
        • Data.Array.Accelerate.CUDA
        • Data.Array.Accelerate.IO
          • Data.Array.Accelerate.IO.ByteString
          • Data.Array.Accelerate.IO.Ptr
          • Data.Array.Accelerate.IO.Vector
        • Data.Array.Accelerate.Interpreter
        • Data.Array.Accelerate.Pretty
        • Data.Array.Accelerate.Smart
        • Data.Array.Accelerate.Tuple
        • Data.Array.Accelerate.Type

Flags

Automatic Flags
NameDescriptionDefault
llvm

Enable the LLVM backend (sequential)

Disabled
cuda

Enable the CUDA parallel backend for NVIDIA GPUs

Enabled
more-pp

Enable HTML and Graphviz pretty printing.

Disabled
pcache

Enable the persistent caching of the compiled CUDA modules (experimental)

Disabled
test-suite

Export extra test modules

Disabled
bounds-checks

Enable bounds checking

Enabled
unsafe-checks

Enable bounds checking in unsafe operations

Disabled
internal-checks

Enable internal consistency checks

Disabled
io

Provide access to the block copy I/O functionality

Disabled
inplaceDisabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.4.0, 0.5.0.0, 0.6.0.0, 0.7.1.0, 0.8.0.0, 0.8.1.0, 0.9.0.0, 0.9.0.1, 0.10.0.0, 0.12.0.0, 0.12.1.0, 0.12.2.0, 0.13.0.0, 0.13.0.1, 0.13.0.2, 0.13.0.3, 0.13.0.4, 0.13.0.5, 0.14.0.0, 0.15.0.0, 0.15.1.0, 1.0.0.0, 1.1.0.0, 1.1.1.0, 1.2.0.0, 1.2.0.1, 1.3.0.0
Dependencies array (>=0.3 && <0.5), base (>=4 && <5), binary (>=0.5 && <0.6), blaze-html (>=0.3 && <0.4), bytestring (>=0.9 && <0.10), containers (>=0.3 && <0.5), cuda (>=0.2.2), directory (>=1.0 && <1.2), fclabels (>=1.0 && <1.2), filepath (>=1.0 && <1.4), ghc-prim (>=0.2 && <0.3), language-c (>=0.3 && <0.5), llvm (>=0.6.8), mtl (>=2.0 && <2.1), pretty (>=1.0 && <1.2), text (>=0.10 && <0.11), transformers (>=0.2 && <0.3), unix (>=2.4 && <2.6), vector (>=0.9 && <0.10), zlib (>=0.5 && <0.5.3.2) [details]
License BSD-3-Clause
Author Manuel M T Chakravarty, Gabriele Keller, Sean Lee, Ben Lever, Trevor L. McDonell, Sean Seefried
Maintainer Manuel M T Chakravarty <chak@cse.unsw.edu.au>
Category Compilers/Interpreters, Concurrency, Data
Home page http://www.cse.unsw.edu.au/~chak/project/accelerate/
Bug tracker https://github.com/mchakravarty/accelerate/issues
Source repo head: git clone git://github.com/mchakravarty/accelerate.git
Uploaded by ManuelChakravarty at 2012-04-12T06:18:40Z
Distributions
Reverse Dependencies 44 direct, 10 indirect [details]
Downloads 31801 total (81 in the last 30 days)
Rating 2.5 (votes: 6) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2020-10-29 [all 10 reports]