Install from GitHub

Checkout & Build

The recommend way to build and install the development version of Accelerate is to use the stack build tool. This will automatically pull in other in-development Accelerate packages from GitHub, as well as dependencies from Hackage. stack can also be used to download and install an appropriate version of GHC. Instructions and downloads for installing stack are available for several operating systems and distributions on the haskellstack.org website.

Note that you will still need to install necessary external libraries, such as LLVM, as described on the getting started page.

For example, to build the development version of the LLVM backends:

  1. Download the sources for accelerate-llvm:

    git clone https://github.com/AccelerateHS/accelerate-llvm.git
  2. We maintain stack configurations for several GHC releases. Change directory to the newly downloaded sources and tell stack which version of GHC you would like to compile for by creating a symlink to the appropriate file named stack.yaml. For example, to use GHC-8.0:

    cd accelerate-llvm
    ln -s stack-8.0.yaml stack.yaml
  3. If you wish to make any changes to the build configuration, now is a good time to open the stack.yaml file in a text editor and make the necessary changes. For example:

    • If you do not have a CUDA capable GPU, you will not be able to build the accelerate-llvm-ptx package, in which case it is worthwhile commenting that out from the packages: stanza.

    • You can enable (or disable) building the Accelerate packages with extra debugging information by changing the flags: stanza at the bottom of the file.

  4. Allow stack to fetch any prerequisites, including an appropriate version of GHC if necessary:

    stack setup
  5. Build the LLVM backends:

    stack build

If you want to load the sources into ghci, use the command stack exec ghci.

List of GitHub repositories

Core packages:

  • accelerate: Core language and compiler
  • accelerate-llvm: LLVM-based backends targeting multicore CPUs and CUDA GPUs
  • accelerate-io: Fast conversions between Accelerate arrays and other array formats (including repa and vector)
  • accelerate-fft: Fast Fourier transform implementation, with FFI bindings to optimised implementations
  • accelerate-examples: Computational kernels and applications showcasing the use of Accelerate as well as a regression test suite

Libraries:

Deprecated:

Further information

  • A meta-repository containing stack configurations pointing to the most recent development versions of all packages we maintain is available here. Its purpose is mostly to ensure that all packages build together successfully, which you can check via the travis build log.