4

目前,我开发了一个基于 GPU 的程序,该程序使用多个内核,这些内核通过多个流同时启动。

在我的应用程序中,多个内核需要访问一个队列/堆栈,我计划使用原子操作。

但我不知道原子操作是否在同时启动的多个内核之间起作用。请任何了解 GPU 上原子操作的确切机制或有此问题经验的人帮助我。

4

1 回答 1

6

原子在 GPU 的 L2 缓存硬件中实现,所有内存操作都必须通过该硬件。没有硬件来确保主机和设备内存之间或不同 GPU 之间的一致性;但只要内核在同一个 GPU 上运行并使用该 GPU 上的设备内存进行同步,原子将按预期工作。

于 2013-12-24T10:52:49.493 回答