packages feed

accelerate-0.10.0.0: accelerate.cabal

Name:                   accelerate
Version:                0.10.0.0
Cabal-version:          >= 1.6
Tested-with:            GHC >= 7.0.3
Build-type:             Simple

Synopsis:               An embedded language for accelerated array processing
Description:            This library defines an embedded language for
                        regular, multi-dimensional array computations with
                        multiple backends to facilitate high-performance
                        implementations.  Currently, there are two backends:
                        (1) an interpreter that serves as a reference
                        implementation of the intended semantics of the
                        language and (2) a CUDA backend generating code for
                        CUDA-capable NVIDIA GPUs.
                        .
                        To use the CUDA backend, you need to have CUDA version 3.x
                        installed.  The CUDA backend currently doesn't support 'Char'
                        and 'Bool' arrays.
                        .
                        An experimental OpenCL backend is available at <https://github.com/HIPERFIT/accelerate-opencl>
                        and an experimental multicore CPU backend building on the Repa array library
                        is available at <https://github.com/blambo/accelerate-repa>.
                        .
                        Known bugs: <https://github.com/mchakravarty/accelerate/issues>
                        .
                        * New in 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.
                        .
                        * New in 0.9.0.0: Streaming, precompilation, Repa-style indices, stencils, 
                            more scans, rank-polymorphic fold, generate, block I/O & many bug fixes
                        .
                        * New in 0.8.1.0: bug fixes and some performance tweaks
                        .
                        * New in 0.8.0.0: 'replicate', 'slice' and 'foldSeg' supported in the
                            CUDA backend; frontend and interpreter support for 'stencil'; bug fixes
                        .
                        * New in 0.7.1.0: the CUDA backend and a number of scalar functions
                        .
                        For documentation, see the homepage and <https://github.com/mchakravarty/accelerate/wiki>.
License:                BSD3
License-file:           LICENSE
Author:                 Manuel M T Chakravarty,
                        Gabriele Keller,
                        Sean Lee,
                        Ben Lever,
                        Trevor L. McDonell,
                        Sean Seefried
Maintainer:             Manuel M T Chakravarty <chak@cse.unsw.edu.au>
Homepage:               http://www.cse.unsw.edu.au/~chak/project/accelerate/
Bug-reports:            https://github.com/mchakravarty/accelerate/issues

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

-- Should be in the Library stanza, and only enabled for the CUDA backend,
-- but Cabal does not support that.
Data-files:             cubits/accelerate_cuda_extras.h
                        cubits/accelerate_cuda_function.h
                        cubits/accelerate_cuda_shape.h
                        cubits/accelerate_cuda_stencil.h
                        cubits/accelerate_cuda_texture.h
                        cubits/accelerate_cuda_util.h
                        cubits/generate.inl
                        cubits/backpermute.inl
                        cubits/fold.inl
                        cubits/foldAll.inl
                        cubits/foldSeg.inl
                        cubits/map.inl
                        cubits/stencil.inl
                        cubits/stencil2.inl
                        cubits/permute.inl
                        cubits/reduce.inl
                        cubits/replicate.inl
                        cubits/scan.inl
                        cubits/scan1.inl
                        cubits/slice.inl
                        cubits/zipWith.inl
                        cubits/thrust/safe_scan_intervals.inl
                        cubits/thrust/inclusive_scan.inl
                        cubits/thrust/exclusive_scan.inl

Extra-source-files:     INSTALL
                        include/accelerate.h
                        utils/README
                        utils/Paths_accelerate.hs
                        utils/dot_ghci

Flag llvm
  Description:          Enable the LLVM backend (sequential)
  Default:              False

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

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

Flag pcache
  Description:          Enable the persistent caching of the compiled CUDA modules (experimental)
  Default:              False

Flag test-suite
  Description:          Export extra test modules
  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

Flag io
  Description:          Provide access to the block copy I/O functionality
  Default:              False

Flag inplace
  Default:              False

