1 CPU 能否访问别人的 PCI 资源
Can 1 CPU access another's PCI resources
我们正在开发一个基于 CUDA 的系统,用于大型统计分析。
我有一个双插槽主板,每个插槽都分配有不同的 PCI 插槽。 2x x16,每个 LGA 2011 CPU 1 x8(即每个 40 条车道)。我的问题是:1 CPU 可以访问另一个 PCI 插槽上的 GPU 吗?
显然,由于每个 CPU 只有 40 个通道,这是可用于数据移动的最大带宽。该程序的一部分是多进程的,因此我们可以同时利用 CPUs 和它们的 GPU。
但其他部分是单进程,并且可以利用所有可用的 GPU 资源(数据争用除外)(如果可用)。
另一种选择是购买具有 PLX 支持的不同 MB。
我会测试它,但我们目前只安装了 1 个 CPU,如果成功的话,我宁愿用 $$$ 购买不同的机箱和主板(带 PLX 开关)没用。
谢谢
当然可以。每个 CPU 都有一个用于其 PCI-e 设备的 PCI-e 控制器,并且该控制器可以被任一 CPU 访问,就像所有 I/O 设备一样。
事实证明,目前 Cuda 无法通过 QPI 进行通信。因此,尽管可以使用所有卡,但一个处理器和另一个处理器上的卡之间没有可用的对等通信。
因此,虽然答案是肯定的,但它确实有重要的警告。
我们正在开发一个基于 CUDA 的系统,用于大型统计分析。
我有一个双插槽主板,每个插槽都分配有不同的 PCI 插槽。 2x x16,每个 LGA 2011 CPU 1 x8(即每个 40 条车道)。我的问题是:1 CPU 可以访问另一个 PCI 插槽上的 GPU 吗?
显然,由于每个 CPU 只有 40 个通道,这是可用于数据移动的最大带宽。该程序的一部分是多进程的,因此我们可以同时利用 CPUs 和它们的 GPU。
但其他部分是单进程,并且可以利用所有可用的 GPU 资源(数据争用除外)(如果可用)。
另一种选择是购买具有 PLX 支持的不同 MB。
我会测试它,但我们目前只安装了 1 个 CPU,如果成功的话,我宁愿用 $$$ 购买不同的机箱和主板(带 PLX 开关)没用。
谢谢
当然可以。每个 CPU 都有一个用于其 PCI-e 设备的 PCI-e 控制器,并且该控制器可以被任一 CPU 访问,就像所有 I/O 设备一样。
事实证明,目前 Cuda 无法通过 QPI 进行通信。因此,尽管可以使用所有卡,但一个处理器和另一个处理器上的卡之间没有可用的对等通信。
因此,虽然答案是肯定的,但它确实有重要的警告。