cuda nvcc版本不一致_简易记录:安装GPU驱动,CUDA和cuDNN

本文详述了在Ubuntu系统中如何安全卸载旧的CUDA,安装NVIDIA显卡驱动,选择合适的CUDA版本,并安装cuDNN。过程中提到了如何检查GPU型号和驱动版本,以及如何根据Tensorflow和PyTorch的版本需求选择CUDA版本。文章还介绍了通过官方库和手动下载安装CUDA的两种方法,并提供了安装后的测试和验证步骤。
摘要由CSDN通过智能技术生成

0. 删除卸载用命令(慎用)

# sudo rm /etc/apt/sources.list.d/cuda*

1. 安装NVIDIA显卡驱动

如果对显卡驱动版本没有特别要求或者实在搞不清楚,建议直接跳到第二节,在安装CUDA的时候让它自动帮你安装驱动。

#添加NVIDA显卡驱动库
sudo apt update
ubuntu-drivers devices  

05a57b368c06fb9d7d95db6a7fad6f6b.png

会显示你电脑的GPU型号和可安装的驱动版本。其中带有recommended是建议安装的版本。驱动一般认为是越新的越好。

注意这里的提供的信息并不是最全的,有可能有适合你GPU的更高版本的驱动并未包含在内。可以去官网查询适合你的GPU的最新驱动版本。尤其是当你拥有多个不同型号的GPU时,更需要仔细查询。比如我的显卡是2080 Ti:

527c2dd1b3eef9c0e60a1d3832c05d26.png

点击SEARCH搜索后得到结果(执行于2020/09/29):

ada994684a4f1f4d8998e5c169addd43.png

得到该显卡最新支持的驱动是450.66版本。与用ubuntu-drivers devices命令得到的输出有些许不同,后者显示的版本更低一些(440)。具体适用情况如何我不敢保证,如果你要求不高,就安装后者建议的版本,如果你觉得最新的还是比较好,也可以安装450。

其实在添加了NVIDIA显卡驱动库后,除了用ubuntu-drivers devices这个命令,还可以手动查询可安装的driver版本:

sudo apt list nvidia-driver*

08f0dcb76b897d838aa073fc37edd56c.png

可以看到是库里面是有450的,在确认了你想要安装的驱动版本,如450,直接安装:

#sudo ubuntu-drivers autoinstall  #让Ubuntu自动帮你选择版本并安装
sudo apt install nvidia-driver-450  

35dde91c00c8aecc489216ec875aedf1.png

因为我是之前就安装好的,所以可以看到我安装的是440.64 。

nvidia-smi这个命令日后将会经常用到,来查看GPU的信息和使用情况(注意右上角的CUDA Version并非显示我们安装的CUDA,事实上你即使没有安装CUDA,该指令右上角也会这样显示)。

查看训练进程时的GPU情况一般需要持续监视该输出:

#即每隔0.5秒执行一次nvidia-smi;

2. 安装CUDA

2.1 确认要安装的CUDA版本

根据电脑已有的GPU驱动,先去NVIDIA官方网站查看该驱动版本所能支持的最高CUDA版本(Table 1):

2ab866800c5900b37fe09c05a5fc9313.png

对我安装的440.64而言,可以安装最高为10.2的CUDA。如果你安装的是450,那么是可以安装CUDA 11.0的。

接下来不妨了解一下我们可以安装的CUDA都支持什么版本的Tensorflow,进入Tensorflow官网检查CUDA版本适配:

f2113d0802ce34c59afef2c23e0f36f9.png

可知CUDA 10.1可以支持最新的tensorflow-2.20。注意这里用的不是>=10.1而是指定10.1,意味着CUDA版本并不向下兼容。所以你如果要跑tensorflow1.13.1的老代码,还是要装CUDA 10.0;同样的,如果你要用最新的tensorflow-2.2.0,那么你也不能装CUDA 10.2而只能是CUDA 10.1。

PyTorch也不妨看一下,PyTorch官网下方便有CUDA版本适配的信息:

c4181fc160eca33c14685bd2ece88d58.png

可以看到Pytorch最新的稳定版(Stable 1.5)可以选择CUDA 9.2,10.1和10.2。

综合考虑下来,目前还是装CUDA 10.1比较合适。

但是也先先别急着说那我是不是就不能安装最新的CUDA 11.0了,其实这里你依然可以安装CUDA 11.0,因为你可以在conda创建的虚拟环境里面使用别的版本的CUDA。这样做之后,安装在系统上的CUDA还是11.0,而在conda虚拟环境里面,安装的CUDA可以是10.0来运行tensorflow-2.0.0。用conda虚拟环境配置cuda的教程可以参考我的另一篇文章的第7节。

注意这种虚拟环境里面和系统里面的CUDA版本不一致是可能会碰到一些问题的。一般来说能保持一致还是保持一致。

总之,版本适配问题是非常容易发生且让人头秃的,我们要考虑:GPU硬件型号,GPU驱动,CUDA,TensorFlow,PyTorch还有之后会讲的cuDNN。但只要熟用这些官网资讯,就能得到最新最准确的指导,按部就班,就能保证最大可能地安装成功。

