Error when using dynamic parallelism with six or more arguments


I’m getting an error (unsupported dynamic function invocation) when I run

manyArgs(a, b, c, d, e, f) = nothing
caller() = (@CUDA.cuda dynamic=true manyArgs(1,2,3,4,5,6); nothing)
@CUDA.cuda caller()


manyArgs(a, b, c, d, e) = nothing
caller() = (@CUDA.cuda dynamic=true manyArgs(1,2,3,4,5); nothing)
@CUDA.cuda caller()

runs fine. Is there a limitation on the number of arguments I can pass when starting child kernels?


Apparently that code doesn’t get inferred completely, causing it to fail to compile. You can open an issue, but with the current Julia compiler it might be hard to fix.