gpt4 book ai didi

cuda - 2-GPU 卡上的 PCI-e channel 分配?

转载 作者:行者123 更新时间:2023-12-02 08:05:00 27 4
gpt4 key购买 nike

cudaMemcpy的数据速率操作很大程度上受到分配从 CPU 到 GPU 运行的 PCI-e 3.0(或 2.0) channel 数量的影响。我很好奇 PCI-e channel 如何在包含两个 GPU 的 Nvidia 设备上使用。

Nvidia 有一些产品在单个 PCI-e 设备上配备两个 GPU。例如:

  • GTX 590 包含两个 Fermi GF110 GPU
  • GTX 690 包含两个 Kepler GK104 GPU

与许多较新的显卡一样,这些设备安装在 PCI-e 16 中插槽。对于仅包含一个 GPU 的卡,GPU 可以使用 16 个 PCI-e channel 。

如果我有一个包含两个 GPU 的设备(例如 GTX 690),但我仅在其中一个 GPU 上运行计算作业,所有 16 个 PCI 都可以-e channel 服务于正在使用的一个 GPU?

<小时/>

将其显示为 ASCII 艺术...

[ GTX690 (2x GF110) ] ------16 PCI-e channel ----- [ CPU <强>]

<小时/>

不是在谈论 CPU 连接到两张卡(每张卡有一个 GPU)的情况。 (如下图)

[ GTX670 (1x GK104) ] ------ PCI-e channel ----- [ CPU ] ------ PCI-e channel -----[ GTX670 (1x GK104) ]

最佳答案

GTX 690 使用PLX PCIe Gen 3 bridge chip将两个 GK104 GPU 与主机 PCIe 总线连接。从主机到 PLX 设备以及从 PLX 设备到每个 GPU(PLX 设备总共有 48 个 channel )都有完整的 x16 连接。因此,如果仅使用一个 GPU,您可以为该 GPU 实现大约完整的 x16 带宽。您可以使用 bandwidthTest 来探索这一点包含在 CUDA 示例中。 BandwidthTest 将针对单个 GPU(卡上的两个 GPU 中的一个,这可以通过命令行选项进行选择),并且您应该看到大约完整的带宽,具体取决于系统。如果您的系统支持 Gen3,您应该会看到完整的 PCIe x16 Gen 3 带宽(不要忘记使用 --memory=pinned 选项),该带宽将根据特定系统而有所不同,但应该远高于 6GB/s(可能是在 9-11GB/s 范围内)。如果您的系统支持 Gen2,您应该会看到 4-6GB/s 范围内的速度。关于 GTX 590 也可以做出类似的声明,但它是仅 Gen2 的设备并使用不同的桥接芯片。 BandwidthTest 的结果确认根端口和任一 GPU 之间存在完整的 x16 逻辑路径。当然,天下没有免费的午餐,因此您无法同时获得两个 GPU 的全带宽:您受到 x16 插槽的限制。

关于cuda - 2-GPU 卡上的 PCI-e channel 分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984119/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com