Cuda Atomic добавить видимость
В CUDA результат атомарной операции сразу виден потокам других деформаций в том же блоке, что и блок, выполняющий атомарную операцию? В случае неатомарной операции, я знаю, что результат может быть не виден до __syncthreads()
вызывается.
1 ответ
Решение
Да, по определению атомарные операции завершаются и видны до того, как любой другой поток, выполняющий атомарную операцию по тому же адресу, получит доступ к тому же значению.
Тем не менее, возможно наличие условия гонки, если другие потоки обращаются к одному и тому же адресу через неатомарный доступ в одно и то же время, поэтому вы все равно должны быть осторожны при написании правильного параллельного кода.