Cuda Atomic добавить видимость

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

1 ответ

Решение

Да, по определению атомарные операции завершаются и видны до того, как любой другой поток, выполняющий атомарную операцию по тому же адресу, получит доступ к тому же значению.

Тем не менее, возможно наличие условия гонки, если другие потоки обращаются к одному и тому же адресу через неатомарный доступ в одно и то же время, поэтому вы все равно должны быть осторожны при написании правильного параллельного кода.

Другие вопросы по тегам