Cuda Nvidia GPU上的内存带宽测试';s

Cuda Nvidia GPU上的内存带宽测试';s,cuda,nvidia,Cuda,Nvidia,我试图使用nvidia发布的代码并进行内存带宽测试,但得到了一些令人惊讶的结果 使用的程序如下: 在桌面上(使用MacOS) 在Linux服务器上: Device: Tesla K20c Transfer size (MB): 16 Pageable transfers Host to Device bandwidth (GB/s): 1.482011 Device to Host bandwidth (GB/s): 1.621912 Pinned transfers Host to Dev

我试图使用nvidia发布的代码并进行内存带宽测试,但得到了一些令人惊讶的结果

使用的程序如下:

在桌面上(使用MacOS)

在Linux服务器上:

Device: Tesla K20c
Transfer size (MB): 16

Pageable transfers
Host to Device bandwidth (GB/s): 1.482011
Device to Host bandwidth (GB/s): 1.621912

Pinned transfers
Host to Device bandwidth (GB/s): 1.480442
Device to Host bandwidth (GB/s): 1.667752
顺便说一句,我没有root权限

我不知道为什么它在特斯拉的设备上更少。。有人能指出原因吗

快速查看并澄清问题。我们看到,特斯拉的PCIe接口版本为2.0,而GT PCIe接口版本为3.0。尽管特斯拉在内存和内存总线方面拥有更多资源,但这两个参数将限制内存带宽。因此,特斯拉可能会发出比GT更多的内存指令,但由于PCIe接口,这些指令会暂停

当然,这可能不是唯一的原因,但对于细节,我将探讨这两张卡的体系结构,因为我看到了微小的差异(至少在命名上)

编辑#1:参考下面的评论,显然您可以在PCIe 2.0板上实现PCIe 3.0速度。查看

快速查看并澄清问题。我们看到,特斯拉的PCIe接口版本为2.0,而GT PCIe接口版本为3.0。尽管特斯拉在内存和内存总线方面拥有更多资源,但这两个参数将限制内存带宽。因此,特斯拉可能会发出比GT更多的内存指令,但由于PCIe接口,这些指令会暂停

当然,这可能不是唯一的原因,但对于细节,我将探讨这两张卡的体系结构,因为我看到了微小的差异(至少在命名上)


编辑#1:参考下面的评论,显然您可以在PCIe 2.0板上实现PCIe 3.0速度。选中

您服务器中的GPU很可能不在16通道PCI express插槽中。我希望像K20C这样的PCI-e v2.0设备能够在合理指定的现代服务器上实现4.5-5.5Gb/s的峰值吞吐量(在桌面系统和集成PCI-e控制器上可能约为6Gb/s)。您的结果看起来像是将GPU托管在一个只有8条甚至4条活动通道的16倍插槽中


也可能有其他因素在起作用,如CPU-IOH亲和力,它可以增加承载GPU的PCI-e总线与运行测试的处理器及其内存之间的“跳数”)。但提供进一步的分析需要更多关于服务器配置和硬件的详细信息,这实际上超出了StackOverflow的范围。

服务器中的GPU很可能不在16通道PCI express插槽中。我希望像K20C这样的PCI-e v2.0设备能够在合理指定的现代服务器上实现4.5-5.5Gb/s的峰值吞吐量(在桌面系统和集成PCI-e控制器上可能约为6Gb/s)。您的结果看起来像是将GPU托管在一个只有8条甚至4条活动通道的16倍插槽中


也可能有其他因素在起作用,如CPU-IOH亲和力,它可以增加承载GPU的PCI-e总线与运行测试的处理器及其内存之间的“跳数”)。但是,提供进一步的分析需要更多关于服务器配置和硬件的详细信息,这实际上超出了StackOverflow的范围。

您能给我们更多关于您的软件(CUDA版本、驱动程序版本)的信息吗?我的笔记本电脑上有相同的GT 650M GPU,但测试程序返回的带宽对我来说要高得多(
~6.5
~10.4
GB/s)。我用CUDA 5.0、Linux 64位、驱动程序319.17对此进行了测试。此外,GT 650M可以使用DDR3或GDDR5,这很重要。CUDA版本在这两种系统上都是CUDA 5.0,都是64位系统@我的问题不在于GT 650M。。这与特斯拉k20c相当。。我不明白为什么这比GT 650M慢?我的观点是,除了硬件规格之外,可能还有其他原因,即使这些因素起主要作用。带宽可能会受到可用/连接PCIe通道的限制。这些可以通过
lspci-vv
进行检查。请参阅问题。您能给我们更多关于您的软件(CUDA版本、驱动程序版本)的信息吗?我的笔记本电脑上有相同的GT 650M GPU,但测试程序返回的带宽对我来说要高得多(
~6.5
~10.4
GB/s)。我用CUDA 5.0、Linux 64位、驱动程序319.17对此进行了测试。此外,GT 650M可以使用DDR3或GDDR5,这很重要。CUDA版本在这两种系统上都是CUDA 5.0,都是64位系统@我的问题不在于GT 650M。。这与特斯拉k20c相当。。我不明白为什么这比GT 650M慢?我的观点是,除了硬件规格之外,可能还有其他原因,即使这些因素起主要作用。带宽可能会受到可用/连接PCIe通道的限制。这些可以通过
lspci-vv
进行检查。请看问题。他正在使用一个,您应该根据适当的硬件调整您的答案。@KiaMorot哦,这可能是一个原因。。这是PCIe 2.0的预期速率吗?还是更高?如果你不知道,我会查一查。@SagarMasuti这至少是最快的逻辑原因。但这取决于你想挖多深。据我所知,我认为没有“预期利率”这样的东西。NVIDIA工程师给出了理论带宽,您可以看到实际带宽。可能还有其他较小的原因,您可以更详细地了解这些卡的体系结构,因为我看到了一个小差异(至少在命名方面)。可能会损失一些性能。@SagarMasuti:关于PCIe 3.0,您可以阅读。这也解释了开普勒GPU上可分页和固定内存传输之间的区别。他使用的是,你应该调整你的答案以适应适当的硬件
Device: Tesla K20c
Transfer size (MB): 16

Pageable transfers
Host to Device bandwidth (GB/s): 1.482011
Device to Host bandwidth (GB/s): 1.621912

Pinned transfers
Host to Device bandwidth (GB/s): 1.480442
Device to Host bandwidth (GB/s): 1.667752