如果我有多个线程试图将相同的值写入内存中的单个位置,是否可能存在竞争条件?数据会在写入过程中以某种方式损坏吗?没有前面的读取或测试条件,只有写入...
编辑:澄清一下,我在 GPU 上计算一个点积。我正在使用多个线程来计算单个产品(每行/列元素一个线程)并将它们保存到内存中的临时位置。然后我需要对这些中间产品求和并保存结果。
我正在考虑让所有线程单独执行此求和/存储操作,因为在 GPU 上进行分支会损害性能。(您会认为无论是由单个线程还是所有线程完成的求和/存储都应该花费相同的时间,但是我已经对此进行了测试,并且性能受到了很小的影响。)所有线程都将获得相同的总和,但是当他们每个人都尝试将答案写入内存中的同一位置时,我担心竞争条件。在我所做的有限测试中,一切似乎都很好,但我仍然很紧张......