GPU CUDA K.3.3 共享内存

K.3.3 共享内存
共享内存采用32个存储体的组织结构,连续的32位字依次映射到相邻存储体。每个存储体每个时钟周期可提供32位带宽。

当线程束发起共享内存请求时,若两个线程访问同一32位字内的地址(即使地址位于相同存储体)不会引发存储体冲突:

  • 对于读取操作:该字将通过广播机制传送至所有请求线程

  • 对于写入操作:每个地址仅由一个线程执行写入(具体由哪个线程执行写入未定义)

图28展示了几种跨步访问的示例。
图29演示了涉及广播机制的内存读取访问实例。

 

左侧
32位字单位连续线性寻址(无存储体冲突)

中部
32位字双步长线性寻址(双路存储体冲突)

右侧
32位字三步长线性寻址(无存储体冲突)

左侧
通过随机置换实现无冲突访问。

中部
无冲突访问——线程3、4、6、7和9均访问存储体5中的同一字。

右侧
无冲突广播式访问(线程访问同一存储体内的相同字)。

 

posted @ 2025-04-13 05:02  吴建明wujianming  阅读(37)  评论(0)    收藏  举报