У меня есть несколько блоков, каждый из которых имеет несколько целых чисел в массиве общей памяти размером 512. Как я могу проверить, содержит ли массив в каждом блоке ноль в качестве элемента?
Я создаю массив, который находится в глобальной памяти. Размер этого массива зависит от количества блоков, и он инициализируется нулем. Следовательно, каждый блок записывает в a [blockid] = 1
, если массив разделяемой памяти содержит ноль.
Моя проблема в том, что у меня одновременно записываются несколько потоков в одном блоке. То есть, если массив в разделяемой памяти содержит более одного нуля, то несколько потоков запишут a [blockid] = 1
. Это вызовет какие-нибудь проблемы?
Другими словами, будет ли проблема, если два потока записывают одно и то же значение в один и тот же элемент массива в глобальной памяти?