Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CUDA表面存储器的峰值带宽?_Cuda_Gpu_Benchmarking_Nvidia - Fatal编程技术网

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

CUDA表面存储器的峰值带宽?,cuda,gpu,benchmarking,nvidia,Cuda,Gpu,Benchmarking,Nvidia,表面存储器是CUDA中纹理缓存的仅写模拟 我在学术文献中找到了NVIDIA GPU,用于从全局内存和共享内存中读取。然而,我发现有关CUDA内存设备的写入吞吐量的信息较少 特别是,我对费米和开普勒GPU上CUDA表面内存的带宽(以及延迟,如果知道的话)感兴趣 这方面有基准数据吗? 如果没有,那么我应该如何实现一个用于测量写入表面内存带宽的基准? 根据 缓存未命中:纹理提取或表面读取需要从设备内存读取一个全局内存 缓存命中:它减少了全局mem带宽需求,但不减少获取延迟 由于纹理/表面/全局m

表面存储器是CUDA中纹理缓存的仅写模拟

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

特别是,我对费米和开普勒GPU上CUDA表面内存的带宽(以及延迟,如果知道的话)感兴趣

  • 这方面有基准数据吗?
  • 如果没有,那么我应该如何实现一个用于测量写入表面内存带宽的基准?
  • 根据

    • 缓存未命中:纹理提取或表面读取需要从设备内存读取一个全局内存
    • 缓存命中:它减少了全局mem带宽需求,但不减少获取延迟
    由于纹理/表面/全局mem的延迟几乎相同,并且它们都位于片外DRAM上,因此我认为表面mem的峰值带宽与GPU规范中指示的全局mem相同

    为了计时延迟,您引用的论文只能使用一个线程。因此,很容易通过以下公式计算延迟:

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

    您可以以类似的方式在表面上实现计时。但我认为,如那篇文章所示,将这种方法应用于共享mem延迟测量是不合理的,因为与共享mem延迟相比,for循环的开销可能不会被忽略

    根据

    • 缓存未命中:纹理提取或表面读取需要从设备内存读取一个全局内存
    • 缓存命中:它减少了全局mem带宽需求,但不减少获取延迟
    由于纹理/表面/全局mem的延迟几乎相同,并且它们都位于片外DRAM上,因此我认为表面mem的峰值带宽与GPU规范中指示的全局mem相同

    为了计时延迟,您引用的论文只能使用一个线程。因此,很容易通过以下公式计算延迟:

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


    您可以以类似的方式在表面上实现计时。但我认为,如那篇文章所示,将这种方法应用于共享mem延迟测量是不合理的,因为与共享mem延迟相比,for循环的开销可能不会被忽略

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

    @Talonmes为什么您认为两者之间存在差异读写?如果你可以一个接一个地读取数据,这就类似于在一个线程中将数据一个接一个地写入不同的地址。@talonmies指针追踪是一种简单的方法,可以避免论文中所示的保护性特征。对于写,您也可以使用非单例剥离或其他方法。@Talonmes为什么您认为读和写之间有区别?如果你可以一个接一个地读取数据,这就类似于在一个线程中将数据一个接一个地写入不同的地址。@talonmies指针追踪是一种简单的方法,可以避免论文中所示的保护性特征。对于编写,您也可以使用非单例条带或其他方法。