packages feed

accelerate-examples-1.1.0.0: README.md

Examples programs using Accelerate
==================================

[![Build Status](https://travis-ci.org/AccelerateHS/accelerate-examples.svg?branch=master)](https://travis-ci.org/AccelerateHS/accelerate-examples)
[![Hackage](https://img.shields.io/hackage/v/accelerate-examples.svg)](https://hackage.haskell.org/package/accelerate-examples)
[![Docker Automated build](https://img.shields.io/docker/automated/tmcdonell/accelerate-examples.svg)](https://hub.docker.com/r/tmcdonell/accelerate-examples/)
[![Docker status](https://images.microbadger.com/badges/image/tmcdonell/accelerate-examples.svg)](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'.