如何解释PCIe总线上的性能变化?

时间:2015-09-25 03:12:07

标签: cuda gpu data-transfer pci-e

在我的CUDA程序中,我发现通信时间不同的运行(高达50%)之间存在很大差异,包括主机到设备和设备在PCI Express上为固定内存托管数据传输时间。我怎样才能解释这种变化?当PCI控制器和内存控制器忙于执行其他PCIe传输时,是否会发生这种情况?任何见解/参考都非常感谢。 GPU是Tesla K20c,主机是AMD Opteron 6168,其中12个内核运行Linux操作系统。 PCI Express版本是2.0。

1 个答案:

答案 0 :(得分:2)

您正在执行此操作的系统是NUMA系统,这意味着主机中的两个独立CPU(Opteron 6168在一个软件包中有两个6核CPU)中的每一个都有自己的内存控制器每个CPU内存和托管CUDA设备的PCI-e控制器之间可能有不同数量的HyperTransport跳数。

这意味着,根据CPU亲和性,运行带宽测试的线程可能会对主机内存和GPU产生不同的延迟。这可以解释你所看到的时间差异