1

Metal 计算内核中的以下代码片段表明atomic_fetch_add_explicit线程组内存中没有原子读取-修改-写入。

的值i在线程组中并不像我期望的那样唯一。

我用错了吗??

threadgroup atomic_int index;  
atomic_store_explicit( &index, 0, memory_order_relaxed );  
threadgroup_barrier( mem_flags::mem_none );  
int i = atomic_fetch_add_explicit( &index, 1, memory_order_relaxed );  
4

1 回答 1

2

这确实是正确的,并且可以按预期自动运行。错误出现在我的代码中,用于验证i.

于 2016-03-01T11:27:47.503 回答