点对点CUDA转移

时间:2013-07-17 18:25:57

标签: cuda p2p nvidia bandwidth pci-e

我听说过点对点内存传输并阅读了有关它的内容,但无法真正理解这与标准PCI-E总线传输相比有多快。

我有一个使用多个gpu的CUDA应用程序,我可能对P2P传输感兴趣。我的问题是:与PCI-E相比有多快?我可以经常使用它来让两个设备相互通信吗?

1 个答案:

答案 0 :(得分:8)

CUDA“peer”指的是另一个能够从当前GPU访问数据的GPU。所有具有计算2.0及更高版本的GPU都启用了此功能。

对等内存副本涉及使用cudaMemcpy通过PCI-E复制内存,如下所示。

cudaMemcpy(dst, src, bytes, cudaMemcpyDeviceToDevice);

请注意,dstsrc可以位于不同的设备上。

cudaDeviceEnablePeerAccess使用户能够启动使用来自多个设备的数据的内核。内存访问仍然通过PCI-E完成,并且具有相同的瓶颈。

一个很好的例子就是来自cuda样本的simplep2p