CUDA表面存储器的峰值带宽?

时间:2013-01-17 01:28:24

标签: cuda gpu benchmarking nvidia

Surface Memory 是CUDA中纹理缓存的只写模拟。

我在学术文献中发现了NVIDIA GPU peak bandwidth numbers,用于从全局内存和共享内存中读取。但是,我发现有关CUDA内存设备的写入吞吐量的信息较少。

特别是,我对Fermi和Kepler GPU上的CUDA表面存储器的带宽(以及延迟,如果已知)感兴趣。

  • 是否有基准数据?
  • 如果没有,那么我如何实施基准来衡量写入表面存储器的带宽?

2 个答案:

答案 0 :(得分:2)

根据Device Memory Accesses

  • 在高速缓存未命中时:纹理提取或表面读取需要从设备存储器读取一个全局存储器;
  • 在缓存命中时:它会降低全局内存带宽需求,但不会降低获取延迟。

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

为了计算延迟时间,您引用的纸张可能只使用一个线程。因此,通过

计算延迟很容易
  

全局内存读取延迟=总读取时间/读取次数

您可以以类似的方式在曲面写入上实现时序。但我认为将此方法应用于共享内存延迟测量并不合理,如本文所示,因为与共享内存延迟相比,for循环的开销可能不会被忽略。

答案 1 :(得分:2)

在计算能力2.x和3.x设备上,表面写入通过L1缓存并具有与全局写入相同的吞吐量和延迟。