Hi all,
I’m using KernelAbstractions.jl, and encountered a StackOverflowError when trying to call get_backend on a BitArray (e.g., from a comparison like .<):
using KernelAbstractions
x = rand(10)
msk = x .< 0.5
get_backend(msk)
This results in the following error:
julia> KernelAbstractions.get_backend(msk)
ERROR: StackOverflowError:
Stacktrace:
[1] get_backend(A::BitVector) (repeats 79984 times)
@ KernelAbstractions ~/.julia/packages/KernelAbstractions/sWSE0/src/KernelAbstractions.jl:519
It seems get_backend is recursively calling itself when passed a BitArray, likely due to a missing method definition.
As a workaround, I added the following method, which resolves the issue:
KernelAbstractions.get_backend(::BitArray) = KernelAbstractions.CPU()
Is this the recommended approach?
Or should BitArray support be handled explicitly in KernelAbstractions itself (i.e., is this a bug)?
Additioanl context:
This appears to be related to issue #588