name: accelerate version: 1.3.0.0 cabal-version: 1.18 tested-with: GHC >= 8.6 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.LLVM.PTX@ it may be on-the-fly off-loaded to the GPU. . See the "Data.Array.Accelerate" module for further information. . [/Additional components/] . The following supported add-ons are available as separate packages. Install them from Hackage with @cabal install \@ . * @accelerate-llvm-native@: Backend supporting parallel execution on multicore CPUs. . * @accelerate-llvm-ptx@: Backend supporting parallel execution on CUDA-capable NVIDIA GPUs. Requires a GPU with compute capability 2.0 or greater. See the following table for supported GPUs: . * @accelerate-examples@: Computational kernels and applications demonstrating the use of Accelerate. . * @accelerate-io*@: Fast conversions between Accelerate arrays and other array and data formats. . * @accelerate-fft@: Discrete Fourier transforms, with FFI bindings to optimised implementations. . * @accelerate-blas@: Numeric linear algebra, with FFI bindings to optimised implementations. . * @accelerate-bignum@: Fixed-width large integer arithmetic. . * @containers-accelerate@: Container types for use with Accelerate. . * @hashable-accelerate@: Class for types which can be converted to a hash value. . * @colour-accelerate@: Colour representations in Accelerate (RGB, sRGB, HSV, and HSL). . * @gloss-accelerate@: Generate gloss pictures from Accelerate. . * @gloss-raster-accelerate@: Parallel rendering of raster images and animations. . * @lens-accelerate@: Lens operators for Accelerate types. . * @linear-accelerate@: Linear vector spaces in Accelerate. . * @mwc-random-accelerate@: Generate Accelerate arrays filled with high quality pseudorandom numbers. . [/Examples and documentation/] . Haddock documentation is included in the package . The @accelerate-examples@ package demonstrates a range of computational kernels and several complete applications, including: . * An implementation of the Canny edge detection algorithm . * Interactive Mandelbrot and Julia set generators . * A particle-based simulation of stable fluid flows . * An /n/-body simulation of gravitational attraction between solid particles . * An implementation of the PageRank algorithm . * A simple interactive ray tracer . * A cellular automata simulation . * A \"password recovery\" tool, for dictionary lookup of MD5 hashes . @lulesh-accelerate@ is an implementation of the Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics (LULESH) mini-app. LULESH represents a typical hydrodynamics code such as ALE3D, but is highly simplified and hard-coded to solve the Sedov blast problem on an unstructured hexahedron mesh. . [/Mailing list and contacts/] . * Gitter chat: . * Mailing list: (discussion of both use and development welcome). . * Sign up for the mailing list here: . * Bug reports and issue tracking: . license: BSD3 license-file: LICENSE author: The Accelerate Team maintainer: Trevor L. McDonell homepage: https://github.com/AccelerateHS/accelerate/ bug-reports: https://github.com/AccelerateHS/accelerate/issues category: Accelerate, Compilers/Interpreters, Concurrency, Data, Parallelism stability: Experimental extra-source-files: README.md CHANGELOG.md cbits/*.c cbits/*.h extra-doc-files: images/*.png custom-setup setup-depends: base >= 4.10 , Cabal , cabal-doctest >= 1.0 flag debug default: False description: Enable debug tracing messages. The following options are read from the environment variable @ACCELERATE_FLAGS@, and via the command-line as: . > ./program +ACC ... -ACC . Note that a backend may not implement (or be applicable to) all options. . The following flags control phases of the compiler. The are enabled with @-f\@ and can be reveresed with @-fno-\@: . * @acc-sharing@: Enable sharing recovery of array expressions (True). . * @exp-sharing@: Enable sharing recovery of scalar expressions (True). . * @fusion@: Enable array fusion (True). . * @simplify@: Enable program simplification phase (True). . * @inplace@: Enable in-place array updates (True). . * @flush-cache@: Clear any persistent caches on program startup (False). . * @force-recomp@: Force recompilation of array programs (False). . * @fast-math@: Allow algebraically equivalent transformations which may change floating point results (e.g., reassociate) (True). . * @fast-permute-const@: Allow non-atomic `permute const` for product types (True). . The following options control debug message output, and are enabled with @-d\@. . * @verbose@: Be extra chatty. . * @dump-phases@: Print timing information about each phase of the compiler. Enable GC stats (@+RTS -t@ or otherwise) for memory usage information. . * @dump-sharing@: Print information related to sharing recovery. . * @dump-simpl-stats@: Print statistics related to fusion & simplification. . * @dump-simpl-iterations@: Print a summary after each simplifier iteration. . * @dump-vectorisation@: Print information related to the vectoriser. . * @dump-dot@: Generate a representation of the program graph in Graphviz DOT format. . * @dump-simpl-dot@: Generate a more compact representation of the program graph in Graphviz DOT format. In particular, scalar expressions are elided. . * @dump-gc@: Print information related to the Accelerate garbage collector. . * @dump-gc-stats@: Print aggregate garbage collection information at the end of program execution. . * @dubug-cc@: Include debug symbols in the generated and compiled kernels. . * @dump-cc@: Print information related to kernel code generation/compilation. Print the generated code if @verbose@. . * @dump-ld@: Print information related to runtime linking. . * @dump-asm@: Print information related to kernel assembly. Print the assembled code if @verbose@. . * @dump-exec@: Print information related to program execution. . * @dump-sched@: Print information related to execution scheduling. . flag ekg default: False description: Enable hooks for monitoring the running application using EKG. Implies @debug@ mode. In order to view the metrics, your application will need to call @Data.Array.Accelerate.Debug.beginMonitoring@ before running any Accelerate computations. This will launch the server on the local machine at port 8000. . Alternatively, if you wish to configure the EKG monitoring server you can initialise it like so: . > import Data.Array.Accelerate.Debug > > import System.Metrics > import System.Remote.Monitoring > > main :: IO () > main = do > store <- initAccMetrics > registerGcMetrics store -- optional > > server <- forkServerWith store "localhost" 8000 > > ... . Note that, as with any program utilising EKG, in order to collect Haskell GC statistics, you must either run the program with: . > +RTS -T -RTS . or compile it with: . > -with-rtsopts=-T . 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 -- Enabling this drastically increases build times -- See: https://gitlab.haskell.org/ghc/ghc/issues/15751 flag nofib default: False description: Build the nofib test suite (required for backend testing) library build-depends: base >= 4.12 && < 4.15 , ansi-terminal >= 0.6.2 , base-orphans >= 0.3 , bytestring >= 0.10.2 , containers >= 0.3 , cryptonite >= 0.21 , deepseq >= 1.3 , directory >= 1.0 , exceptions >= 0.6 , filepath >= 1.0 , ghc-prim , half >= 0.3 , hashable >= 1.1 , hashtables >= 1.2.3 , hedgehog >= 0.5 , lens >= 4.0 , mtl >= 2.0 , prettyprinter >= 1.2 , prettyprinter-ansi-terminal >= 1.0 , primitive >= 0.6.4 , tasty >= 0.11 , template-haskell , terminal-size >= 0.3 , text >= 1.2 , transformers >= 0.3 , unique , unordered-containers >= 0.2 , vector >= 0.10 exposed-modules: -- The core language and reference implementation Data.Array.Accelerate Data.Array.Accelerate.Interpreter -- Prelude-like Data.Array.Accelerate.Data.Bits Data.Array.Accelerate.Data.Complex Data.Array.Accelerate.Data.Either Data.Array.Accelerate.Data.Fold Data.Array.Accelerate.Data.Functor Data.Array.Accelerate.Data.Maybe Data.Array.Accelerate.Data.Monoid Data.Array.Accelerate.Data.Ratio Data.Array.Accelerate.Unsafe -- For backend development (hidden) Data.Array.Accelerate.AST Data.Array.Accelerate.AST.Environment Data.Array.Accelerate.AST.Idx Data.Array.Accelerate.AST.LeftHandSide Data.Array.Accelerate.AST.Var Data.Array.Accelerate.Analysis.Hash Data.Array.Accelerate.Analysis.Match Data.Array.Accelerate.Array.Data Data.Array.Accelerate.Array.Remote Data.Array.Accelerate.Array.Remote.Class Data.Array.Accelerate.Array.Remote.LRU Data.Array.Accelerate.Array.Remote.Table Data.Array.Accelerate.Array.Unique Data.Array.Accelerate.Async Data.Array.Accelerate.Debug Data.Array.Accelerate.Error Data.Array.Accelerate.Lifetime Data.Array.Accelerate.Pretty Data.Array.Accelerate.Representation.Array Data.Array.Accelerate.Representation.Elt Data.Array.Accelerate.Representation.Shape Data.Array.Accelerate.Representation.Slice Data.Array.Accelerate.Representation.Stencil Data.Array.Accelerate.Representation.Tag Data.Array.Accelerate.Representation.Type Data.Array.Accelerate.Representation.Vec Data.Array.Accelerate.Smart Data.Array.Accelerate.Sugar.Array Data.Array.Accelerate.Sugar.Elt Data.Array.Accelerate.Sugar.Foreign Data.Array.Accelerate.Sugar.Shape Data.Array.Accelerate.Sugar.Vec Data.Array.Accelerate.Trafo Data.Array.Accelerate.Trafo.Config Data.Array.Accelerate.Trafo.Delayed Data.Array.Accelerate.Trafo.Fusion Data.Array.Accelerate.Trafo.Sharing Data.Array.Accelerate.Trafo.Substitution Data.Array.Accelerate.Type -- For testing Data.Array.Accelerate.Test.NoFib Data.Array.Accelerate.Test.Similar -- Other Data.BitSet Data.Primitive.Vec other-modules: Data.Array.Accelerate.Analysis.Hash.TH Data.Array.Accelerate.Array.Remote.Nursery Data.Array.Accelerate.Classes Data.Array.Accelerate.Classes.Bounded Data.Array.Accelerate.Classes.Enum Data.Array.Accelerate.Classes.Eq Data.Array.Accelerate.Classes.Floating Data.Array.Accelerate.Classes.Fractional Data.Array.Accelerate.Classes.FromIntegral Data.Array.Accelerate.Classes.Integral Data.Array.Accelerate.Classes.Num Data.Array.Accelerate.Classes.Ord Data.Array.Accelerate.Classes.Rational Data.Array.Accelerate.Classes.Real Data.Array.Accelerate.Classes.RealFloat Data.Array.Accelerate.Classes.RealFrac Data.Array.Accelerate.Classes.ToFloating Data.Array.Accelerate.Debug.Clock Data.Array.Accelerate.Debug.Flags Data.Array.Accelerate.Debug.Monitoring Data.Array.Accelerate.Debug.Stats Data.Array.Accelerate.Debug.Timed Data.Array.Accelerate.Debug.Trace Data.Array.Accelerate.Language Data.Array.Accelerate.Lift Data.Array.Accelerate.Orphans Data.Array.Accelerate.Pattern Data.Array.Accelerate.Pattern.Bool Data.Array.Accelerate.Pattern.Either Data.Array.Accelerate.Pattern.Maybe Data.Array.Accelerate.Pattern.Ordering Data.Array.Accelerate.Pattern.TH Data.Array.Accelerate.Prelude Data.Array.Accelerate.Pretty.Graphviz Data.Array.Accelerate.Pretty.Graphviz.Monad Data.Array.Accelerate.Pretty.Graphviz.Type Data.Array.Accelerate.Pretty.Print Data.Array.Accelerate.Trafo.Algebra Data.Array.Accelerate.Trafo.Environment Data.Array.Accelerate.Trafo.LetSplit Data.Array.Accelerate.Trafo.Shrink Data.Array.Accelerate.Trafo.Simplify Data.Array.Accelerate.Trafo.Var Data.Atomic -- Data.Array.Accelerate.Array.Lifted -- Data.Array.Accelerate.Trafo.Vectorise -- nofib test suite Data.Array.Accelerate.Test.NoFib.Base Data.Array.Accelerate.Test.NoFib.Config Language.Haskell.TH.Extra if flag(nofib) build-depends: tasty-expected-failure >= 0.11 , tasty-hedgehog >= 0.1 , tasty-hunit >= 0.9 -- , pipes >= 4.1.6 -- #286 other-modules: Data.Array.Accelerate.Test.NoFib.Sharing Data.Array.Accelerate.Test.NoFib.Prelude Data.Array.Accelerate.Test.NoFib.Prelude.Map Data.Array.Accelerate.Test.NoFib.Prelude.ZipWith Data.Array.Accelerate.Test.NoFib.Prelude.SIMD Data.Array.Accelerate.Test.NoFib.Prelude.Fold Data.Array.Accelerate.Test.NoFib.Prelude.Scan Data.Array.Accelerate.Test.NoFib.Prelude.Backpermute Data.Array.Accelerate.Test.NoFib.Prelude.Permute Data.Array.Accelerate.Test.NoFib.Prelude.Filter Data.Array.Accelerate.Test.NoFib.Prelude.Stencil Data.Array.Accelerate.Test.NoFib.Imaginary Data.Array.Accelerate.Test.NoFib.Imaginary.DotP Data.Array.Accelerate.Test.NoFib.Imaginary.SASUM Data.Array.Accelerate.Test.NoFib.Imaginary.SAXPY Data.Array.Accelerate.Test.NoFib.Spectral Data.Array.Accelerate.Test.NoFib.Spectral.SMVM Data.Array.Accelerate.Test.NoFib.Spectral.RadixSort Data.Array.Accelerate.Test.NoFib.Spectral.BlackScholes Data.Array.Accelerate.Test.NoFib.Issues Data.Array.Accelerate.Test.NoFib.Issues.Issue93 Data.Array.Accelerate.Test.NoFib.Issues.Issue102 Data.Array.Accelerate.Test.NoFib.Issues.Issue114 Data.Array.Accelerate.Test.NoFib.Issues.Issue119 Data.Array.Accelerate.Test.NoFib.Issues.Issue123 Data.Array.Accelerate.Test.NoFib.Issues.Issue137 Data.Array.Accelerate.Test.NoFib.Issues.Issue168 Data.Array.Accelerate.Test.NoFib.Issues.Issue184 Data.Array.Accelerate.Test.NoFib.Issues.Issue185 Data.Array.Accelerate.Test.NoFib.Issues.Issue187 Data.Array.Accelerate.Test.NoFib.Issues.Issue228 Data.Array.Accelerate.Test.NoFib.Issues.Issue255 Data.Array.Accelerate.Test.NoFib.Issues.Issue264 -- Data.Array.Accelerate.Test.NoFib.Issues.Issue286 Data.Array.Accelerate.Test.NoFib.Issues.Issue287 Data.Array.Accelerate.Test.NoFib.Issues.Issue288 Data.Array.Accelerate.Test.NoFib.Issues.Issue362 Data.Array.Accelerate.Test.NoFib.Issues.Issue364 Data.Array.Accelerate.Test.NoFib.Issues.Issue407 Data.Array.Accelerate.Test.NoFib.Issues.Issue409 Data.Array.Accelerate.Test.NoFib.Issues.Issue436 Data.Array.Accelerate.Test.NoFib.Issues.Issue437 Data.Array.Accelerate.Test.NoFib.Issues.Issue439 else cpp-options: -DACCELERATE_DISABLE_NOFIB if impl(ghc >= 8.0) exposed-modules: Data.Array.Accelerate.Data.Semigroup default-language: Haskell2010 hs-source-dirs: src if flag(debug) || flag(ekg) ghc-options: -optc-DACCELERATE_DEBUG cpp-options: -DACCELERATE_DEBUG if flag(ekg) cpp-options: -DACCELERATE_MONITORING build-depends: async >= 2.0 , ekg >= 0.1 , ekg-core >= 0.1 , text >= 1.0 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 if os(windows) cpp-options: -DWIN32 build-depends: Win32 else cpp-options: -DUNIX build-depends: unix cc-options: -O3 -Wall ghc-options: -O2 -Wall -Wcompat -Wmissed-specialisations -- -Wredundant-constraints -freduction-depth=100 -fspec-constr-count=50 -funbox-strict-fields ghc-prof-options: -caf-all -auto-all -- 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: test-suite doctest type: exitcode-stdio-1.0 default-language: Haskell2010 hs-source-dirs: test/doctest main-is: Main.hs build-depends: base >= 4.10 , accelerate , doctest >= 0.11 ghc-options: -Wall -threaded -rtsopts x-doctest-options: -freduction-depth=100 -fspec-constr-count=50 test-suite nofib-interpreter type: exitcode-stdio-1.0 default-language: Haskell2010 hs-source-dirs: test/nofib main-is: Main.hs if !flag(nofib) buildable: False build-depends: base >= 4.10 , accelerate ghc-options: -O2 -Wall -threaded -rtsopts -with-rtsopts=-A128M -with-rtsopts=-n4M source-repository head Type: git Location: git://github.com/AccelerateHS/accelerate.git source-repository this Type: git Tag: v1.3.0.0 Location: git://github.com/AccelerateHS/accelerate.git -- vim: nospell