Open
Description
on here.gpus[0] {
var D = {1..10, 1..10};
var A: [D] int;
@assertOnGpu
foreach (a,i) in zip(A,D) {
A[i] = a;
}
writeln(A);
}
Fails because of assertOnGpu
. It looks like there is some kind of dynamic memory allocation for non-inlined, multidimensional iterators. I don't have a good idea as to what that is or whether there's a bandaid without trying to inline multidimensional zippering.
Note that:
- Multidimensional zippering is not great for performance in general: Multidimensional zippered iteration (or promotion) kills performance #13147
- Multidimensional iteration (without zippering) also has potential pitfalls for performance: Multidimensional loops perform poorly as GPU kernels #24331
Activity