问题描述

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文件的位置:

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