packages feed

accelerate-examples-1.2.0.1: accelerate-examples.cabal

Name:                   accelerate-examples
Version:                1.2.0.1
Cabal-version:          >=1.8
Tested-with:            GHC >= 7.8
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:
    README.md
    data/matrices/README.md
    examples/canny/README.md
    examples/fluid/README.md
    examples/hashcat/README.md
    examples/kmeans/README.md
    examples/mandelbrot/README.md
    examples/pagerank/README.md
    examples/ray/README.md

-- Flags that control features of the benchmark programs
--
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 codespeed
  Description:          Enable upload of results to benchmark server
  Default:              False

-- Flags that control which Accelerate backends that are linked against
--
Flag llvm-cpu
  Description:          Enable the LLVM backend for multicore CPUs
  Default:              True

Flag llvm-ptx
  Description:          Enable the LLVM PTX backend for NVIDIA GPUs
  Default:              True

-- Flags to specify which programs to build
--
Flag smvm
  Description:          Sparse-matrix vector multiplication benchmark
  Default:              True

Flag crystal
  Description:          A visualisation of a sum of waves in a plane
  Default:              True

Flag tunnel
  Description:          The slit-scan effect creating a Doctor Who time vortex
  Default:              True

Flag canny
  Description:          Canny edge detection benchmark
  Default:              True

Flag mandelbrot
  Description:          A Mandelbrot fractal benchmark
  Default:              True

Flag fluid
  Description:          An interactive particle-based fluid simulation
  Default:              True

Flag nbody
  Description:          Simulation of gravitational attraction between solid particles
  Default:              True

Flag smoothlife
  Description:          A cellular automata simulation
  Default:              True

Flag hashcat
  Description:          A "password recovery" application for MD5 cracking
  Default:              True

Flag fft
  Description:          Simple FFT-based high/low-pass image filtering
  Default:              True

Flag pagerank
  Description:          Implementation of the PageRank algorithm
  Default:              True

Flag ray
  Description:          A simple real-time ray tracer
  Default:              True

Flag kmeans
  Description:          An implementation of k-means clustering in a plane
  Default:              True


-- Test harness
-- ------------

Library
  hs-source-dirs:       lib
  Build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , ansi-wl-pprint                  >= 0.6
        , containers                      >= 0.5
        , criterion                       >= 1.0
        , directory                       >= 1.1
        , fclabels                        >= 2.0
        , HUnit                           >= 1.2
        , linear                          >= 1.1
        , mwc-random                      >= 0.8
        , QuickCheck                      >= 2.7
        , test-framework                  >= 0.5
        , test-framework-hunit            >= 0.3
        , test-framework-quickcheck2      >= 0.2

  Exposed-modules:
        Data.Array.Accelerate.Examples.Internal

  Other-modules:
        Data.Array.Accelerate.Examples.Internal.Backend
        Data.Array.Accelerate.Examples.Internal.Criterion
        Data.Array.Accelerate.Examples.Internal.Criterion.Config
        Data.Array.Accelerate.Examples.Internal.Interactive
        Data.Array.Accelerate.Examples.Internal.Monitoring
        Data.Array.Accelerate.Examples.Internal.ParseArgs
        Data.Array.Accelerate.Examples.Internal.Random.Array
        Data.Array.Accelerate.Examples.Internal.Report
        Data.Array.Accelerate.Examples.Internal.Similar
        Data.Array.Accelerate.Examples.Internal.TestFramework
        Data.Array.Accelerate.Examples.Internal.TestFramework.Config
        Data.Array.Accelerate.Examples.Internal.Util

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

  if flag(gui)
    CPP-options:        -DACCELERATE_ENABLE_GUI

  if flag(llvm-cpu)
    CPP-options:        -DACCELERATE_LLVM_NATIVE_BACKEND
    build-depends:
        accelerate-llvm-native            >= 1.2

  if flag(llvm-ptx)
    CPP-options:        -DACCELERATE_LLVM_PTX_BACKEND
    build-depends:
        accelerate-llvm-ptx               >= 1.2

  if flag(ekg)
    CPP-options:        -DACCELERATE_ENABLE_EKG

  if flag(codespeed)
    CPP-options:        -DACCELERATE_ENABLE_CODESPEED
    build-depends:
          aeson                           >= 0.8
        , bytestring                      >= 0.10
        , HTTP                            >= 4000.2
        , http-types                      >= 0.8
        , network                         >= 2.5
        , process                         >= 1.0
        , statistics                      >= 0.13
        , template-haskell                >= 2.2
        , text                            >= 0.11
        , time                            >= 1.4

    other-modules:
        Data.Array.Accelerate.Examples.Internal.Codespeed
        Data.Array.Accelerate.Examples.Internal.TH


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

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

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(smvm)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-io                   >= 1.1
        , fclabels                        >= 2.0
        , matrix-market-attoparsec        >= 0.1
        , mwc-random                      >= 0.8
        , scientific                      >= 0.3
        , vector                          >= 0.7
        , vector-algorithms               >= 0.4


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(crystal)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , colour-accelerate               >= 0.1
        , fclabels                        >= 2.0
        , gloss-raster-accelerate         >= 2.0


