Несколько потоков записывают одно и то же значение в одну и ту же область глобальной памяти - PullRequest
10 голосов
/ 07 декабря 2011

Этот вопрос тесно связан с с этим , но мой принадлежит миру CUDA.

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

Есть ли вероятность повреждения памяти или неожиданного поведения в моем рабочем процессе (из-загонки данных, синхронизация кэша и т. д.)?

1 Ответ

10 голосов
/ 29 марта 2014

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

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

Если записываются различные значения, то одно из значений окажется в этом месте, но это значение не определено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...