2.2 安装CUDA

偷鸡方法(不建议):

Ubuntu 官方库里有CUDA,提供了安全无痛的CUDA安装方式:

#sudo apt-get autoremove --purge cuda* *cublas*
sudo apt update
sudo apt install nvidia-cuda-toolkit
nvcc --version 

396269738fde46988129a48b5aecca98.png

缺点是无法指定CUDA版本,安装路径也和NVIDIA官方的CUDA路径(/usr/local)不同,故安装cuDNN时可能会有问题。

NVIDIA官方方法:

(2019/09/28更新):最新的CUDA 11.1支持Ubuntu 20.04了:

7cb345de158ac0ade5987c4a8fa509ca.png

以下是更新前的内容:

由于撰写本文时Ubuntu 20.04刚发行不久,NVIDIA CUDA官网暂时未支持20.04,但也不代表适合Ubuntu18.04的CUDA们就无法在20.04上使用,只是会有一点问题需要解决。

进入NVIDIA CUDA库:

54f04b309a35928ad95aa7e1acc139ad.png

以CUDA 10.2为例。点击CUDA Toolkit 10.2即可进入下载界面:(如果你熟悉英文,建议同时也打开对应的Versioned Online Documentation,按照官网指示安装)

a2962c9540b225b908847a4883eaa50d.png

需要注意的是最后一个选项,括号里的:

local代表本地安装:下载CUDA文件至本地,执行安装程序,安装时无需联网,过程比较复杂;

net代表联网安装:通过执行指令将NVIDIA CUDA库(适配Ubuntu 18.04)到我们的软件地址库中,再在命令行里自动安装,全程需要联网。

这里我们只介绍联网安装方法。选中deb(network)后,页面下方会给出指令(Installation Instructions),一个个按顺序执行,最后的安装指令可以先不执行

"deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt list cuda* 

与官网的添加完库之后直接安装cuda不同,添加完库之后先查看现在可以安装哪些cuda软件。执行了apt list cuda*后,结果显示有很多不同版本不同代号的cuda可供安装,包括:cuda,cuda-10-0,cuda-10-1,cuda-10-2,还有各个版本的cuda-toolkit-x-x等等等等:

6593dc4f3804af9bdac5fc5775aec1b6.png

a915fd475cb724108beb1e042e072d19.png
添加完CUDA库后,用sudo apt list cuda*来查看可安装的cuda软件

NVIDIA官方给出的各后缀解释:

c755f939a1a334495d4ca68c19947d46.png

这张表的第一行也解释了为什么我们没有遵循官网指示的最后一步sudo apt install cuda,因为这种方式默认安装最新版本且包含驱动。为了更准确地安装特定版本的CUDA且不安装驱动,应该用更详细的名称来指示安装。

另外也可以发现,虽然我进入的是CUDA Toolkit 10.2的安装界面,但选择联网安装deb(network)添加了CUDA库后,是可以安装10.1或10.0的。

总之,在上表中确定了要安装的CUDA版本的代号后,执行安装命令即可:

sudo apt install cuda-toolkit-10-2  #只安装CUDA 10.2
#sudo apt install cuda-10-2  #安装CUDA 10.2。包含驱动,版本自动选择。

7.3 检查CUDA

添加环境变量并检查CUDA版本。

export 

接着检查CUDA是否正常工作。

#安装cuda 10.x的样本到~目录下,替换x为你的版本号

如果你是在Ubuntu20.04上通过添加Ubuntu18.04的CUDA库下载的CUDA,那么你应该会碰到gcc版本报错,显示不支持8以上的gcc。只需要添加新的版本的gcc再执行make及之后的代码即可:

#查看本来的gcc版本
sudo apt install build-essential
sudo apt -y install gcc-8 g++-8  

执行deviceQuery后会输出一些信息,主要检查“Detected X CUDA Capable device(s)”是否检测到了你实际上拥有的GPU数量;及“Device x: ...”名称处显示的GPU型号是否正确;和最下出的Result = PASS,即表示通过测试:

ca8f6bf83c0cabb8009ece5c67c32427.png

d18daef4e232cdd86529aeb8576f7994.png

这节最后,因为总会出现各种安装问题,这里给出清除nvidia驱动和cuda的代码:

"nvidia*"  

3. 安装cuDNN

cuDNN是加速CUDA GPU运算的扩展包,非必须。

进入cuDNN官网下载界面(下载cuDNN需要登陆,注册一个账号登陆即可),根据CUDA版本选择cuDNN版本,展开:

8801e1500098dff379faed3ac2b13aae.png

这里也还是暂时不支持Ubuntu20.04,选择18.04的文件下载即可(三个都下载)。在下载的路径上执行安装程序:

cd ~/Downloads  

检查cuDNN:

cp -r /usr/src/cudnn_samples_v7/ $HOME  #复制样本文件到$HOME文件夹下
cd  $HOME/cudnn_samples_v7/mnistCUDNN  #进入样本目录
make clean && make  #编译
./mnistCUDNN  #执行cuDNN测试

输出“Test Passed”说明cuDNN安装成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值