accelerate-fft 0.15.0.0 → 0.15.1.0
raw patch · 5 files changed
+37/−28 lines, 5 filesdep ~accelerate-cudadep ~basedep ~cufft
Dependency ranges changed: accelerate-cuda, base, cufft
Files
- Data/Array/Accelerate/Math/DFT.hs +2/−1
- Data/Array/Accelerate/Math/DFT/Centre.hs +12/−10
- Data/Array/Accelerate/Math/DFT/Roots.hs +2/−1
- Data/Array/Accelerate/Math/FFT.hs +11/−7
- accelerate-fft.cabal +10/−9
Data/Array/Accelerate/Math/DFT.hs view
@@ -2,7 +2,8 @@ {-# LANGUAGE TypeOperators #-} -- | -- Module : Data.Array.Accelerate.Math.DFT--- Copyright : [2012] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell+-- Copyright : [2012..2014] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell+-- [2013..2014] Robert Clifton-Everest -- License : BSD3 -- -- Maintainer : Manuel M T Chakravarty <chak@cse.unsw.edu.au>
Data/Array/Accelerate/Math/DFT/Centre.hs view
@@ -1,7 +1,9 @@-{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TypeOperators #-} -- | -- Module : Data.Array.Accelerate.Math.DFT.Centre--- Copyright : [2012..2013] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell, Robert Clifton-Everest+-- Copyright : [2012..2014] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell+-- [2013..2014] Robert Clifton-Everest -- License : BSD3 -- -- Maintainer : Manuel M T Chakravarty <chak@cse.unsw.edu.au>@@ -67,7 +69,7 @@ where p ix = let Z:.x = unlift ix :: Z :. Exp Int- in index1 (x <* mw ? (x + mw, x - mw))+ in index1 (x A.<* mw ? (x + mw, x - mw)) Z:.w = unlift (A.shape arr) mw = w `div` 2 @@ -80,8 +82,8 @@ where p ix = let Z:.y:.x = unlift ix :: Z :. Exp Int :. Exp Int- in index2 (y <* mh ? (y + mh, y - mh))- (x <* mw ? (x + mw, x - mw))+ in index2 (y A.<* mh ? (y + mh, y - mh))+ (x A.<* mw ? (x + mw, x - mw)) Z:.h:.w = unlift (A.shape arr) (mh,mw) = (h `div` 2, w `div` 2) @@ -94,10 +96,10 @@ where p ix = let Z:.z:.y:.x = unlift ix :: Z :. Exp Int :. Exp Int :. Exp Int- in index3 (z <* md ? (z + md, z - md))- (y <* mh ? (y + mh, y - mh))- (x <* mw ? (x + mw, x - mw))- Z:.h:.w:.d = unlift (A.shape arr)- (mh,mw,md) = (h `div` 2, w `div` 2, d `div` 2)+ in index3 (z A.<* md ? (z + md, z - md))+ (y A.<* mh ? (y + mh, y - mh))+ (x A.<* mw ? (x + mw, x - mw))+ Z:.h:.w:.d = unlift (A.shape arr)+ (mh,mw,md) = (h `div` 2, w `div` 2, d `div` 2) index3 i j k = lift (Z:.i:.j:.k)
Data/Array/Accelerate/Math/DFT/Roots.hs view
@@ -1,7 +1,8 @@ {-# LANGUAGE TypeOperators #-} -- | -- Module : Data.Array.Accelerate.Math.DFT.Roots--- Copyright : [2012] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell+-- Copyright : [2012..2014] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell+-- [2013..2014] Robert Clifton-Everest -- License : BSD3 -- -- Maintainer : Manuel M T Chakravarty <chak@cse.unsw.edu.au>
Data/Array/Accelerate/Math/FFT.hs view
@@ -8,7 +8,8 @@ {-# LANGUAGE ViewPatterns #-} -- | -- Module : Data.Array.Accelerate.Math.FFT--- Copyright : [2012..2013] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell, Robert Clifton-Everest+-- Copyright : [2012..2013] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell+-- [2013..2014] Robert Clifton-Everest -- License : BSD3 -- -- Maintainer : Manuel M T Chakravarty <chak@cse.unsw.edu.au>@@ -31,7 +32,6 @@ ) where -import Prelude as P import Data.Array.Accelerate as A import Data.Array.Accelerate.Array.Sugar ( showShape ) import Data.Array.Accelerate.Data.Complex@@ -45,10 +45,12 @@ import System.Mem.Weak import System.IO.Unsafe import Foreign.CUDA.FFT-import qualified Foreign.CUDA.Driver as CUDA hiding (free)+import qualified Foreign.CUDA.Types as CUDA+import qualified Foreign.CUDA.Driver as CUDA #endif import Data.Bits+import Prelude as P data Mode = Forward | Reverse | Inverse deriving (Eq, Show)@@ -301,14 +303,16 @@ pure = interleave . p . deinterleave sh sign = signOfMode mode :: Int - foreignFFT :: Array DIM1 e -> CIO (Array DIM1 e)- foreignFFT arr' = do+ foreignFFT :: CUDA.Stream -> Array DIM1 e -> CIO (Array DIM1 e)+ foreignFFT stream arr' = do output <- allocateArray (S.shape arr') iptr <- floatingDevicePtr arr' optr <- floatingDevicePtr output --Execute- liftIO $ execute iptr optr+ liftIO $ do+ setStream hndl stream+ execute iptr optr return output @@ -345,7 +349,7 @@ in generate (lift (sh :. n+m)) (\ix -> let sz :. i = unlift ix :: Exp sh :. Exp Int- in i <* n ? (xs ! lift (sz:.i), ys ! lift (sz:.i-n) ))+ in i A.<* n ? (xs ! lift (sz:.i), ys ! lift (sz:.i-n) )) #ifdef ACCELERATE_CUDA_BACKEND
accelerate-fft.cabal view
@@ -1,7 +1,7 @@ Name: accelerate-fft-Version: 0.15.0.0+Version: 0.15.1.0 Cabal-version: >= 1.6-Tested-with: GHC >= 7.6+Tested-with: GHC >= 7.8 Build-type: Simple Synopsis: FFT using the Accelerate library@@ -26,13 +26,12 @@ Stability: Experimental Flag cuda- Description: Enable support for using CUFFT via the CUDA backend's- FFI+ Description: Enable support for using CUFFT via the CUDA backend's FFI Default: True Library Build-depends: accelerate == 0.15.*,- base >= 4.6 && < 4.8+ base >= 4.7 && < 4.9 Exposed-modules: Data.Array.Accelerate.Math.FFT Data.Array.Accelerate.Math.DFT@@ -45,7 +44,7 @@ CPP-options: -DACCELERATE_CUDA_BACKEND Build-depends: accelerate-cuda == 0.15.*, cuda >= 0.5,- cufft >= 0.1+ cufft >= 0.1.2 -- Don't add the extensions list here. Instead, place individual LANGUAGE -- pragmas in the files that require a specific extension. This means the@@ -53,7 +52,9 @@ -- -- Extensions: -Source-repository head- Type: git- Location: git://github.com/AccelerateHS/accelerate-fft.git+Source-repository this+ type: git+ location: git://github.com/AccelerateHS/accelerate-fft.git+ branch: release/0.15+ tag: 0.15.1.0