cuda、cuDNN的安装和cuda版本不一致问题……

非root用户cuda安装

推荐两篇cuda的安装,可以参考:

  • 非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)
  • 非root用户在Linux系统下安装cuda

注意:

  • 在下载好cuDNN后,对其进行解压,解压到cuda文件夹中。(是额外的cuda文件夹,不是已经安装好的cuda8或cuda10文件夹,反正都要cp到下载好的cuda10中,所以这里其实也没必要一定要解压到cuda文件夹中,虽然一个文件夹中即可,所以在使用两篇文章的cp操作的时候,留意一下就行,不要搞懵了)
  • .bashrc文件中进行配置自己的环境的时候,使用source .bashrc后,如果nvcc -V,没有显示出安装好的版本的时候,有两种解决方法,第一种是查看配置环境的路径是否有问题,第二种是断开ssh链接,重新链接一下,再nvcc -V

cuDNN安装

关于下载cuDNN,选择哪个版本的问题:
cuda、cuDNN的安装和cuda版本不一致问题……_第1张图片
随手甩上该文章链接:cuDNN的安装(版本选择, Runtime 还是 Developer)

如果下载的是tgz版本,下载后,会发现后缀名是:solitairetheme8
解决方法:

cp  cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz
tar -xvf cudnn-8.0-linux-x64-v5.1.tgz

cuda版本不一致问题整理


内容摘自:nvidia-smi 和 nvcc 结果的版本为何不一致
本人最近在跑程序的时候,在几台服务器上,偶然发现了cuda版本的问题,故此来记录一下,最下面有自己的补充。


背景

为何nvidia-smi中的CUDA 版本与nvcc不一致:
cuda、cuDNN的安装和cuda版本不一致问题……_第2张图片
从上述结果可以看出,nvidia-smi的结果显示CUDA版本是10.0,而从nvcc命令来看,却是CUDA 9.0

分析

其实是因为CUDA有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime APIDriver API
nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号,这里是 10.0。
nvcc的结果是对应CUDA Runtime API
在这里插入图片描述

额外说明

在安装CUDA 时候会安装3大组件,分别是 NVIDIA 驱动、toolkit 和 samples。NVIDIA 驱动是用来控制 GPU 硬件,toolkit 里面包括nvcc编译器等,samples或者说SDK 里面包括很多样例程序包括查询设备、带宽测试等等。上面说的 CUDA Driver API是依赖于 NVIDIA 驱动 安装的,而CUDA Runtime API 是通过CUDA toolkit 安装的。


补充

1.在老版本的nvidia驱动下,如何查看版本号???

cuda、cuDNN的安装和cuda版本不一致问题……_第3张图片
这是我在另一台服务器上用nvidia-smi查看版本的时候,上面没有显示出cuda的版本号
我是用 nvcc -V的时候,显示的是(刚安装在自己环境下的cuda10.2):
cuda、cuDNN的安装和cuda版本不一致问题……_第4张图片
用cat查看系统全局的cuda版本的时候:显示的版本是9.0.176
那程序跑的时候,用的cuda版本号是哪个???这个问题如果有谁知道的话,还请告知一下,目前我是不清楚。

然后以目前的环境(pytorch 1.5,torchvision0.6.0),我跑mmdetection的时候(要求pytorch1.4+,torchvision0.5.0,cuda版本9.2+),会报错:
cuda、cuDNN的安装和cuda版本不一致问题……_第5张图片

emm……,说的是nvidia驱动版本太低,网上的解决思路是升级cuda驱动,或者把pytorch的版本降低。

其实最简单的思路就是把nvidia驱动升级吧,也就没有这么多麻烦的琐事了……
如果有大佬知道以上我说的问题的话,或者遇到过的话,欢迎一起讨论讨论。

2. 安装cuda时候下的toolkit 和conda安装的cudatoolkit有啥不一样

在上面下载cuda的时候会下载toolkit,我们在用conda安装pytorch和torchvision的时候,也会给我们下载cudatoolkit,那这两个之间有什么关系吗???

  • conda安装的cudatoolkit, cudnn与在主机上安装的cuda, cudnn有何关系?

摘几点重点的:

  • anaconda 的 cudatoolkit 不包含完整安装cuda的全部文件,只是包含了用于 tensorflow,pytorch,xgboost 和 Cupy 等所需要的共享库文件。
  • 测试了在虚拟环境中,是会优先调用虚拟环境中的cudatoolkit
  • 原生安装的cuda肯定是 conda-cudatoolkit 的超集,conda安装的并不是cuda驱动,里面应该只有api。cuda驱动还是得上nv官网根据文档自己装。
3.待续

你可能感兴趣的:(安装,配置问题集锦,pytorch笔记)