It's expected that bounds checking costs something, but not 3 orders of magnitude as reported here with view(data, idx): https://discourse.julialang.org/t/correct-implementation-of-cuarrays-slicing-operations/90600. Can't this just throw a device-side exception instead?