Yes, I think it should be fine to replace with a standard copy function (I used Tensor::copy_ as you can see here 1 which seems to work fine, I explicitly tested overlapping tensors where it’s used).
I believe the need for _th_copy_ignoring_overlaps_ is a legacy thing that doesn’t apply anymore. In the original THC code the copy functions used the tensor apply function from which CUDA_tensor_apply is derived. So if the tensor apply function called copy then you’d get an infinite loop. Thus it calls _th_copy_ignoring_overlaps which avoids this recursion through a bit of a hack. In aten the copy functions now use a different internal pointwise apply function so there is no infinite loop and standard copy functions can be used.