CUDA共享内存

kar*_*kar 3 cuda

我需要了解一些关于CUDA共享内存的知识.假设我在G80卡中为每个块分配50个块,每个块有10个线程.G80的每个SM处理器可以同时处理8个块.假设在进行一些计算之后,共享内存被完全占用.

当接下来的8个新块到达时,共享内存中的值是多少?以前的值会存在吗?或者先前的值是否会被复制到全局内存中并且共享内存会在接下来的8个块中刷新?

ard*_*u07 6

它说明了类型限定符:

  1. 线程寄存器中的变量只停留在内核中
  2. 线程的全局内存中的变量只停留在内核中
  3. __device__ __shared__ 在块的共享内存中键入变量,只保留在内核中
  4. __device__ 在网格的全局内存中键入变量,一直保持到应用程序退出
  5. __device__ __constant__ 网格的类型变量,一直保持到应用程序退出

因此,根据此参考,您的问题的答案是,如果存储器位于设备的共享存储器中,则应为接下来的8个块刷新内存.