Is global memory write considered atomic or not in CUDA?
Considering the following CUDA kernel code:
int idx = blockIdx.x*blockDim.x+threadIdx.x;
int gidx = idx%1000;
globalStorage[gidx] = somefunction(idx);
Is the global memory write to globalStorage
atomic?, e.g. there is no race conditions such that concurrent kernel threads write to the bytes of the same variable stored in globalStorage, which could mess the results up (e.g. parial writes)?
Note that I am not talking about atomic operations like add/sub/bit-wise etc here, just straight global write.
Edited: Rewrote the example code to avoid confusion.