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