Name: accelerate Version: 0.13.0.4 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: . Several experimental and/or incomplete backends also exist. If you are interested in helping finish these, please contact us. . 1. Cilk\/ICC and OpenCL: . 2. Another OpenCL backend: . 3. A backend to the Repa array library: . [/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: . 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: . 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: (discussion of both use and development welcome). . * Sign up for the mailing list here: . * Bug reports and issue tracking: . [/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 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