Library
  Build-depends:        array           >= 0.3 && < 0.5,
                        base            == 4.*,
                        containers      >= 0.3 && < 0.5,
                        directory       >= 1.0 && < 1.2,
                        ghc-prim        == 0.2.*,
                        mtl             == 2.0.*,
                        pretty          >= 1.0 && < 1.2

  Include-Dirs:         include

  if flag(llvm)
    Build-depends:      llvm            >= 0.6.8

  if flag(cuda)
    Build-depends:      binary          == 0.5.*,
                        bytestring      == 0.9.*,
                        cuda            >= 0.2.2,
                        fclabels        >= 1.0 && < 1.2,
                        filepath        >= 1.0 && < 1.4,
                        language-c      >= 0.3 && < 0.5,
                        transformers    == 0.2.*,
                        unix            >= 2.4 && < 2.6,
                        zlib            == 0.5.* && < 0.5.3.2

  if flag(io)
    Build-depends:      bytestring      == 0.9.*,
                        vector          == 0.9.*

--  if flag(test-suite)
--    Build-depends:      QuickCheck      == 2.*

  if flag(more-pp)
    Build-depends:      bytestring      == 0.9.*,
                        blaze-html      == 0.3.*,
                        text            == 0.10.*

  if flag(inplace)
    hs-source-dirs:     . utils

  Exposed-modules:      Data.Array.Accelerate
                        Data.Array.Accelerate.Interpreter
                        Data.Array.Accelerate.Analysis.Shape
                        Data.Array.Accelerate.Analysis.Type
                        Data.Array.Accelerate.Array.Sugar
                        Data.Array.Accelerate.Array.Representation
                        Data.Array.Accelerate.Smart
                        Data.Array.Accelerate.AST
                        Data.Array.Accelerate.Array.Data
                        Data.Array.Accelerate.Tuple
                        Data.Array.Accelerate.Type
                        Data.Array.Accelerate.Pretty

--  If flag(llvm)
--    Exposed-modules:    Data.Array.Accelerate.LLVM

  if flag(cuda)
    Exposed-modules:    Data.Array.Accelerate.CUDA

  if flag(io)
    Other-modules:      Data.Array.Accelerate.IO.BlockCopy
    Exposed-modules:    Data.Array.Accelerate.IO
                        Data.Array.Accelerate.IO.Ptr
                        Data.Array.Accelerate.IO.ByteString
                        Data.Array.Accelerate.IO.Vector

--  If flag(test-suite)
--    Exposed-modules:    Data.Array.Accelerate.Test
--    Other-modules:      Data.Array.Accelerate.Test.QuickCheck
--                        Data.Array.Accelerate.Test.QuickCheck.Arbitrary

  Other-modules:        Data.Array.Accelerate.Internal.Check
                        Data.Array.Accelerate.Array.Delayed
                        Data.Array.Accelerate.Analysis.Stencil
                        Data.Array.Accelerate.Debug
                        Data.Array.Accelerate.Language
                        Data.Array.Accelerate.Prelude
                        Data.Array.Accelerate.Pretty.Print
                        Data.Array.Accelerate.Pretty.Traverse
                        Paths_accelerate

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


--  If flag(llvm)
--    Other-modules:      Data.Array.Accelerate.LLVM.CodeGen

  if flag(cuda)
    CPP-options:        -DACCELERATE_CUDA_BACKEND
    Other-modules:      Data.Array.Accelerate.CUDA.Analysis.Device
                        Data.Array.Accelerate.CUDA.Analysis.Hash
                        Data.Array.Accelerate.CUDA.Analysis.Launch
                        Data.Array.Accelerate.CUDA.Array.Data
                        Data.Array.Accelerate.CUDA.CodeGen.Data
                        Data.Array.Accelerate.CUDA.CodeGen.Skeleton
                        Data.Array.Accelerate.CUDA.CodeGen.Stencil
                        Data.Array.Accelerate.CUDA.CodeGen.Tuple
                        Data.Array.Accelerate.CUDA.CodeGen.Util
                        Data.Array.Accelerate.CUDA.CodeGen
                        Data.Array.Accelerate.CUDA.Compile
                        Data.Array.Accelerate.CUDA.Execute
                        Data.Array.Accelerate.CUDA.State

  if flag(pcache)
    CPP-options:        -DACCELERATE_CUDA_PERSISTENT_CACHE

  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

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

  Extensions:           BangPatterns, CPP, DeriveDataTypeable, EmptyDataDecls,
                        FlexibleContexts, FlexibleInstances, GADTs, MagicHash,
                        MultiParamTypeClasses, PatternGuards, RankNTypes,
                        ScopedTypeVariables, StandaloneDeriving,
                        TemplateHaskell, TupleSections, TypeFamilies,
                        TypeOperators, TypeSynonymInstances, UnboxedTuples

Source-repository head
  Type:                 git
  Location:             git://github.com/mchakravarty/accelerate.git