Mirror of packages-dph repository. DO NOT SUBMIT PULL REQUESTS HERE
Fetching latest commit…
Cannot retrieve the latest commit at this time
Directories in libraries/dph dph-base/ Common config and debugging functions for Data Parallel Haskell. dph-buildbot/ Performance regression buildbot. dph-examples/ Examples using Data Parallel Haskell. dph-prim-interface/ Empty implementation of flat parallel arrays. This package exists only so that dph-prim-par and dph-prim-seq can provide the same interface. dph-prim-seq/ Sequential implementation of the flat parallel array API defined in dph-prim-interface. This is only used during debugging. You probably want dph-prim-par instead. dph-prim-par/ Production implementation of the flat parallel array API defined in dph-prim-interface. dph-lifted-base/ Common definitions used by the other dph-lifted packages. The following packages provide: Nested arrays and the primitive operators that work on them (PA functions). The lifted array combinators that the vectoriser introduces (PP functions). The user facing library functions that work on [::] style arrays (P functions). dph-lifted-boxed/ Incomplete implementation using boxed array elements. This is very slow, but sometimes useful for debugging. dph-lifted-copy/ Deprecated implementation that performs deep copying replicate. Using this package can cause the vectorised program to have worse asymptotic complexity than the original. Use dph-lifted-vseg instead. dph-lifted-vseg/ This implementation directly encodes sharing between array segments, and avoids the copying that dph-lifted-copy would otherwise do. Use this version for production code. Odds and ends: make/ Makefiles used for development and debugging dph-test/ Quickcheck tests for the array operators. dtrace/ Old code to add dtrace support to DPH. examples/ Rotted example code that doesn't build anymore and should probably just be deleted. To compile programs use: ghc -rtsopts -threaded -fllvm -optlo-O3 -Odph -fcpr-off -fno-liberate-case -package dph-lifted-vseg Why: -rtsopts -threaded -- You'll want to pass +RTS -Nwhatever when running -- the compiled program to enable threads. -fllvm -- LLVM produces much better numerical code than GHC's -- default native code generator. -optlo-O3 -- Turn on more LLVM optimisations. -- This can produce better numerical code, -- but sometimes tickles bugs in LLVM. -fcpr-off -- The Constructed Product Result transform sometimes -- interferes with fusion in the Data.Vector Library. -fno-liberate-case -- The LiberateCase transform can duplicate lots of -- intermediate code, result in slow compile times, -- large binaries, and minimal performance improvement. -- The implementation of the DPH backend library should -- manually handle most cases where LiberateCase -- would fire.