accelerate-io 0.12.0.0 → 0.12.1.0
raw patch · 3 files changed
+29/−27 lines, 3 filesdep ~acceleratedep ~repaPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: accelerate, repa
API changes (from Hackage documentation)
- Data.Array.Accelerate.IO: computeAccP :: (Fill r A sh e, Elt e, Monad m) => Array r sh e -> m (Array A sh e)
+ Data.Array.Accelerate.IO: computeAccP :: (Load r sh e, Elt e, Monad m) => Array r sh e -> m (Array A sh e)
- Data.Array.Accelerate.IO: computeAccS :: Fill r A sh e => Array r sh e -> Array A sh e
+ Data.Array.Accelerate.IO: computeAccS :: (Load r sh e, Elt e) => Array r sh e -> Array A sh e
Files
- Data/Array/Accelerate/IO/BlockCopy.hs +5/−5
- Data/Array/Accelerate/IO/Repa.hs +21/−19
- accelerate-io.cabal +3/−3
Data/Array/Accelerate/IO/BlockCopy.hs view
@@ -23,7 +23,7 @@ import Foreign import Foreign.C import GHC.Base-import Data.Array.Base (bOOL_SCALE, wORD_SCALE, fLOAT_SCALE, dOUBLE_SCALE)+import Data.Array.Base (wORD_SCALE, fLOAT_SCALE, dOUBLE_SCALE) import Data.ByteString -- friends@@ -64,7 +64,7 @@ type instance BlockCopyFuns Word64 = BlockCopyFun Word64 type instance BlockCopyFuns Float = BlockCopyFun Float type instance BlockCopyFuns Double = BlockCopyFun Double-type instance BlockCopyFuns Bool = BlockCopyFun Word8 -- Packed a bit vector+type instance BlockCopyFuns Bool = BlockCopyFun Word8 type instance BlockCopyFuns Char = BlockCopyFun Char type instance BlockCopyFuns (a,b) = (BlockCopyFuns a, BlockCopyFuns b) @@ -93,7 +93,7 @@ type instance BlockPtrs Word64 = Ptr Word64 type instance BlockPtrs Float = Ptr Float type instance BlockPtrs Double = Ptr Double-type instance BlockPtrs Bool = Ptr Word8 -- Packed as a bit vector+type instance BlockPtrs Bool = Ptr Word8 type instance BlockPtrs Char = Ptr Char type instance BlockPtrs (a,b) = (BlockPtrs a, BlockPtrs b) @@ -164,8 +164,8 @@ aux ArrayEltRword64 ad = base (ptrsOfArrayData ad) (sizeA * 8) aux ArrayEltRfloat ad = base (ptrsOfArrayData ad) (box fLOAT_SCALE sizeA) aux ArrayEltRdouble ad = base (ptrsOfArrayData ad) (box dOUBLE_SCALE sizeA)- aux ArrayEltRbool ad = base (ptrsOfArrayData ad) (box bOOL_SCALE sizeA)- aux ArrayEltRchar _ = error "not defined yet" -- base (castPtr $ ptrsOfArrayData ad) (sizeA * 4)+ aux ArrayEltRbool ad = base (ptrsOfArrayData ad) sizeA+ aux ArrayEltRchar ad = base (ptrsOfArrayData ad) (sizeA * 4) aux (ArrayEltRpair a b) (AD_Pair ad1 ad2) = ((bpFromC, bsFromC), (bpToC, bsToC), toH) where ((bpFromC1, bsFromC1), (bpToC1, bsToC1), toH1) = aux a ad1
Data/Array/Accelerate/IO/Repa.hs view
@@ -64,14 +64,16 @@ -- further parallel computation on the GPU. -- data A-data instance R.Array A sh e- = AAccelerate !sh !(A.ArrayData (A.EltRepr e)) -- Repr ------------------------------------------------------------------------ -- | Reading elements of the Accelerate array ---instance A.Elt e => R.Repr A e where+instance A.Elt e => R.Source A e where+ data Array A sh e+ = AAccelerate !sh !(A.ArrayData (A.EltRepr e))++ {-# INLINE extent #-} extent (AAccelerate sh _) = sh@@ -95,30 +97,30 @@ -- | Filling Accelerate arrays ---instance A.Elt e => R.Fillable A e where- data MArr A e- = forall s. MAArr (A.MutableArrayData s (A.EltRepr e))+instance A.Elt e => R.Target A e where+ data MVec A e+ = forall s. MAVec (A.MutableArrayData s (A.EltRepr e)) - {-# INLINE newMArr #-}- newMArr n- = MAArr `liftM` unsafeSTToIO (A.newArrayData n)+ {-# INLINE newMVec #-}+ newMVec n+ = MAVec `liftM` unsafeSTToIO (A.newArrayData n) - {-# INLINE unsafeWriteMArr #-}- unsafeWriteMArr (MAArr mad) n e+ {-# INLINE unsafeWriteMVec #-}+ unsafeWriteMVec (MAVec mad) n e = unsafeSTToIO $ A.writeArrayData mad n (A.fromElt e) - {-# INLINE unsafeFreezeMArr #-}- unsafeFreezeMArr sh (MAArr mad)+ {-# INLINE unsafeFreezeMVec #-}+ unsafeFreezeMVec sh (MAVec mad) = do adata <- unsafeSTToIO $ A.unsafeFreezeArrayData mad return $! AAccelerate sh adata - {-# INLINE deepSeqMArr #-}- deepSeqMArr (MAArr arr) x -- maybe?+ {-# INLINE deepSeqMVec #-}+ deepSeqMVec (MAVec arr) x -- maybe? = arr `seq` x - {-# INLINE touchMArr #-}- touchMArr _ -- maybe?+ {-# INLINE touchMVec #-}+ touchMVec _ -- maybe? = return () @@ -148,7 +150,7 @@ -- | Sequential computation of array elements -- computeAccS- :: R.Fill r A sh e+ :: (R.Load r sh e, A.Elt e) => R.Array r sh e -> R.Array A sh e {-# INLINE computeAccS #-} computeAccS = R.computeS@@ -156,7 +158,7 @@ -- | Parallel computation of array elements -- computeAccP- :: (R.Fill r A sh e, A.Elt e, Monad m)+ :: (R.Load r sh e, A.Elt e, Monad m) => R.Array r sh e -> m (R.Array A sh e) {-# INLINE computeAccP #-}
accelerate-io.cabal view
@@ -1,5 +1,5 @@ Name: accelerate-io-Version: 0.12.0.0+Version: 0.12.1.0 Cabal-version: >= 1.6 Tested-with: GHC >= 7.0.3 Build-type: Simple@@ -37,11 +37,11 @@ Library Include-Dirs: include- Build-depends: accelerate >= 0.12,+ Build-depends: accelerate >= 0.12.1 && < 0.13, array >= 0.3, base == 4.*, bytestring >= 0.9,- repa >= 3.1.2,+ repa >= 3.2, vector >= 0.9 Exposed-modules: Data.Array.Accelerate.IO