Examples using the Accelerate library.
Example programs using the Accelerate library. The aim is for this package to evolve and be useful for both performance and regression testing.
Refer to the main Accelerate package for more information: http://hackage.haskell.org/package/accelerate
Example programs using the Accelerate library. The aim is for this package to evolve and be useful for both performance and regression testing.
Contributions and bug reports are welcome!
Please feel free to contact me through GitHub or gitter.im.
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-9-dev
- freeglut3-dev
- libfftw3-dev
Mac OS (homebrew)
- fftw
- libffi
- llvm-hs/homebrew-llvm/llvm-9
If you want to use the CUDA GPU enabled backend accelerate-llvm-ptx
, 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
Building: stack
For development, the recommend build method is via the stack
tool. This will simplify pulling in dependencies not yet on Hackage. For example, to build using ghc-8.10:
ln -s stack-8.10.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'.