2016-03-01 44 views
1

Metal計算內核中的以下代碼片段表明atomic_fetch_add_explicit在線程組內存中沒有原子讀取 - 修改 - 寫入。線程組內存中的atomic_fetch_add_explicit是否爲atomic?

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); 

回答

1

這確實是正確的,並按預期原子化。 錯誤發生在我的代碼中,驗證了i的唯一性。

相關問題