【发布时间】:2012-10-09 22:56:04
【问题描述】:
根据 CUDA 5.0 编程指南,如果我同时使用 L1 和 L2 缓存(在 Fermi 或 Kepler 上),所有全局内存操作都使用 128 字节内存事务完成。但是,如果我只使用 L2,则使用 32 字节内存事务(第 F.4.2 章)。
让我们假设所有缓存都是空的。如果我有一个扭曲,每个线程以完全对齐的方式访问单个 4 字节字,这将导致 L1+L2 情况下的 1x128B 事务,以及仅 L2 情况下的 4x32B 事务。对吗?
我的问题是 - 4 个 32B 事务是否比单个 128B 事务慢? 我对前费米硬件的直觉表明它会更慢,但也许在较新的硬件上不再如此?或者我应该只看带宽利用率来判断我的内存访问效率?
【问题讨论】:
标签: cuda