我尝试将tensorflow和nvidia与docker一起使用,但遇到以下错误:
docker run --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"process_linux.go:407: running prestart hook 1 caused \\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=10.0 brand=tesla,driver>=384,driver<385 --pid=5393 /var/lib/docker/overlay2/......./merged]\\nnvidia-container-cli: requirement error: unsatisfied condition: brand = tesla\\n\\"\"": unknown.
尝试运行 nvidia-smi 时出现类似错误:
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
但是当尝试使用 cuda:9.0-base 运行 nvidia-smi 时,它就像一个魅力:
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
我需要确保 cuda 10 可以正常工作还是可以使用 cuda 9 运行 TensorFlow?如何使用 cuda:9.0-base 运行tensorflow的docker镜像? (仍然是 docker newby)。
非常感谢!
最佳答案
好吧,我想我终于开始弄清楚我的机器上的困惑情况了。
tensorflow镜像不关心cuda镜像版本,它不使用docker cuda镜像。它关心我的 nvidia 驱动程序,因为它在 tensorflow 图像中集成了 CUDA。
(与我当前的驱动程序配合使用的 docker cuda 镜像是 cuda:9.0)
这意味着我必须找到与我的驱动程序 (390.116) 配合使用的 tensorflow 镜像,或者更新驱动程序。
我用tensorflow:1.12.0-gpu-py3尝试了相同的命令,没有任何问题。
关于docker - Tensorflow/nvidia/cuda docker 版本不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55389669/