转自:
本文链接:docker拉取的pytorch-gpu版找不到cuda和cudnn的位置,为何?_ljp1919的专栏-CSDN博客
问题描述
pytorch 镜像位置:
https://hub.docker.com/r/pytorch/pytorch/tags
拉取镜像:
docker pull pytorch/pytorch:1.5-cuda10.1-cudnn7-runtime
查看本地现有镜像清单:
创建一个容器:
docker run --gpus all -td --name=liujiepeng_pytorch pytorch/pytorch bash
注意:其实这里有两个repository名字相同,tag名不同的版本。可以通过用repository:tag进行区分。
进入容器内部:
docker exec -it liujiepeng_pytorch bash
发现在内部找不到cuda和cudnn的位置?
可以看出,有CUDA的驱动(10.2),但是找不到lib文件。也没有nvcc。但是在pytorch内部查看cuda版本:
可以看出cuda版本是10.1,这与拉取的镜像版本一致。
原因分析
究其原因是拉取的镜像是runtime版,所以只有runtime版本的cuda,并没有compiler版。这与安装带有CUDA libs的Pytorch二进制文件类似。Pytorch可以在GPU上运行,但是此时不需要安装完整的CUDA libs,所以也就不能在这个运行环境之外使用nvcc。
解决方案
如果拉取dev版:
docker pull pytorch/pytorch:1.5-cuda10.1-cudnn7-devel
则可以如下图看到lib文件的位置:

或者直接自己在容器中安装cuda
本文探讨了从Docker拉取pytorch-gpu镜像后找不到CUDA和cuDNN的情况,并分析了原因。针对runtime版镜像缺少完整CUDA支持的问题,提供了拉取devel版镜像或自行安装CUDA的解决方案。
7081






