module Data.Array.Accelerate.CUDA.Array.Sugar (
module Data.Array.Accelerate.Array.Sugar,
newArray, allocateArray, useArray, useArrayAsync,
) where
import Data.Array.Accelerate.CUDA.State
import Data.Array.Accelerate.CUDA.Array.Data
import Data.Array.Accelerate.Array.Sugar hiding (newArray, allocateArray)
import qualified Data.Array.Accelerate.Array.Sugar as Sugar
newArray :: (Shape sh, Elt e) => sh -> (sh -> e) -> CIO (Array sh e)
newArray sh f =
let arr = Sugar.newArray sh f
in do
useArray arr
return arr
allocateArray :: (Shape dim, Elt e) => dim -> CIO (Array dim e)
allocateArray sh =
let arr = Sugar.allocateArray sh
in do
mallocArray arr
return arr