nvcc -V 与 nvidia-smi显示的cuda版本不一致问题原因及解决途径
vim .bashrcexport PATH=/usr/local/cuda-10.1/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATHsource ~/.bashrc
在安装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安装也成功了
更多推荐
所有评论(0)