¿Es la escritura de memoria global considerada atómica en CUDA?

¿Se considera la escritura de memoria global atómica o no en CUDA?

Teniendo en cuenta el siguiente código de kernel CUDA:

int idx = blockIdx.x*blockDim.x+threadIdx.x;
int gidx = idx%1000;
globalStorage[gidx] = somefunction(idx);

Es la memoria global escribir aglobalStorage atómico, por ejemplono hay condiciones de carrera tales que los subprocesos del kernel concurrentes escriban en los bytes de la misma variable almacenada en globalStorage, lo que podría alterar los resultados (por ejemplo, escrituras parciales)?

Tenga en cuenta que no estoy hablando de operaciones atómicas como agregar / sub / bit-sabio, etc. aquí, solo escritura global directa.

Editado: vuelva a escribir el código de ejemplo para evitar confusiones.

Respuestas a la pregunta(1)

Su respuesta a la pregunta