我想在 Metal 内核中的线程组之间同步写入 MTLBuffer。我尝试使用 atomic_uint 类型和 atomic_fetch_add_explicit 函数。这应该有效,但我的问题是我不知道如何解释 CPU 端的值。我更喜欢一种锁定机制,我可以使用它来同步来自不同线程组的相同缓冲区的写入。是否有这种机制或其他一些不受原子类型约束的解决方法?

最佳答案

我在 16 位浮点转换中面临类似的问题。

您可以尝试通过从缓冲区中提取原始位来解释 CPU 端的值,与 atomic_uint 的内部格式进行比较,然后尝试使用获得的信息重新转换为您需要的数据类型。肯定是一种低级方法,但在没有其他方法时有效。

关于ios - 如何在Metal中的线程组之间进行同步,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27742883/

10-16 14:07