什么是Cuda共享内存功能

什么是Cuda共享内存功能,cuda,Cuda,我是cuda的新手。我需要在2个或更多块之间交换数组。内核可用于在块之间交换或交换共享内存中的数据,而不涉及全局/设备内存 所以,如果我必须使用全局内存使块相互通信。那小溪呢 我目前的理解是,流按顺序排列多个内核,可以用于在不同的块上应用不同的内核。因此,我可以使用共享内存作为应用于两个不同块的内核的输入 若我使用一些内核和共享内存为每个子总体分配块来计算适合度,我可以在块之间传输数据吗 否。共享内存具有块作用域。它不能在块之间移动。全局内存或堆内存是可移植的,可能用于保存多个块访问的数据 但是

我是cuda的新手。我需要在2个或更多块之间交换数组。内核可用于在块之间交换或交换共享内存中的数据,而不涉及全局/设备内存

所以,如果我必须使用全局内存使块相互通信。那小溪呢

我目前的理解是,流按顺序排列多个内核,可以用于在不同的块上应用不同的内核。因此,我可以使用共享内存作为应用于两个不同块的内核的输入

若我使用一些内核和共享内存为每个子总体分配块来计算适合度,我可以在块之间传输数据吗


否。共享内存具有块作用域。它不能在块之间移动。全局内存或堆内存是可移植的,可能用于保存多个块访问的数据


但是,CUDA中的标准执行模型不支持网格级同步。自CUDA 9以来,随着最新一代硬件的出现,如果您使用,则支持网格级同步机制,但据我所知,PyCUDA和Numba均未公开该功能。

什么是“arrayList”,如何“指定在CUDA中阻止”,为什么要用numba和PyCUDA标记它?我在numba cuda环境中运行代码,我试图用cuda C或Python来理解这个想法本身,我可以在块之间传输数据吗?数据存储在哪里?我使用每个块的共享内存共享内存具有块范围。无法从其他块访问它。那不行