【发布时间】:2012-09-17 08:27:09
【问题描述】:
所以我对在 CUDA 中合并内存访问的想法是,warp 中的线程应该访问连续的内存地址,因为这只会导致单个内存事务(然后将每个地址上的值广播到线程)而不是以串行方式执行的多个。
现在,我的总线宽度是 48 字节。这意味着我可以在每个内存事务中传输 48 个字节,对吧?因此,为了充分利用总线,我需要能够一次读取 48 个字节(通过每个线程读取一个以上的字节 - 内存事务由 warp 执行)。但是,假设单个线程一次读取 48 个字节不会提供相同的优势(我假设我可以通过读取大小为 48 个字节的结构一次读取 48 个字节)?
我的合并问题是我必须对数据进行转置。我有很多数据,所以转置需要时间,如果可以的话,我宁愿将其用于其他用途。
我正在使用计算能力 2.0。
【问题讨论】:
标签: memory cuda coalescing