-- The slit-scan effect creating a Doctor Who time vortex
-- ------------------------------------------------------

Executable accelerate-tunnel
  hs-source-dirs:       examples/tunnel
  Main-is:              Main.hs
  other-modules:        Config

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(tunnel)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , fclabels                        >= 2.0
        , gloss-raster-accelerate         >= 2.0
        , lens-accelerate                 >= 0.1
        , linear-accelerate               >= 0.3


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

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

  ghc-options:
        -Wall
        -threaded
        -O2
        -fmax-simplifier-iterations=20
        -fsimplifier-phases=3
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(canny)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-io                   >= 1.2
        , colour-accelerate               >= 0.1
        , fclabels                        >= 2.0
        , repa                            >= 3.1
        , repa-io                         >= 3.1
        , vector                          >= 0.7


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(mandelbrot)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-io                   >= 1.2
        , colour-accelerate               >= 0.1
        , fclabels                        >= 2.0
        , gloss                           >= 1.7
        , gloss-accelerate                >= 2.0


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(fluid)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-io                   >= 1.2
        , bmp                             >= 1.2
        , colour-accelerate               >= 0.1
        , fclabels                        >= 2.0
        , gloss                           >= 1.9
        , gloss-rendering                 >= 1.9


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(nbody)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , fclabels                        >= 2.0
        , gloss                           >= 1.7
        , lens-accelerate                 >= 0.1
        , linear-accelerate               >= 0.3
        , mwc-random                      >= 0.8


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(smoothlife)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-fft                  >= 1.2
        , colour-accelerate               >= 0.1
        , fclabels                        >= 2.0
        , gloss                           >= 1.7
        , gloss-accelerate                >= 2.0
        , mwc-random                      >= 0.8


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(hashcat)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , bytestring                      >= 0.9
        , bytestring-lexing               >= 0.5
        , cereal                          >= 0.3
        , criterion                       >= 1.0
        , criterion-measurement           >= 0.1
        , fclabels                        >= 2.0
        , mwc-random                      >= 0.8


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

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

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(fft)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-fft                  >= 1.2
        , accelerate-io                   >= 1.2
        , colour-accelerate               >= 0.1
        , fclabels                        >= 2.0
        , filepath                        >= 1.0

-- PageRank
-- --------

Executable accelerate-pagerank
  hs-source-dirs:       examples/pagerank
  Main-is:              Main.hs
  other-modules:
        Config
        Count
        Load
        Page
        Progress
        Rank
        Step

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(pagerank)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , accelerate-io                   >= 1.2
        , bytestring                      >= 0.9.2
        , containers                      >= 0.4.2
        , directory                       >= 1.1
        , fclabels                        >= 1.0
        , vector                          >= 0.9
        , vector-algorithms               >= 0.5.4


-- Ray tracer
-- ----------

Executable accelerate-ray
  hs-source-dirs:       examples/ray
  Main-is:              Main.hs
  other-modules:
        Common.Type
        Config
        Gloss.Draw
        Gloss.Event
        Ray.Intersect
        Ray.Trace
        Scene.Light
        Scene.Object
        Scene.State
        Scene.World

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(ray)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , colour-accelerate               >= 0.1
        , fclabels                        >= 1.0
        , gloss                           >= 1.8
        , gloss-accelerate                >= 2.0
        , gloss-raster-accelerate         >= 2.0
        , lens-accelerate                 >= 0.1
        , linear-accelerate               >= 0.3


-- K-means
-- -------

Executable accelerate-kmeans
  hs-source-dirs:       examples/kmeans
  Main-is:              Main.hs
  other-modules:        Config Kmeans

  ghc-options:
        -Wall
        -threaded
        -eventlog
        -rtsopts
        -with-rtsopts=-n2M
        -with-rtsopts=-A64M
        -with-rtsopts=-qg

  ghc-prof-options:
        -auto-all

  if flag(ekg)
    ghc-options:        -with-rtsopts=-T

  if !flag(kmeans)
    buildable:          False
  else
    build-depends:
          base                            >= 4.7 && < 4.13
        , accelerate                      >= 1.2
        , accelerate-examples
        , binary                          >= 0.7
        , directory                       >= 1.1
        , fclabels                        >= 1.0
        , normaldistribution
        , random


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

source-repository this
  type:                 git
  tag:                  v1.2.0.1
  location:             https://github.com/AccelerateHS/accelerate-examples

-- vim: nospell