CUDA表面存储器的峰值带宽



表面内存是CUDA中纹理缓存的只写模拟。

我在学术文献中找到了从全局内存和共享内存读取的NVIDIA GPU峰值带宽数字。然而,我发现关于CUDA内存设备的写入吞吐量的信息较少。

特别是,我对Fermi和Kepler gpu上CUDA表面内存的带宽(以及延迟,如果知道的话)感兴趣。

  • 这方面有基准数据吗?
  • 如果不是,那么我如何实现一个基准来测量写到表面内存的带宽?

根据设备内存访问,

  • 缓存丢失:纹理读取或表面读取需要从设备内存中读取一次全局内存;
  • 缓存命中:它减少全局内存带宽需求,但不读取延迟。

由于纹理/表面/全局mem的延迟几乎相同,并且它们都位于片外DRAM上,我认为表面mem的峰值带宽与GPU规格中指示的全局mem相同。

为了计时延迟,你引用的论文可能只使用一个线程。所以很容易通过

计算延迟

global mem read latency =总读时间/读次数

您可以以类似的方式实现对表面写入的计时。但是我不认为将这种方法应用于该论文中所示的共享内存延迟测量是合理的,因为与共享内存延迟相比,for循环的开销可能不会被忽略。

关于计算能力2。X和3。x设备的表面写操作通过L1缓存,并且具有与全局写相同的吞吐量和延迟。

最新更新