Docker容器内CUDA版本不一致及PyTorch安装报错问题咨询
问题解答
1. nvidia-smi与nvcc版本不一致的原因
nvidia-smi显示的是宿主机GPU驱动支持的最高CUDA版本:Docker容器通过--gpus all参数共享宿主机的GPU驱动,因此无论容器内安装的CUDA Toolkit版本是什么,nvidia-smi都会输出宿主机驱动对应的最高兼容CUDA版本(此处为12.2)。nvcc -V显示的是容器内安装的CUDA Toolkit版本:你执行docker run时使用的镜像IDfa1cbb599171,并未对应你拉取的andrewseidl/nvidia-cuda:10.2-devel-ubuntu20.04镜像,而是指向了CUDA 12.1版本的镜像,导致容器内实际安装的是CUDA 12.1 Toolkit,所以nvcc输出12.1版本。
2. PyTorch版本不匹配报错的原因
报错的核心是版本兼容性冲突:当前容器内检测到的CUDA Toolkit版本为12.1,但你要安装的代码依赖的PyTorch是基于CUDA 10.2编译的,两者版本不匹配。
- 要么是容器内预先安装的PyTorch是适配CUDA 10.2的版本,与当前容器的CUDA 12.1 Toolkit不兼容;
- 要么是你的代码在构建过程中,会根据当前环境的CUDA版本匹配PyTorch,而当前环境的CUDA 12.1与代码预期的CUDA 10.2冲突。
内容的提问来源于stack exchange,提问作者Wooni
相关产品推荐
相关产品推荐

