2

在基于 Haswell 的系统上,我有 4 个 GPU 挂在同一个 PCIe 开关(PLX PEX 8747)上。我想向每个 GPU 发送相同的数据。PCIe 交换机是否可以将数据复制到 N 个目标,而不是进行 N 个单独的传输?实际上是否可以通过 PCIe 总线向 N 个 GPU 广播数据?

我想知道 SLI / Crosssfire 如何处理此类问题?我可以想象在渲染的给定场景中,每个 GPU 的大量数据都是相同的。我记得读到过旧的 NVIDIA 890 Ultra SLI 系统在他们的 SLI 开关中包含了这种广播机制。

http://www.nvidia.com/docs/IO/52280/NVIDIA_Broadcast_PWShort_TB.pdf

使用较新的 PCIe 交换机可以做到这一点吗?

更新:PCIe 标准似乎支持多播,如下面的答案所述。我在这找到了一些信息

www.pcisig.com/developers/main/training_materials/get_document?doc_id=31337695e3bc0310ea570c9df49e507b9d3eb4a5

是的,我特别想要一个 CUDA 或 OpenCL 接口来将数据传输到 N 个设备。似乎很遗憾 API 还不支持这一点。

4

1 回答 1

4

The PCI-e SIG ratified a scheme for switch level multicast over PCI-e about 5 years ago, and it (I believe) is fully described in the PCI-e 3.0 standard. However, I don't believe any of the GPU/Acceleration vendors support multicast yet, and there certainly isn't any CUDA level API support for such a feature as of CUDA 5.5.

于 2013-11-05T19:40:03.183 回答