λ> import Data.Array.Accelerate
λ> import Data.Array.Accelerate.Interpreter (run)
假设您有一个2D加速阵列:
λ> :t arr
arr :: Acc (Array DIM2 Int)
λ> run $ unit $ shape arr
Scalar Z [Z :. 4 :. 3]
和长度为4(与arr
的列数相同)的一维加速向量:
λ> :t vec
vec :: Acc (Array DIM1 Int)
λ> run $ unit $ shape vec
Scalar Z [Z :. 4]
以及从标量到长度为3的向量的函数:
expand :: Exp Int -> Acc (Array DIM1 Int)
如何通过在arr
上映射expand
来填充vec
?
map
中的常规Prelude
在加速阵列上不起作用。 map
中的Data.Array.Accelerate
仅在元素之间映射。