首页 > 解决方案 > 只有CUDA库(没有OpenMPI)的多GPU并行处理代码是否有自动多节点分布式处理功能?

问题描述

我正在构建和测试 OpenPAI v0.14.0。以前,我在 1 节点 4-gpu 机器上构建了 OpenPAI,并将其用于 4-gpu 分布式并行处理。

这一次,一台新的 1-node 2-gpu 机器进来并连接了两个节点。OpenPAI 仪表板显示有 6 个 gpu 可用。但是,当我尝试将一项作业分配给 6-gpu 时,我得到退出代码:-7200,退出原因:maxGPUs = 4。

我认为maxGPU = 4,一个节点上最大的GPU数量。OpenPAI 支持的 GPU 分发是否只能在一个节点上进行?

我在 openpai.readthedocs.io 网站上找到了分布式作业示例。 https://openpai.readthedocs.io/en/latest/manual/cluster-user/advanced-jobs.html#distributed-job-examples

这里的两个示例之一,TensorFlow CIFAR10,似乎正在将不同的作业分配到不同的节点,即参数服务器和工作者。对于另一个例子,Horovod PyTorch,似乎不仅编写了 GPU 分布式代码,而且已经使用 OpenMPI 来分布代码内部的节点。

仅当分布式编程使用 OpenMPI 在代码级别直接使用多节点时,我是否可以在 OpenPAI 中使用多节点分布式 GPU 并行化?

OpenPAI 不会自动处理仅使用 CUDA 库的多节点分布式多 GPU 并行编程吗?

谢谢你。

标签: openpai

解决方案


推荐阅读