问题描述
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文件的位置:

版权声明:本文为ljp1919原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。