【发布时间】:2011-07-12 11:23:34
【问题描述】:
我正在尝试在 CUDA 中编写代码来查找最大值 对于给定的一组数字。
假设您有 20 个数字,并且内核在 2 个 5 个线程的块上运行。现在假设 10 个线程同时比较前 10 个值,线程 2 找到一个最大值,因此线程 2 正在更新全局内存中的最大值变量。在线程 2 更新时,将使用旧值进行比较的剩余线程 (1,3-10) 会发生什么情况?
如果我使用 atomicCAS() 锁定全局变量,线程 (1,3-10) 是否会使用旧的最大值进行比较?我该如何克服这个问题?
【问题讨论】:
标签: parallel-processing cuda reduction