将相同数据发送到N个GPU

时间:2013-11-05 17:51:32

标签: cuda pci-e

我在基于Haswell的系统上的同一个PCIe交换机(PLX PEX 8747)上挂了4个GPU。我想将相同的数据发送到每个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尚不支持这一点。

1 个答案:

答案 0 :(得分:3)

PCI-e SIG大约5年前批准了PCI-e上的交换机级多播方案,并且(我相信)在PCI-e 3.0标准中有充分的描述。但是,我不相信任何GPU /加速器供应商都支持组播,并且肯定没有任何CUDA级API支持CUDA 5.5这样的功能。