【发布时间】:2019-07-27 22:59:57
【问题描述】:
我有一些使用 tensorflow 训练神经网络的 python 代码。
我创建了一个基于 tensorflow/tensorflow:latest-gpu-py3 镜像的 docker 镜像,该镜像运行我的 python 脚本。 当我启动一个 EC2 p2.xlarge 实例时,我可以使用命令运行我的 docker 容器
docker run --runtime=nvidia cnn-userpattern train
包含我的代码的容器运行时没有错误,并使用主机 GPU。
问题是,当我尝试使用实例 ml.p2.xlarge(我也尝试使用 ml.p3.2xlarge)在 AWS Sagemaker 训练作业中运行相同的容器时,算法失败并出现错误代码:
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
现在我知道错误代码是什么意思了。这意味着docker主机的运行环境没有设置为“nvidia”。 AWS 文档说用于运行 docker 映像的命令总是
docker run image train
如果在 docker/deamon.json 中将默认运行时设置为“nvidia”,这将起作用。有什么方法可以编辑主机 deamon.json 或在 Dockerfile 中告诉 docker 使用“--runtime=nvidia”?
【问题讨论】:
标签: amazon-web-services docker tensorflow gpu amazon-sagemaker