Nvidia GPU的内存带宽测试

时间:2013-05-23 08:34:00

标签: cuda nvidia

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

使用的程序在这里:https://developer.nvidia.com/content/how-optimize-data-transfers-cuda-cc

在桌面上(使用MacOS)

Device: GeForce GT 650M
Transfer size (MB): 16

Pageable transfers
Host to Device bandwidth (GB/s): 4.053219
Device to Host bandwidth (GB/s): 5.707841

Pinned transfers
Host to Device bandwidth (GB/s): 6.346621
Device to Host bandwidth (GB/s): 6.493052

在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

BTW我没有root权限..

我不确定为什么它对特斯拉设备的影响较小..任何人都可以指出是什么原因?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-1)

快速查看Tesla K20c specGT 650M spec可以澄清事情。我们看到特斯拉的PCIe接口版本 2.0 slower与GT PCIe接口 3.0 。虽然特斯拉在内存和内存总线方面拥有更多资源,但这两个参数限制 内存带宽。因此,特斯拉可能会发出比GT更多的内存指令,但由于PCIe接口,它们会停止运行。

当然这可能不是唯一的原因,但是对于细节我会探索两种卡的架构,因为我看到了很小的差异(至少在命名中)。

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

相关问题