File 1.cabal of Package ghc-accelerate

Name:                   accelerate
Version:                0.15.1.0
x-revision: 1
Cabal-version:          >= 1.8
Tested-with:            GHC >= 7.8
Build-type:             Simple

Synopsis:               An embedded language for accelerated array processing

Description:
  @Data.Array.Accelerate@ defines an embedded array language for computations
  for high-performance computing in Haskell. Computations on multi-dimensional,
  regular arrays are expressed in the form of parameterised collective
  operations, such as maps, reductions, and permutations. These computations may
  then be online compiled and executed on a range of architectures.
  .
  [/A simple example/]
  .
  As a simple example, consider the computation of a dot product of two vectors
  of floating point numbers:
  .
  > dotp :: Acc (Vector Float) -> Acc (Vector Float) -> Acc (Scalar Float)
  > dotp xs ys = fold (+) 0 (zipWith (*) xs ys)
  .
  Except for the type, this code is almost the same as the corresponding Haskell
  code on lists of floats. The types indicate that the computation may be
  online-compiled for performance - for example, using
  @Data.Array.Accelerate.CUDA@ it may be on-the-fly off-loaded to the GPU.
  .
  [/Available backends/]
  .
  Currently, there are two backends:
  .
    1. An interpreter that serves as a reference implementation of the intended
       semantics of the language, which is included in this package.
  .
    2. A CUDA backend generating code for CUDA-capable NVIDIA GPUs:
       <http://hackage.haskell.org/package/accelerate-cuda>
  .
  Several experimental and/or incomplete backends also exist. If you are
  particularly interested in any of these, especially with helping to finish
  them, please contact us.
  .
    1. Cilk\/ICC and OpenCL: <https://github.com/AccelerateHS/accelerate-backend-kit>
  .
    2. Another OpenCL backend: <https://github.com/HIPERFIT/accelerate-opencl>
  .
    3. A backend to the Repa array library: <https://github.com/blambo/accelerate-repa>
  .
    4. An infrastructure for generating LLVM code, with backends targeting
       multicore CPUs and NVIDIA GPUs: <https://github.com/AccelerateHS/accelerate-llvm/>
  .
  [/Additional components/]
  .
  The following support packages are available:
  .
    1. @accelerate-cuda@: A high-performance parallel backend targeting
       CUDA-enabled NVIDIA GPUs. Requires the NVIDIA CUDA SDK and, for full
       functionality, hardware with compute capability 1.1 or greater. See the
       table on Wikipedia for supported GPUs:
       <http://en.wikipedia.org/wiki/CUDA#Supported_GPUs>
  .
    2. @accelerate-examples@: Computational kernels and applications showcasing
       /Accelerate/, as well as performance and regression tests.
  .
    3. @accelerate-io@: Fast conversion between /Accelerate/ arrays and other
       formats, including 'vector' and 'repa'.
  .
    4. @accelerate-fft@: Computation of Discrete Fourier Transforms.
  .
  Install them from Hackage with @cabal install PACKAGE@
  .
  [/Examples and documentation/]
  .
  Haddock documentation is included in the package, and a tutorial is available
  on the GitHub wiki: <https://github.com/AccelerateHS/accelerate/wiki>
  .
  The @accelerate-examples@ package demonstrates a range of computational
  kernels and several complete applications, including:
  .
    * An implementation of the Canny edge detection algorithm
  .
    * An interactive Mandelbrot set generator
  .
    * A particle-based simulation of stable fluid flows
  .
    * An /n/-body simulation of gravitational attraction between solid particles
  .
    * A cellular automata simulation
  .
    * A \"password recovery\" tool, for dictionary lookup of MD5 hashes
  .
    * A simple interactive ray tracer
  .
  [/Mailing list and contacts/]
  .
    * Mailing list: <accelerate-haskell@googlegroups.com> (discussion of both
      use and development welcome).
  .
    * Sign up for the mailing list here:
      <http://groups.google.com/group/accelerate-haskell>
  .
    * Bug reports and issue tracking:
      <https://github.com/AccelerateHS/accelerate/issues>
  .
  [/Hackage note/]
  .
  The module documentation list generated by Hackage is incorrect. The only
  exposed modules should be:
  .
    * "Data.Array.Accelerate"
  .
    * "Data.Array.Accelerate.Interpreter"
  .
    * "Data.Array.Accelerate.Data.Complex"
  .

License:                BSD3
License-file:           LICENSE
Author:                 Manuel M T Chakravarty,
                        Robert Clifton-Everest,
                        Gabriele Keller,
                        Sean Lee,
                        Ben Lever,
                        Trevor L. McDonell,
                        Ryan Newtown,
                        Sean Seefried
Maintainer:             Manuel M T Chakravarty <chak@cse.unsw.edu.au>
Homepage:               https://github.com/AccelerateHS/accelerate/
Bug-reports:            https://github.com/AccelerateHS/accelerate/issues

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

Extra-source-files:     changelog.md

Flag debug
  Default:              False
  Description:
    Enable tracing message flags. These are read from the command-line
    arguments, which is convenient but may cause problems interacting with the
    user program, so are disabled by default. The available options are:
    .
    * -ddump-sharing: print sharing recovery information
    .
    * -ddump-simpl-stats: dump statistics counts from the simplifier phase
    .
    * -ddump-simpl-iterations: dump the program after each iteration of the simplifier
    .
    * -dverbose: other, uncategorised messages
    .

Flag more-pp
  Description:          Enable HTML and Graphviz pretty printing.
  Default:              False

Flag bounds-checks
  Description:          Enable bounds checking
  Default:              True

Flag unsafe-checks
  Description:          Enable bounds checking in unsafe operations
  Default:              False

Flag internal-checks
  Description:          Enable internal consistency checks
  Default:              False

Library
  Build-depends:        array                   >= 0.3  && < 0.6,
                        base                    >= 4.7  && < 4.10,
                        containers              >= 0.3  && < 0.6,
                        unordered-containers    >= 0.2  && < 0.3,
                        fclabels                >= 2.0  && < 2.1,
                        ghc-prim,
                        hashable                >= 1.1  && < 1.3,
                        hashtables              >= 1.0  && < 1.3,
                        pretty                  >= 1.0  && < 1.2,
                        template-haskell

  if flag(more-pp)
    Build-depends:      bytestring              >= 0.9,
                        blaze-html              >= 0.5,
                        blaze-markup            >= 0.5,
                        directory               >= 1.0,
                        filepath                >= 1.0,
                        mtl                     >= 2.0,
                        text                    >= 0.10,
                        unix                    >= 2.4

  Exposed-modules:
                        -- The core language and reference implementation
                        Data.Array.Accelerate
                        Data.Array.Accelerate.Interpreter

                        -- Prelude-like
                        Data.Array.Accelerate.Data.Complex

                        -- For backend development
                        Data.Array.Accelerate.AST
                        Data.Array.Accelerate.Analysis.Match
                        Data.Array.Accelerate.Analysis.Shape
                        Data.Array.Accelerate.Analysis.Stencil
                        Data.Array.Accelerate.Analysis.Type
                        Data.Array.Accelerate.Array.Data
                        Data.Array.Accelerate.Array.Representation
                        Data.Array.Accelerate.Array.Sugar
                        Data.Array.Accelerate.Debug
                        Data.Array.Accelerate.Error
                        Data.Array.Accelerate.Pretty
                        Data.Array.Accelerate.Smart
                        Data.Array.Accelerate.Trafo
                        Data.Array.Accelerate.Tuple
                        Data.Array.Accelerate.Type

  Other-modules:        Data.Array.Accelerate.Language
                        Data.Array.Accelerate.Prelude
                        Data.Array.Accelerate.Pretty.Print
                        Data.Array.Accelerate.Pretty.Traverse
                        Data.Array.Accelerate.Trafo.Algebra
                        Data.Array.Accelerate.Trafo.Base
                        Data.Array.Accelerate.Trafo.Fusion
                        Data.Array.Accelerate.Trafo.Rewrite
                        Data.Array.Accelerate.Trafo.Sharing
                        Data.Array.Accelerate.Trafo.Shrink
                        Data.Array.Accelerate.Trafo.Simplify
                        Data.Array.Accelerate.Trafo.Substitution

  if flag(more-pp)
    Other-modules:      Data.Array.Accelerate.Pretty.HTML
                        Data.Array.Accelerate.Pretty.Graphviz

  if flag(debug)
    cpp-options:        -DACCELERATE_DEBUG

  if flag(bounds-checks)
    cpp-options:        -DACCELERATE_BOUNDS_CHECKS

  if flag(unsafe-checks)
    cpp-options:        -DACCELERATE_UNSAFE_CHECKS

  if flag(internal-checks)
    cpp-options:        -DACCELERATE_INTERNAL_CHECKS

  ghc-options:          -O2 -Wall -funbox-strict-fields -fno-warn-name-shadowing
  ghc-prof-options:     -caf-all -auto-all

  if impl(ghc >= 7.0)
    ghc-options:        -fspec-constr-count=25

  -- Don't add the extensions list here. Instead, place individual LANGUAGE
  -- pragmas in the files that require a specific extension. This means the
  -- project loads in GHCi, and avoids extension clashes.
  --
  -- Extensions:

Source-repository this
  type:                 git
  location:             git://github.com/AccelerateHS/accelerate.git
  branch:               release/0.15
  tag:                  0.15.1.0

openSUSE Build Service is sponsored by