cuda atomic добавить видимость - PullRequest
2 голосов
/ 27 июля 2011

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

1 Ответ

3 голосов
/ 27 июля 2011

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

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

...