Ubuntu系统中nvcc 11.5与nvidia-smi显示的CUDA 12.2版本不匹配问题求助
Ubuntu系统中nvcc 11.5与nvidia-smi显示的CUDA 12.2版本不匹配问题求助
嗨,这个版本不匹配的问题在Ubuntu装CUDA时真的超常见,我来给你捋清楚原因和解决办法哈!
首先得搞懂两个版本的本质区别:
- nvidia-smi里显示的CUDA Version: 12.2,是你的NVIDIA驱动支持的最高CUDA版本,不是你实际安装的CUDA开发工具包(Toolkit)版本;
- 而
nvcc --version显示的11.5,才是你当前系统中实际可用的CUDA编译器版本,这个版本来自你通过sudo apt install nvidia-cuda-toolkit装的工具包——Ubuntu默认软件源里的这个包版本更新特别慢,所以装出来是旧的11.5,和驱动支持的12.2完全是两回事。
接下来给你两个靠谱的解决办法,按需选就行:
办法一:卸载旧工具包,安装匹配驱动的CUDA 12.2 Toolkit
- 先把旧的11.5工具包彻底卸载:
sudo apt remove --purge nvidia-cuda-toolkit sudo apt autoremove - 下载CUDA 12.2的安装包(deb或者runfile格式都行),安装的时候注意:因为你已经装好了支持12.2的驱动,所以安装过程中一定要选择不安装驱动组件,避免和现有驱动冲突。装完之后,
nvcc --version就会显示12.2了。
办法二:保留旧工具包,通过环境变量优先调用新的nvcc
如果你不想卸载旧的11.5工具包,也可以装完CUDA 12.2 Toolkit后,把它的路径加到系统环境变量里,让系统优先用新的编译器:
- 假设你把CUDA 12.2装在了默认路径
/usr/local/cuda-12.2,打开你的shell配置文件(比如~/.bashrc,如果用zsh就是~/.zshrc); - 在文件末尾加上这两行:
export PATH=/usr/local/cuda-12.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH - 保存后执行
source ~/.bashrc(对应你的配置文件),再输入nvcc --version,就能看到12.2的版本了。
最后再提个小提醒:以后如果要装和驱动匹配的CUDA版本,尽量别用Ubuntu默认源里的nvidia-cuda-toolkit,直接装对应版本的官方Toolkit才是最稳妥的~
备注:内容来源于stack exchange,提问作者Maifee Ul Asad
相关产品推荐
相关产品推荐

