【问题标题】:GPUDirect peer-to-peer access and memory transfer between two Titan x GPUSGPUDirect 点对点访问和两个 Titan x GPU 之间的内存传输
【发布时间】:2019-05-10 00:54:20
【问题描述】:

我想知道是否可以在两个 Titan X GPU 之间使用点对点内存传输和内存访问。目前我只有一个 GPU,如果可能的话,我可能会再买一个。 我知道在herehere 之前也有人问过类似的问题,但这些问题已经超过 2 年了。我在问有没有什么新的东西。

【问题讨论】:

    标签: cuda gpgpu


    【解决方案1】:

    Titan X 应该可以。不过,有一些注意事项:

    1. 操作系统/驱动程序模型 - 在 Windows 上,GPU 可以处于 WDDM 模式或 TCC 模式。 WDDM 模式 AFAIK 不支持 P2P。因此,您应该将 GPU 置于 TCC 模式,该模式在最近的驱动程序中支持 Titan X(尽管大多数其他 GeForce 产品不支持)。 CUDA 支持的 Linux 操作系统在这方面不应该有任何额外的考虑。

    2. 系统拓扑 - GPU Direct P2P 依赖于位于相同 PCIE 结构上的源设备和目标设备,这实际上意味着它们必须连接到相同的 PCIE 根联合体。如果您的系统拓扑结构是一个 PCIE 插槽源自一个 CPU 插槽,而另一个 PCIE 插槽源自另一个 CPU 插槽(例如在双插槽主板中),那么这些 PCIE 结构将在逻辑上独立(它们由单独的根联合体提供服务) ) 并且两者之间的 P2P 传输将是不可能的。此外,拓扑决策取决于 GPU 驱动程序能够发现并正确识别它。如果由于某种原因没有发生这种情况,那么其他兼容的系统可能仍然不适用于 P2P。因此,对于企业/生产用途,一般建议是购买经过制造商认证的系统,以便在 GPU 之间进行 P2P 访问。因此,这个答案决不能保证您的特定组件集能够正常工作。

    当然,不在适当 P2P 环境中的两个 GPU 之间的数据传输仍然是可能的,但数据将通过更直接涉及 CPU 的路径流动。

    请注意,一般来说,P2P 支持可能因 GPU 或 GPU 系列而异。在一种 GPU 类型或 GPU 系列上运行 P2P 的能力并不一定表明它可以在另一种 GPU 类型或系列上运行,即使在相同的系统/设置中也是如此。 GPU P2P 支持的最终决定因素是通过cudaDeviceCanAccessPeer 查询运行时提供的工具。所以这里的陈述“应该可以使用 Titan X”不应被解释为指代任何其他 GPU 类型。 P2P 支持也会因系统和其他因素而异。此处的任何陈述均不保证任何特定设置中的任何特定 GPU 都支持 P2P。

    【讨论】:

    • 非常感谢,罗伯特。
    猜你喜欢
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2013-12-03
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多