1

我正在尝试使用 AWS Sagemaker 将我的工作负载分配到多个 GPU。我正在使用带有 tensorflow 2.0 的 DCGAN 的自定义算法。到目前为止,代码在单个 GPU 上运行完美。我决定实现相同的代码,但使用跨多个 GPU 的 horovod 分布来减少运行时间。将代码从原始代码更改为 horovod 时,似乎工作方式相同,并且训练时间大致相同。但是,当我打印出 hvd.size() 时,我只得到 1 的大小,而不管是否存在多个 GPU。Tensorflow 可以识别所有当前的 GPU;霍罗沃德,没有。

我已经尝试在 Sagemaker 和 docker 容器中的 EC2 实例上运行我的代码,并且在这两种环境中,同样的问题仍然存在。

这是我的 github 存储库的链接:

这里

我还尝试使用完全来自 horovod 存储库的不同神经网络,更新到 tf2.0:

管理员

在这一点上,我只是试图在一个实例中使用 GPU,而不是尝试使用多个实例。

我想我可能在 docker 映像中缺少某种依赖项,或者有某种先决条件命令供我运行。我真的不知道。

谢谢。

4

0 回答 0