# Continuous view of CuArray using CartesianIndices does not return native CuArray

**URL:** <https://discourse.julialang.org/t/continuous-view-of-cuarray-using-cartesianindices-does-not-return-native-cuarray/60428>\
**Category:** GPU\
**Tags:** indexing\
**Created:** [May 2, 2021, 6:23pm UTC](https://discourse.julialang.org/t/continuous-view-of-cuarray-using-cartesianindices-does-not-return-native-cuarray/60428 "2021-05-02T18:23:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jpdoane](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jpdoane](https://discourse.julialang.org/u/jpdoane)\
**Post date:** [May 2, 2021, 6:23pm UTC](https://discourse.julialang.org/t/continuous-view-of-cuarray-using-cartesianindices-does-not-return-native-cuarray/60428/1 "2021-05-02T18:23:55Z")

</div>

views of CuArrays generally return a native CuArray object if the underlying data is contiguous. However, the does not seem to be the case if views are formed using CartesianIndices.

example:

```julia
sz = (8,4,2,2)
x = CUDA.rand(ComplexF32,sz);

@show typeof(view(x,:,:,1,1))

i = CartesianIndex(1, 1)
@show typeof(view(x,:,:,i))

```

returns:

```julia
typeof(view(x, :, :, 1, 1)) = CuArray{ComplexF32, 2}
typeof(view(x, :, :, i)) = SubArray{ComplexF32, 2, CuArray{ComplexF32, 4}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64, Int64}, true}

```

Currently, the following code does not work, since fft does not play nicely with the SubArray type on GPU

```julia
for nn in CartesianIndices(sz[3:end])
    xv = view(x,:,:,nn)
    fftplan * xv
end

```

---

<div class="post-metadata">

**Author:** ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)\
**Post date:** [May 4, 2021, 5:46am UTC](https://discourse.julialang.org/t/continuous-view-of-cuarray-using-cartesianindices-does-not-return-native-cuarray/60428/2 "2021-05-04T05:46:58Z")

</div>

[https://github.com/JuliaGPU/CUDA.jl/pull/886](https://github.com/JuliaGPU/CUDA.jl/pull/886)

---

<div class="post-metadata">

**Author:** ![jpdoane](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jpdoane](https://discourse.julialang.org/u/jpdoane)\
**Post date:** [May 4, 2021, 12:44pm UTC](https://discourse.julialang.org/t/continuous-view-of-cuarray-using-cartesianindices-does-not-return-native-cuarray/60428/3 "2021-05-04T12:44:14Z")

</div>

Wow - thanks!
