我试图在CUDA中编写一个代码,以便为给定的一组数字找到最大值。
假设您有20个数字,并且内核运行在由5个线程组成的两个块上。现在假设10个线程同时比较前10个值,线程2找到一个最大值,所以线程2在全局内存中更新最大值变量。当线程2正在更新时,使用旧值进行比较的剩余线程(1,3-10)会发生什么情况?
如果我使用atomicCAS()锁定全局变量,那么线程(1,3-10)会使用旧的最大值进行比较吗?我怎样才能克服这个问题?
https://stackoverflow.com/questions/5255962
复制相似问题