CUDA 原子操作和并发内核启动



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

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

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

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

最新更新