一 访存合并
1.1 说明
本部分内容主要参考:
搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎
1.2 share memory结构
图1.1 share memory结构
放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依次放在 32 个 banks 中。所以,第 i 个 word,就存放在第 ( i mod 32 ) 个 bank 上。
每个 bank 在每个 cycle 的 bandwidth 为 32 bits。
所以 shared memory 在每个 cycle 的 bandwidth 为 3