Assuming that we have lots of threads that will access global memory sequentially, which option performs faster in the overall? I'm in doubt because \_\_threadfence() takes into account all shared and global memory writes but the writes are coalesced. In the other hand atomicExch() takes into account just the important memory addresses but I don't know if the writes are coalesced or not. 

In code:

```
array[threadIdx.x] = value;

```

Or

```
atomicExch(&array[threadIdx.x] , value);

```

Thanks.