nvcc -V 与 nvidia-smi显示的cuda版本不一致问题原因及解决途径

在安装mmdetect环境的最后一步python setup.py develop的时候,显示检测到的cuda版本是9.1,但是需求是10.2
在这里插入图片描述
使用nvidia-smi查看发现确实是10.2版本的,cd到/usr/local地址下,用stat cuda指令查看也是指向10.2
在这里插入图片描述
后来用nvcc -V发现查询到的版本号是9.1:
在这里插入图片描述
查了一下原因,CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.0和11.1等)。

用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。
用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。
综上,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。

但实际上我确实只装了cuda,所以判断是路径问题,因此在路径上添加如下两行代码

vim .bashrc
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH

然后激活

source ~/.bashrc

最终解决问题。在这里插入图片描述
mmdetct安装也成功了

猜你喜欢

转载自blog.csdn.net/onepunch_k/article/details/123334444
今日推荐