Для программы CUDA, если несколько потоков в деформации записывают в одно и то же местоположение, тогда местоположение будет обновлено, но оно не определено сколько раз местоположение обновляется (т. е. сколько фактических записей происходит последовательно), и undefined какой поток будет писать последним (т. е. какой поток выиграет гонку).
Для устройств с вычислительной возможностью 2.x, если несколько потоков в деформации записывают по одному и тому же адресу, тогда только один поток фактически выполняет запись, , который поток не определен.
Из руководства по программированию CUDA C , раздел F.4.2:
Если неатомарная инструкция, выполняемая деформацией, выполняет запись в одно и то же место в глобальной памяти для более чем одного из потоков деформации, только один поток выполняет запись, и для какого потока она не определена.
См. Также раздел 4.1 руководства для получения дополнительной информации.
Другими словами, если все потоки, записывающие в заданное местоположение, записывают одно и то же значение, тогда это безопасно.