Заполнение двумерного ускоряющего массива по одной строке за раз

λ> 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 только карты от элемента к элементу.

0 ответов

Другие вопросы по тегам