什么是NVIDIA Runtime API版本?如何将其升级至与Driver API一致的11.5版本
概念澄清
- Driver API Version:由你安装的NVIDIA显卡驱动版本决定,
nvidia-smi显示的11.5就是该版本,代表你的驱动最高可支持11.5及以下版本的CUDA运行时。 - Runtime API Version:是你本地安装的CUDA工具包(CUDA Toolkit)对应的版本,你当前显示的10.2说明系统中安装的是CUDA 10.2工具包。二者不需要完全一致,只要Runtime版本 ≤ Driver支持的最高版本即可正常运行,你要升级到11.5完全兼容。
问题原因
你遇到的报错对应两个独立问题:
- 安装的Paddle版本和你当前的CUDA 10.2版本不匹配,或者你安装的是CPU版/其他CUDA版本的Paddle包
libcudnn.so找不到的报错,是因为你要么没有安装对应CUDA版本的cuDNN库,要么没有把cuDNN的库路径添加到系统动态库搜索路径中。
解决步骤
步骤1:卸载旧版CUDA(新手推荐,避免多版本冲突)
执行以下命令删除现有CUDA 10.2:
sudo apt --purge remove "cublas*" "cuda*" "nsight*" sudo apt autoremove sudo apt autoclean rm -rf /usr/local/cuda-10.2
步骤2:安装CUDA 11.5 Toolkit
从NVIDIA官方下载适配Ubuntu 18.04的CUDA 11.5本地deb安装包及对应的pin文件,依次执行以下命令:
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo dpkg -i cuda-repo-ubuntu1804-11-5-local_11.5.0-495.29.05-1_amd64.deb sudo apt-key add /var/cuda-repo-ubuntu1804-11-5-local/7fa2af80.pub sudo apt update sudo apt install -y cuda-11.5
步骤3:安装适配CUDA 11.5的cuDNN
从NVIDIA官方下载适配CUDA 11.5的cuDNN v8.x版本压缩包,解压后执行以下操作:
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.5/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.5/lib64 sudo chmod a+r /usr/local/cuda-11.5/include/cudnn*.h /usr/local/cuda-11.5/lib64/libcudnn*
步骤4:配置环境变量
编辑~/.bashrc文件,在末尾添加以下内容:
export CUDA_HOME=/usr/local/cuda-11.5 export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH export PATH=$CUDA_HOME/bin:$PATH
保存后执行source ~/.bashrc使配置生效,此时执行nvcc -V即可看到Runtime API Version已更新为11.5。
步骤5:安装对应版本的PaddlePaddle
卸载现有Paddle包后,安装适配CUDA 11.5的GPU版Paddle,版本号后缀带.post115即为对应CUDA 11.5的版本:
pip uninstall -y paddlepaddle paddlepaddle-gpu pip install paddlepaddle-gpu==2.3.2.post115
步骤6:验证配置
执行以下命令验证Paddle是否能正常调用GPU:
python -c "import paddle; paddle.utils.run_check()"
如果输出PaddlePaddle is installed successfully!说明所有配置正常。
内容的提问来源于stack exchange,提问作者Z.Shuang
相关产品推荐
相关产品推荐

