当前位置: 首页 > 知识库问答 >
问题:

如何在Docker容器中使用GPU访问启动AWS Sagemaker培训工作?

袁鸿畅
2023-03-14

我有一些python代码,它使用tensorflow训练神经网络。

我基于运行python脚本的tensorflow/tensorflow:latest-gpu-py3映像创建了一个docker映像。当我启动EC2P2时。xlarge实例我可以使用以下命令运行docker容器

docker run --runtime=nvidia cnn-userpattern train

包含我的代码的容器运行时没有错误,并且使用主机GPU。

问题是,当我尝试使用实例ml.p2.xlarge在AWS Sagemaker训练作业中运行相同的容器时(我也尝试使用ml. p3.2xsize),该算法失败并带有错误代码:

我的名字是libcuda。所以1:无法打开共享对象文件:没有此类文件或目录

现在我知道错误代码是什么意思了。这意味着docker主机的运行时环境没有设置为“nvidia”。AWS留档表示用于运行docker映像的命令总是

docker run image train

如果docker/deamon中的默认运行时设置为“nvidia”,该选项将起作用。json。有没有办法编辑主持人迪蒙。json或告诉Dockerfile中的docker使用“-runtime=nvidia”?

共有1个答案

席宜修
2023-03-14

在AWS支持服务的帮助下,我们找到了问题。我用来运行代码的docker映像是,正如我所说的tensorflow/tensorflow:latest-gpu-py3(可在https://github.com/aws/sagemaker-tensorflow-container)

“最新”标签指的是1.12版。此时为0。问题不是我自己的,而是这个版本的docker图像。

如果我的docker图像基于tensorflow/tensorflow:1.10。1-gpu-py3,它可以正常运行并充分使用gpu。

显然,docker/deamon中的默认运行时设置为“nvidia”。AWS sagemaker的所有GPU实例上的json

 类似资料:
  • 我正在寻找一种从docker容器内部使用GPU的方法。

  • 问题内容: 要启动容器,我输入以下命令: 但我想在此容器中打开外壳以键入mongo命令。我应该运行什么命令来执行相同的操作? 问题答案: 您可以通过运行以下命令来运行交互式mongo shell: 否则,如果您的容器已经在运行,则可以使用以下命令:

  • 问题内容: 假设我有一个要运行的Docker容器,那么我可以调用 一切都很好。如果系统崩溃并重新启动,是否有内置的方式来运行容器,使其能够自动重新启动? 如果是这样,这在Docker Compose中也可用吗? 问题答案: 是的,docker具有重启策略,该策略可以处理此问题。这也可以在compose.yml配置文件中找到。

  • 假设我有一个要运行的Docker容器,然后我可以调用 一切都很好。是否有一种内置方法可以运行容器,以便在系统崩溃并重新启动时自动重新启动容器? 如果是这样,这在 Docker Compose 中是否也可用?

  • 问题内容: 我正在尝试创建一个将自动启动apache的Dockerfile。没事。但是,如果我登录到容器并运行它就可以了。为什么我不能从Dockerfile运行该命令? 问题答案: 问题出在这里:执行此命令时,进程将与外壳分离。但是Docker仅在主进程处于活动状态时才能工作。 解决方案是在 前台 运行Apache 。必须看起来像这样:(仅更改了最后一行)。