这个函数是做什么的?我无法理解OpenCL规范中的任何内容!!下面的代码是spMV代码的一个片段。
atomic_cmpxchg((__global int*)loc, *((int*)&old), *((int*)&sum)) != *((int*)&old)发布于 2011-07-01 15:00:33
atomic_cmpxchg是“原子比较和交换”。它实现了标准C99三元操作的原子版本。对于上面的代码,它暗示了以下的原子等价物:
p = *loc;
*loc = (p == *old) ? (*sum != *old) : p;其中atomic_cmpxchg调用返回p。该操作是原子的,这意味着在事务完成之前,没有其他线程可以从loc读取或写入。
https://stackoverflow.com/questions/6544258
复制相似问题