accelerate-llvm-ptx: Accelerate backend generating LLVM

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

This library implements a backend for the Accelerate language which generates LLVM-IR targeting CUDA capable GPUs. For further information, refer to the main accelerate package.


Haskell dependencies are available from Hackage. The following external libraries are alse required:

Installing LLVM


Example using Homebrew on macOS:

brew install llvm-hs/homebrew-llvm/llvm-4.0

Debian & Ubuntu

For Debian/Ubuntu based Linux distributions, the website provides binary distribution packages. Check for instructions for adding the correct package database for your OS version, and then:

apt-get install llvm-4.0-dev

Building from source

If your OS does not have an appropriate LLVM distribution available, you can also build from source. Detailed build instructions are available on Make sure to include the cmake build options -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON so that the libLLVM shared library will be built. Also ensure that the LLVM_TARGETS_TO_BUILD option includes the NVPTX target (if not specified all targets are built).

Installing accelerate-llvm

To use accelerate-llvm it is important that the llvm-hs package is installed against the libLLVM shared library, rather than statically linked, so that we can use LLVM from GHCi and Template Haskell. This is the default configuration, but you can also enforce this explicitly by adding the following to your stack.yaml file:

    shared-llvm: true

Or by specifying the shared-llvm flag to cabal:

cabal install llvm-hs -fshared-llvm
Versions [RSS] [faq],,,,,,
Dependencies accelerate (==1.0.*), accelerate-llvm (==1.0.*), base (>=4.7 && <4.10), bytestring (>=0.9), containers (==0.5.*), cuda (>=0.7), directory (>=1.0), dlist (>=0.6), fclabels (>=2.0), filepath (>=1.0), hashable (>=1.2), llvm-hs (==4.0.*), llvm-hs-pure (==4.0.*), mtl (>=2.2.1), nvvm (>=0.7.5), pretty (>=1.1), time (>=1.4), unordered-containers (>=0.2) [details]
License BSD-3-Clause
Author Trevor L. McDonell
Maintainer Trevor L. McDonell <>
Revised Revision 2 made by TrevorMcDonell at 2017-05-18T01:09:57Z
Category Compilers/Interpreters, Concurrency, Data, Parallelism
Bug tracker
Source repo head: git clone
this: git clone
Uploaded by TrevorMcDonell at 2017-03-31T09:02:30Z
Distributions NixOS:
Downloads 5137 total (49 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]



Manual Flags

Automatic Flags

Use the NVVM library to generate optimised PTX


Enable debug tracing message flags. Note that debug must be enabled in the base accelerate package as well. See the accelerate package for usage and available options.


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


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees