packages feed

accelerate-0.13.0.1: accelerate.cabal

Name:                   accelerate
Version:                0.13.0.1
Cabal-version:          >= 1.6
Tested-with:            GHC >= 7.4.2
Build-type:             Custom

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
  interested in helping finish these, 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>
  .
  [/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.2 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 Repa arrays.
  .
    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
  .
  [/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>
  .
  [/Release notes/]
  .
    * /0.13.0.0:/ New array fusion optimisation. New foreign function
      interface for array and scalar expressions. Additional Prelude-like
      functions. New example programs. Bug fixes and performance improvements.
  .
    * /0.12.0.0:/ Full sharing recovery in scalar expressions and array
      computations. Two new example applications in package
      @accelerate-examples@: Real-time Canny edge detection and fluid flow
      simulator (both including a graphical frontend). Bug fixes.
  .
    * /0.11.0.0:/ New Prelude-like functions @zip*@, @unzip*@,
      @fill@, @enumFrom*@, @tail@, @init@, @drop@, @take@, @slit@, @gather*@,
      @scatter*@, and @shapeSize@. New simplified AST (in package
      @accelerate-backend-kit@) for backend writers who want to avoid the
      complexities of the type-safe AST.
  .
    * /0.10.0.0:/ Complete sharing recovery for scalar expressions (but
      currently disabled by default). Also bug fixes in array sharing recovery
      and a few new convenience functions.
  .
    * /0.9.0.0:/ Streaming, precompilation, Repa-style indices,
      @stencil@s, more @scan@s, rank-polymorphic @fold@, @generate@, block I/O &
      many bug fixes.
  .
    * /0.8.1.0:/ Bug fixes and some performance tweaks.
  .
    * /0.8.0.0:/ @replicate@, @slice@ and @foldSeg@ supported in the
      CUDA backend; frontend and interpreter support for @stencil@. Bug fixes.
  .
    * /0.7.1.0:/ The CUDA backend and a number of scalar functions.
  .

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-tmp-files:        config.status
                        config.log
                        autom4te.cache
                        accelerate.buildinfo

Extra-source-files:     INSTALL
                        configure
                        accelerate.buildinfo.in
                        include/accelerate.h

Flag debug
  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
  Include-Dirs:         include
  Build-depends:        base            == 4.*,
                        ghc-prim,
                        array           >= 0.3  && < 0.5,
                        containers      >= 0.3  && < 0.6,
                        fclabels        >= 1.0  && < 1.2,
                        hashable        >= 1.1  && < 1.3,
                        hashtables      >= 1.0  && < 1.2,
                        pretty          >= 1.0  && < 1.2

  if flag(more-pp)
    Build-depends:      bytestring      >= 0.9  && < 0.11,
                        blaze-html      >= 0.5  && < 0.7,
                        blaze-markup    >= 0.5  && < 0.6,
                        directory       >= 1.0  && < 1.3,
                        filepath        >= 1.0  && < 1.4,
                        mtl             >= 2.0  && < 2.2,
                        text            >= 0.10 && < 0.12,
                        unix            >= 2.4  && < 2.7

  Exposed-modules:      Data.Array.Accelerate
                        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.Interpreter
                        Data.Array.Accelerate.Pretty
                        Data.Array.Accelerate.Smart
                        Data.Array.Accelerate.Trafo
                        Data.Array.Accelerate.Trafo.Sharing
                        Data.Array.Accelerate.Tuple
                        Data.Array.Accelerate.Type

  Other-modules:        Data.Array.Accelerate.Array.Delayed
                        Data.Array.Accelerate.Internal.Check
                        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.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 head
  Type:                 git
  Location:             git://github.com/AccelerateHS/accelerate.git