packages feed

accelerate-examples-0.14.0.0: accelerate-examples.cabal

Name:                   accelerate-examples
Version:                0.14.0.0
Cabal-version:          >=1.6
Tested-with:            GHC == 7.6.*
Build-type:             Simple

Synopsis:               Examples using the Accelerate library
Description:
  This package demonstrates a number of computation kernels and applications
  showcasing the /Accelerate/ language and associated backend implementations.
  It is also used for performance and regression testing.
  .
  Refer to the main /Accelerate/ package for more information:
  <http://hackage.haskell.org/package/accelerate>
  .

License:                BSD3
License-file:           LICENSE
Author:                 The Accelerate Team
Maintainer:             Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
Homepage:               https://github.com/AccelerateHS/accelerate-examples
Bug-reports:            https://github.com/AccelerateHS/accelerate/issues

Category:               Compilers/Interpreters, Concurrency, Data, Parallelism
Stability:              Experimental

Extra-source-files:     data/hashcat/README.md
                        data/matrices/README.md

Flag gui
  Description:          Enable gloss-based GUIs, where applicable. If not
                        enabled, the application always runs in benchmark mode.
  Default:              True

Flag ekg
  Description:          Enable EKG remote monitoring server at <http://localhost:8000>
  Default:              True

Flag cuda
  Description:          Enable the CUDA parallel backend for NVIDIA GPUs
  Default:              True

Flag opencl
  Description:          Enable the OpenCL parallel backend
  Default:              False


-- Flags to specify which programs to build (all true by default)
--
Flag nofib
Flag smvm
Flag crystal
Flag canny
Flag mandelbrot
Flag fluid
Flag nbody
Flag smoothlife
Flag hashcat
Flag fft


-- The main test program. This includes randomised quickcheck testing for array
-- primitives, unit tests, imaginary/spectral/real programs, and benchmarks.
--
-- TODO: add an analysis script to scrape benchmark results
--
Executable accelerate-nofib
  Main-is:              Main.hs
  hs-source-dirs:       lib
                        examples/nofib
                        examples/smvm

  other-modules:        Config ParseArgs Monitoring
                        QuickCheck.Arbitrary.Array
                        QuickCheck.Arbitrary.Shape
                        Test.Base
                        Test.IO
                        Test.IO.Ptr
                        Test.IO.Vector
                        Test.Imaginary
                        Test.Imaginary.DotP
                        Test.Imaginary.SASUM
                        Test.Imaginary.SAXPY
                        Test.Prelude
                        Test.Prelude.Filter
                        Test.Prelude.IndexSpace
                        Test.Prelude.Mapping
                        Test.Prelude.PrefixSum
                        Test.Prelude.Reduction
                        Test.Prelude.Replicate
                        Test.Prelude.Stencil
                        Test.Sharing
                        Test.Spectral
                        Test.Spectral.BlackScholes
                        Test.Spectral.SMVM
                        Test.Spectral.RadixSort

  ghc-options:          -Wall -O2
                        -threaded
                        -fpedantic-bottoms
                        -fno-full-laziness
                        -fno-excess-precision

  ghc-prof-options:     -auto-all

  extra-libraries:      stdc++
  c-sources:            examples/nofib/Test/IO/fill_with_values.cpp
                        examples/nofib/Test/Spectral/BlackScholes.cpp

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(cuda)
    CPP-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda                 == 0.14.*
    other-modules:      Test.Foreign

  if flag(opencl)
    CPP-options:        -DACCELERATE_OPENCL_BACKEND
    build-depends:      accelerate-opencl               == 0.1.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                             >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(nofib)
    buildable:          False
  else
    build-depends:      accelerate                      == 0.14.*,
                        accelerate-io                   == 0.14.*,
                        base                            == 4.6.*,
                        array                           >= 0.3,
                        containers                      >= 0.5,
                        criterion                       >= 0.5          && < 0.9,
                        fclabels                        >= 2.0          && < 2.1,
                        HUnit                           >= 1.2          && < 1.3,
                        QuickCheck                      >= 2.0          && < 2.7,
                        test-framework                  >= 0.5          && < 0.9,
                        test-framework-hunit            >= 0.3          && < 0.4,
                        test-framework-quickcheck2      >= 0.2          && < 0.4,
                        random


-- Sparse matrix vector multiplication
-- -----------------------------------

Executable accelerate-smvm
  hs-source-dirs:       examples/smvm lib
  Main-is:              Main.hs
  other-modules:        ParseArgs Monitoring
                        Config
                        Matrix
                        MatrixMarket
                        SMVM

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if impl(ghc >= 7.6)
    ghc-options:        -fsimpl-tick-factor=130

  if flag(cuda)
    CPP-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(opencl)
    CPP-options:        -DACCELERATE_OPENCL_BACKEND
    build-depends:      accelerate-opencl       == 0.1.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(smvm)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        base                    == 4.6.*,
                        attoparsec              >= 0.10         && < 0.11,
                        bytestring              >= 0.9          && < 0.11,
                        bytestring-lexing       >= 0.2          && < 0.5,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        primitive               >= 0.5          && < 0.6,
                        mwc-random              >= 0.8          && < 0.14,
                        vector                  >= 0.7          && < 0.11,
                        vector-algorithms       >= 0.4          && < 0.6


-- A quasicrystal demo as the sum of waves in a plane
-- --------------------------------------------------

Executable accelerate-crystal
  hs-source-dirs:       examples/crystal lib
  Main-is:              Main.hs
  other-modules:        Config ParseArgs Monitoring

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(gui)
    CPP-options:        -DACCELERATE_ENABLE_GUI

  if flag(cuda)
    CPP-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(opencl)
    CPP-options:        -DACCELERATE_OPENCL_BACKEND
    build-depends:      accelerate-opencl       == 0.1.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(crystal)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        base                    == 4.6.*,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        gloss-raster-accelerate >= 1.8          && < 1.9


