内存访问

内存使用的典型方案是将源数据和已处理数据存储在全局内存中。当一个线程块启动时,它首先将所有相关部分复制到共享存储器中,然后将它们的部分放入寄存器中。

内存访问延迟还取决于你的内存策略。如果你盲目访问数据,你将获得最差的性能。

不同的记忆被组织在所谓的银行中。可以在单个时钟周期内处理对存储体的每个存储器请求。共享内存中的库数等于 warp 大小。通过避免单个 warp 中的冲突银行访问,可以提高内存速度。

要将共享内存从全局内存复制到全局内存,最快的方法是调整内存调用。这意味着 warp 中的第一个线程应该访问共享和全局内存的存储区中的第一个元素。第二个线程是第二个元素,依此类推。该调用将被优化为单个存储器传输指令,该指令将整个存储体一次复制到目标存储器。