nvcc和nvidia-smi显示版本不同

nvcc和nvidia-smi显示的版本不一致

服务器上安装了多个版本的cuda,安装某个python库时,需要切换一下cuda的版本。而关于切换cuda版本的文章,csdn上已经给出了 很多教程(虽然都是抄来抄去),这里贴出一条,仅供参考:

https://blog.csdn.net/Maple2014/article/details/78574275

而这些教程可能有个问题,就是一旦更改cuda版本,会对所有人的cuda都生效,因为修改了软链接,比较保险的办法是,修改自己的~/.bashrc文件,在自己的文件中,指定cuda的路径和链接库的目录。

具体方法如下,在自己的~/.bashrc文件中写如下内容:

export PATH="$PATH:/usr/local/cuda-10.1/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-10.1/lib64"

之后执行source ~/.bashrc,使配置生效。

 

但是按照上面的方法操作后,又出现了一个问题:

nvcc -V # 查看cudnn的版本仍为9.1
# 但是使用nvidia-smi时,查看cuda版本已经切换为了10.1
nvidia-smi

对此,网上很少有解释,自己也挺困惑的,命名已经在配置文件中进行了修改了,为什么两个地方查看的cuda版本不同呢?

参考了文章https://www.jianshu.com/p/eb5335708f2a,得到了答案:

nvcc&nvidia-smi

  • nvcc属于时CUDA的编译器,将程序编译成可执行的二进制文件

  • nvidia-smi全称是NVIDIA System Management Interface,是一种命令行实用工具,用来帮助管理和监控NVIDIA GPU设备的。

  • 当我们安装一个版本的cuda时,实际上会同时安装runtime api和driver api,前者对应nvcc后者对应nvidia-smi查看到的。个人理解是,第一次安装cuda时,nvcc关联了第一次安装的版本,并放在了环境变量中的/usr/bin目录下。

 

而我们前面添加环境变量的方式,是把目标版本的cuda路径放在了$PATH变量的最后面,查找程序的时候会先查找/usr/bin目录,所以就无法找到我们修改后的版本了。所以,正确的做法是:

export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-10.1/lib64"

添加我们的cuda路径在$PATH变量的最前面,这样就会优先在我们设置的路径下进行寻找了。

 

nvcc和nvidia-smi显示版本不同

上一篇:lvm磁盘扩容


下一篇:Photoshop将外景情侣图片调成柔和的紫黄色