【问题标题】:Peer-to-Peer CUDA transfers点对点 CUDA 传输
【发布时间】:2013-07-16 10:57:45
【问题描述】:

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

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

【问题讨论】:

  • p2p 只是市场说法,CUDA 设备现在可以通过 PCI-E 在彼此之间传输数据。速度将是您对 PCI-E 总线的期望。在更有趣的方面,还有一种叫做“对等访问”的东西,它可以让你启动一个可以从多个设备读取/写入数据的内核。
  • 这很有趣..你能给我指出一些描述这种“对等访问”的东西吗?另外:将此作为答案,对我来说就足够了,我会接受!
  • 添加了带有链接的答案。

标签: cuda p2p nvidia bandwidth pci-e


【解决方案1】:

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

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

cudaMemcpy(dst, src, bytes, cudaMemcpyDeviceToDevice);

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

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

cuda 样本中的 simplep2p 就是一个很好的例子。

【讨论】:

  • 谢谢!这正是我想要的!
猜你喜欢
  • 2021-09-08
  • 2011-11-05
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 2011-10-21
相关资源
最近更新 更多