If you modify cudaArray from the host, the changes are not guaranteed to be reflected in texture memory. Because the texture is cached. While you are modifying cudaArray on the host, you do not know how much of this memory is cached by text and which is not.
The only guarantee that changes are fully reflected in the device code is when the kernel has finished executing.
source share