随着人工智能技术的快速发展,显卡已成为进行深度学习和机器学习的重要硬件设备之一。而为了让显卡发挥最大的性能,安装适合的GPU驱动、CUDA和cuDNN是必不可少的步骤。然而因为不同型号的显卡可能需要不同版本的驱动和软件,正确安装这些软件可能会成为新手的一项挑战。本文将为大家详解不同型号显卡安装驱动GPU驱动、CUDA和cuDNN的步骤和方法,帮助读者快速完成相关软件的配置,让显卡发挥最优性能。
GPU驱动,CUDA和cuDNN的安装步骤和方法详解
0. 删除卸载用命令(慎用)# sudo rm /etc/apt/sources.list.d/cuda* # sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*" # sudo apt-get --purge remove "*nvidia*" # sudo apt-get autoremove # sudo apt-get autoclean # sudo rm -rf /usr/local/cuda*1. 安装NVIDIA显卡驱动
sudo add-apt-repository ppa:graphics-drivers #添加NVIDA显卡驱动库 sudo apt update ubuntu-drivers devices #显示可安装驱动
会显示你电脑的GPU型号和可安装的驱动版本。其中带有recommended是建议安装的版本。驱动一般认为是越新的越好。
注意这里的提供的信息并不是最全的,有可能有适合你GPU的更高版本的驱动并未包含在内。可以去官网查询适合你的GPU的最新驱动版本。尤其是当你拥有多个不同型号的GPU时,更需要仔细查询。比如我的显卡是2080 Ti:
点击SEARCH搜索后得到结果(执行于2020/09/29):
得到该显卡最新支持的驱动是450.66版本。与用ubuntu-drivers devices命令得到的输出有些许不同,后者显示的版本更低一些(440)。具体适用情况如何我不敢保证,如果你要求不高,就安装后者建议的版本,如果你觉得最新的还是比较好,也可以安装450。
其实在添加了NVIDIA显卡驱动库后,除了用ubuntu-drivers devices这个命令,还可以手动查询可安装的driver版本:
sudo apt list nvidia-driver*
可以看到是库里面是有450的,在确认了你想要安装的驱动版本,如450,直接安装:
#sudo ubuntu-drivers autoinstall #让Ubuntu自动帮你选择版本并安装 sudo apt install nvidia-driver-450 #安装450驱动 sudo reboot nvidia-smi #查看GPU信息,需先重启
因为我是之前就安装好的,所以可以看到我安装的是440.64 。
nvidia-smi这个命令日后将会经常用到,来查看GPU的信息和使用情况(注意右上角的CUDA Version并非显示我们安装的CUDA,事实上你即使没有安装CUDA,该指令右上角也会这样显示)。
查看训练进程时的GPU情况一般需要持续监视该输出:
watch -n 0.5 nvidia-smi #即每隔0.5秒执行一次nvidia-smi; #echo 'alias gpurun="watch -n 0.5 nvidia-smi"' >> ~/.bashrc #用gpurun代表上行代码2. 安装CUDA2.1 确认要安装的CUDA版本
根据电脑已有的GPU驱动,先去NVIDIA官方网站查看该驱动版本所能支持的最高CUDA版本(Table 1):
对我安装的440.64而言,可以安装最高为10.2的CUDA。如果你安装的是450,那么是可以安装CUDA 11.0的。
接下来不妨了解一下我们可以安装的CUDA都支持什么版本的Tensorflow,进入Tensorflow官网检查CUDA版本适配:
可知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版本适配的信息:
可以看到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 #查看安装的cuda版本
缺点是无法指定CUDA版本,安装路径也和NVIDIA官方的CUDA路径(/usr/local)不同,故安装cuDNN时可能会有问题。
NVIDIA官方方法:
(2019/09/28更新):最新的CUDA 11.1支持Ubuntu 20.04了:
以下是更新前的内容:
由于撰写本文时Ubuntu 20.04刚发行不久,NVIDIA CUDA官网暂时未支持20.04,但也不代表适合Ubuntu18.04的CUDA们就无法在20.04上使用,只是会有一点问题需要解决。
进入NVIDIA CUDA库:
以CUDA 10.2为例。点击CUDA Toolkit 10.2即可进入下载界面:(如果你熟悉英文,建议同时也打开对应的Versioned Online Documentation,按照官网指示安装)
需要注意的是最后一个选项,括号里的:
local代表本地安装:下载CUDA文件至本地,执行安装程序,安装时无需联网,过程比较复杂;
net代表联网安装:通过执行指令将NVIDIA CUDA库(适配Ubuntu 18.04)到我们的软件地址库中,再在命令行里自动安装,全程需要联网。
这里我们只介绍联网安装方法。选中deb(network)后,页面下方会给出指令(Installation Instructions),一个个按顺序执行,最后的安装指令可以先不执行:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" sudo apt-get update sudo apt list cuda* # 查看所有,名字以cuda开头的,可以用apt install安装的packages
与官网的添加完库之后直接安装cuda不同,添加完库之后先查看现在可以安装哪些cuda软件。执行了apt list cuda*后,结果显示有很多不同版本不同代号的cuda可供安装。包括:cuda,cuda-10-0,cuda-10-1,cuda-10-2,还有各个版本的cuda-toolkit-x-x等等等等:
添加完CUDA库后,用sudo apt list cuda*来查看可安装的cuda软件NVIDIA官方给出的各后缀解释:
这张表的第一行也解释了为什么我们没有遵循官网指示的最后一步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 PATH=$PATH:/usr/local/cuda/bin #添加环境变量 nvcc -V #检查CUDA版本
接着检查CUDA是否正常工作。
cuda-install-samples-10.x.sh ~ #安装cuda 10.x的样本到~目录下,替换x为你的版本号 cd ~/NVIDIA_CUDA-10.x_Samples #进入Sample目录 make #有点耗时,如果系统版本不匹配,gcc版本可能会导致报错。 ./1_Utilities/deviceQuery/deviceQuery #执行检查程序
如果你是在Ubuntu20.04上通过添加Ubuntu18.04的CUDA库下载的CUDA,那么你应该会碰到gcc版本报错,显示不支持8以上的gcc。只需要添加新的版本的gcc再执行make及之后的代码即可:
cat /proc/driver/nvidia/version #查看本来的gcc版本 sudo apt install build-essential sudo apt -y install gcc-8 g++-8 #安装gcc 8,根据报错实际情况可作调整。 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 8 #sudo update-alternatives --config gcc #调整默认gcc,之安装gcc 8则无须执行
执行deviceQuery后会输出一些信息,主要检查“Detected X CUDA Capable device(s)”是否检测到了你实际上拥有的GPU数量;及“Device x: ...”名称处显示的GPU型号是否正确;和最下出的Result = PASS,即表示通过测试:
这节最后,因为总会出现各种安装问题,这里给出清除nvidia驱动和cuda的代码:
sudo apt-get --purge remove "nvidia*" #删除驱动(20.04用过这个代码过后可能会导致简便方法无法使用) sudo apt-get --purge remove "*cuda*" "*cublas*" #删除cuda3. 安装cuDNN
cuDNN是加速CUDA GPU运算的扩展包,非必须。
进入cuDNN官网下载界面(下载cuDNN需要登陆,注册一个账号登陆即可),根据CUDA版本选择cuDNN版本,展开:
这里也还是暂时不支持Ubuntu20.04,选择18.04的文件下载即可(三个都下载)。在下载的路径上执行安装程序:
cd ~/Downloads #进入下载好的三个文件的路径 sudo dpkg -i libcudnn* #同时安装 #sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb #逐个安装 #sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb #sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.2_amd64.deb
检查cuDNN:
cp -r /usr/src/cudnn_samples_v7/ $HOME #复制样本文件到$HOME文件夹下 cd $HOME/cudnn_samples_v7/mnistCUDNN #进入样本目录 make clean && make #编译 ./mnistCUDNN #执行cuDNN测试
输出“Test Passed”说明cuDNN安装成功。
安装显卡驱动、CUDA和cuDNN对于提升GPU的性能和加速深度学习过程非常重要。通过了解不同型号显卡的安装步骤和方法,可以更好地利用GPU资源,提高机器学习的效率和准确性。
相关教程
2023-12-23
2024-02-04
2023-06-01
2023-07-06
2023-08-27
2023-05-22
2023-07-19
2024-10-16
2024-10-14
2024-10-13
2024-10-13
2024-10-11
2024-10-10