-- Image edge detection
-- --------------------

Executable accelerate-canny
  hs-source-dirs:       examples/canny/src-acc lib
  Main-is:              Main.hs
  other-modules:        Config ParseArgs Canny Wildfire Monitoring

  ghc-options:          -Wall -threaded -Odph -fllvm -optlo-O3
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(cuda)
    CPP-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(opencl)
    CPP-options:        -DACCELERATE_OPENCL_BACKEND
    build-depends:      accelerate-opencl       == 0.1.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(canny)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        accelerate-io           == 0.14.*,
                        base                    == 4.6.*,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        repa                    >= 3.1          && < 3.3,
                        repa-io                 >= 3.1          && < 3.3,
                        vector                  >= 0.7          && < 0.11


-- A simple mandelbrot generator
-- -----------------------------

Executable accelerate-mandelbrot
  hs-source-dirs:       examples/mandelbrot lib
  Main-is:              Main.hs
  other-modules:        Config World Mandel ParseArgs Monitoring

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(gui)
    CPP-options:        -DACCELERATE_ENABLE_GUI

  if flag(cuda)
    CPP-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(opencl)
    CPP-options:        -DACCELERATE_OPENCL_BACKEND
    build-depends:      accelerate-opencl       == 0.1.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(mandelbrot)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        accelerate-fft          == 0.14.*,
                        accelerate-io           == 0.14.*,
                        base                    == 4.6.*,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        gloss                   >= 1.7          && < 1.9,
                        gloss-accelerate        >= 1.7          && < 1.9


-- A stable fluid simulation
-- -------------------------

Executable accelerate-fluid
  Main-is:              Main.hs
  hs-source-dirs:       examples/fluid/src-acc lib
  other-modules:        Config ParseArgs Monitoring
                        Event
                        Fluid
                        Type
                        World

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(gui)
    CPP-options:        -DACCELERATE_ENABLE_GUI

  if flag(cuda)
    cpp-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(fluid)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        accelerate-io           == 0.14.*,
                        base                    == 4.6.*,
                        bmp                     >= 1.2,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        gloss                   >= 1.7          && < 1.9


-- Simulation of gravitational attraction between solid particles
-- --------------------------------------------------------------

Executable accelerate-nbody
  Main-is:              Main.hs
  hs-source-dirs:       examples/n-body lib
  other-modules:        Config ParseArgs Monitoring
                        Common.Body
                        Common.Dump
                        Common.Tree
                        Common.Type
                        Common.Util
                        Common.World
                        Gloss.Draw
                        Gloss.Event
                        Gloss.Simulate
                        Random.Array
                        Random.Position
                        Solver.BarnsHut
                        Solver.Naive1
                        Solver.Naive2

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(gui)
    cpp-options:        -DACCELERATE_ENABLE_GUI

  if flag(cuda)
    cpp-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(nbody)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        base                    == 4.6.*,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        gloss                   >= 1.7          && < 1.9,
                        mwc-random              >= 0.8          && < 0.14


-- A celular automata
-- ------------------

Executable accelerate-smoothlife
  Main-is:              Main.hs
  hs-source-dirs:       examples/smoothlife lib
  other-modules:        Config ParseArgs Monitoring
                        SmoothLife
                        Gloss.Draw
                        Gloss.Event
                        Gloss.Simulate
                        Random.Array
                        Random.Splat

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(gui)
    cpp-options:        -DACCELERATE_ENABLE_GUI

  if flag(cuda)
    cpp-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(smoothlife)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        accelerate-fft          == 0.14.*,
                        accelerate-io           == 0.14.*,
                        base                    == 4.6.*,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        gloss                   >= 1.7          && < 1.9,
                        gloss-accelerate        >= 1.7          && < 1.9,
                        mwc-random              >= 0.8          && < 0.14


-- A password recovery tool
-- ------------------------

Executable accelerate-hashcat
  Main-is:              Main.hs
  hs-source-dirs:       examples/hashcat lib
  other-modules:        Config ParseArgs Monitoring
                        Digest
                        MD5
                        Util

  ghc-options:          -O2 -Wall -threaded
  ghc-prof-options:     -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(cuda)
    cpp-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG
    build-depends:      ekg                     >= 0.3          && < 0.4
    ghc-options:        -with-rtsopts=-T

  if !flag(hashcat)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        base                    == 4.6.*,
                        bytestring              >= 0.9          && < 0.11,
                        bytestring-lexing       >= 0.2          && < 0.5,
                        cereal                  >= 0.3          && < 0.5,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        mwc-random              >= 0.8          && < 0.14

-- FFT examples
-- ------------

Executable accelerate-fft
  Main-is:              Main.hs
  hs-source-dirs:       examples/fft/src-acc lib
  other-modules:        Config
                        ParseArgs
                        HighPass
                        FFT

  ghc-options:          -O2 -Wall -threaded
  if impl(ghc >= 7.0)
    ghc-options:        -rtsopts

  if flag(cuda)
    cpp-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:      accelerate-cuda         == 0.14.*

  if !flag(fft)
    buildable:          False
  else
    build-depends:      accelerate              == 0.14.*,
                        accelerate-io           == 0.14.*,
                        accelerate-fft          == 0.14.*,
                        base                    == 4.6.*,
                        criterion               >= 0.5          && < 0.9,
                        fclabels                >= 2.0          && < 2.1,
                        filepath                >= 1.0


source-repository head
  type:                 git
  location:             https://github.com/AccelerateHS/accelerate-examples

-- vim: nospell
--