Examples programs using Accelerate
==================================
[](https://travis-ci.org/AccelerateHS/accelerate-examples)
[](https://hackage.haskell.org/package/accelerate-examples)
[](https://hub.docker.com/r/tmcdonell/accelerate-examples/)
[](https://microbadger.com/images/tmcdonell/accelerate-examples)
Example programs using the Accelerate library. If you add new features to the
base library or find a bug, please add a test case. The aim is for this program
to evolve and be useful for both performance and regression testing.
If you have found a bug, please report it to:
https://github.com/AccelerateHS/accelerate/issues
Installation
------------
### External dependencies
Installation of `accelerate-examples` and its dependencies requires several
external packages. You may need to adjust the package names or versions slightly
for your system.
* Ubuntu/Debian (apt-get):
- llvm-4.0-dev
- freeglut3-dev
- libfftw3-dev
* Mac OS ([homebrew](http://brew.sh/index.html))
- fftw
- libffi
- llvm-hs/homebrew-llvm/llvm-4.0
If you want to use the CUDA GPU enabled backend
[`accelerate-llvm-ptx`](https://github.com/AccelerateHS/accelerate-llvm), you
will also need to install the CUDA toolkit for your system. You can find an
installer on NVIDIA's website here:
* https://developer.nvidia.com/cuda-downloads
### stack
For development, the recommend build method is via the
[`stack`](http://haskellstack.org) tool. This will simplify pulling in
dependencies not yet on Hackage. For example, to build using ghc-8.0:
```bash
ln -s stack-8.0.yaml stack.yaml # only once
stack build # or, 'stack install' to install the executables globally
```
Before building, you may want to edit the `stack.yaml` file to change the build
configuration. In particular, the `flags` section at the bottom can be used to
enable or disable individual example programs and accelerate backends, as well
as features such as monitoring and debug output.
Adding new backends
-------------------
Adding support for new Accelerate backends should require only a few minor
additions to the cabal file and the module
'Data.Array.Accelerate.Examples.Internal.Backend'.