操作的数据速率cudaMemcpy
很大程度上受分配用于从 CPU 到 GPU 运行的 PCI-e 3.0(或 2.0)通道数量的影响。我很好奇如何在包含两个 GPU 的 Nvidia 设备上使用 PCI-e 通道。
Nvidia 有一些产品在单个 PCI-e 设备上具有两个 GPU。例如:
- GTX 590 包含两个 Fermi GF110 GPU
- GTX 690 包含两个 Kepler GK104 GPU
与许多较新的显卡一样,这些设备安装在PCI-e 16
插槽中。对于仅包含一个GPU 的卡,GPU 可以使用 16 个 PCI-e 通道。
如果我的设备包含两个 GPU(如 GTX 690),但我只在其中一个GPU上运行计算作业,那么所有 16 个 PCI-e 通道是否可以为正在使用的一个 GPU 提供服务?
将其显示为 ascii 艺术...
[ GTX690 (2x GF110) ] ------16 PCI-e 通道 ----- [ CPU ]
我不是在谈论CPU 连接到两张各有一个 GPU 的卡的情况。(如下图)
[ GTX670 (1x GK104) ] ------ PCI-e 通道 ----- [ CPU ] ------ PCI-e 通道 ----- [ GTX670 (1x GK104) ]