Functions like map work on GPU arrays directly, but not on StructArrays-of-GPUArrays:
using Metal
A = StructArray(a=MtlArray(rand(Float32, 10^3)), b=MtlArray(rand(Int8, 10^3)))
map(exp, A.a) # works
map(x -> exp(x.a), A) # throws "Scalar indexing is disallowed" because `map` falls back to iteration
Would be great to make it work! How do you think could be implemented?
I'm not very experienced with GPU arrays and their inner workings.
Functions like
map
work on GPU arrays directly, but not on StructArrays-of-GPUArrays:Would be great to make it work! How do you think could be implemented? I'm not very experienced with GPU arrays and their inner workings.
Ref https://github.com/JuliaArrays/StructArrays.jl/issues/300