ios - 线程组内存中是否有atomic_fetch_add_explicit原子?

标签 ios atomic metal threadgroup

Metal计算内核中的以下代码段表明atomic_fetch_add_explicit在线程组内存中没有原子的read-modify-write。

我期望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 );  

最佳答案

这确实是正确的,并且可以按预期方式自动运行。
错误是在我的代码中验证了i的唯一性。

关于ios - 线程组内存中是否有atomic_fetch_add_explicit原子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712434/

相关文章:

ios - 显示不同颜色的区域

ios - iPad 中的电子阅读器 SDK

java-8 - CAS 与同步性能

ios - 为什么重写 UIView.drawRect 会出现 "calling -display has no effect"消息?

ios - 如何使用 Swift 从 Metal 纹理中读取半精度 float ?

ios - Firebase iOS SDK : How to get multiple Data in one query

ios - 在 iOS 中存储和执行大量操作

java - 我有 2 个并发数据结构,我想自动更新它们

concurrency - Clojure 删除 ref 内向量的第一个(或最后一个)元素

ios - Metal 计算管道慢得离谱