diff --git a/src/lib/broadcast.jl b/src/lib/broadcast.jl index 1057fa774..a03e65949 100644 --- a/src/lib/broadcast.jl +++ b/src/lib/broadcast.jl @@ -290,16 +290,9 @@ end ∇getindex(x::CUDA.CuArray, inds::Tuple{AbstractArray{<:Integer}}) = dy -> begin inds1_cpu = Array(inds[1]) - if allunique(inds1_cpu) - dx = _zero(x, eltype(dy)) - dxv = view(dx, inds[1]) - dxv .= accum.(dxv, _droplike(dy, dxv)) - return _project(x, dx), nothing - else - dx = zeros(eltype(dy), length(x)) - dxv = view(dx, inds1_cpu) - dxv .= accum.(dxv, _droplike(Array(dy), dxv)) - return _project(x, CUDA.CuArray(dx)), nothing - end + dx = zeros(eltype(dy), length(x)) + dxv = view(dx, inds1_cpu) + dxv .= accum.(dxv, _droplike(Array(dy), dxv)) + return _project(x, CUDA.CuArray(dx)), nothing end end