@hackage / accelerate-examples

Examples using the Accelerate library

Latest1.3.0.0

About

Metadata

  • Last updated , by TrevorMcDonell
  • License BSD-3-Clause
  • Categories Compilers and Interpreters, Parallelism, Concurrency
  • Maintained by: Trevor L. McDonell <trevor.mcdonell@gmail.com>

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 9.12.2
  2. 9.12.1
  3. 9.10.3
  4. 9.10.2
  5. 9.10.1
  6. 9.8.4
  7. 9.8.3
  8. 9.8.2
  9. 9.8.1
  10. 9.6.7
  11. 9.6.6
  12. 9.6.5
  13. 9.6.4
  14. 9.6.3
  15. 9.6.2
  16. 9.6.1
  17. 9.4.8
  18. 9.4.7
  19. 9.4.6
  20. 9.4.5
  21. 9.4.4
  22. 9.4.3
  23. 9.4.2
  24. 9.4.1
  25. 9.2.8
  26. 9.2.7
  27. 9.2.6
  28. 9.2.5
  29. 9.2.4
  30. 9.2.3
  31. 9.2.2
  32. 9.2.1
  33. 9.0.2
  34. 9.0.1
  35. 8.10.7
  36. 8.10.6
  37. 8.10.5
  38. 8.10.4
  39. 8.10.3
  40. 8.10.2
  41. 8.10.1
  42. 8.8.4
  43. 8.8.3
  44. 8.8.2
  45. 8.8.1
  46. 8.6.5
  47. 8.6.4
  48. 8.6.3
  49. 8.6.2
  50. 8.6.1

Package Flags

Use the -f option with cabal commands to enable flags

    gui (on by default)

    Enable gloss-based GUIs, where applicable. If not enabled, the application always runs in benchmark mode.

    ekg (on by default)

    Enable EKG remote monitoring server at http://localhost:8000

    codespeed (off by default)

    Enable upload of results to benchmark server

    llvm-cpu (on by default)

    Enable the LLVM backend for multicore CPUs

    llvm-ptx (on by default)

    Enable the LLVM PTX backend for NVIDIA GPUs

    smvm (on by default)

    Sparse-matrix vector multiplication benchmark

    crystal (on by default)

    A visualisation of a sum of waves in a plane

    tunnel (on by default)

    The slit-scan effect creating a Doctor Who time vortex

    canny (on by default)

    Canny edge detection benchmark

    mandelbrot (on by default)

    A Mandelbrot fractal benchmark

    julia (on by default)

    An interactive julia-set simulator

    fluid (on by default)

    An interactive particle-based fluid simulation

    nbody (on by default)

    Simulation of gravitational attraction between solid particles

    smoothlife (on by default)

    A cellular automata simulation

    hashcat (on by default)

    A "password recovery" application for MD5 cracking

    fft (on by default)

    Simple FFT-based high/low-pass image filtering

    pagerank (on by default)

    Implementation of the PageRank algorithm

    quicksort (on by default)

    Implementation of the QuickSort algorithm

    ray (on by default)

    A simple real-time ray tracer

    kmeans (on by default)

    An implementation of k-means clustering in a plane

Readme

henlo, my name is Theia

Example programs using Accelerate

GitHub CI Gitter
Stackage LTS Stackage Nightly Hackage
Docker Automated build Docker status

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:

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'.