Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤

一、安装驱动 1. 下载驱动
去NVDIA driver search page搜索你的显卡需要的驱动型号并下载(如图)。
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

搜索,然后download
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

2. 禁用nouveau
打开终端,输入:

sudo gedit /etc/modprobe.d/blacklist.conf

在blacklist.conf文件末尾加上这两行,并保存:
blacklist nouveau

然后执行命令:
sudo update-initramfs -u//应用更改

重启电脑,验证是否禁用nouveau,这一条是用来禁用nouveau驱动,之后也不需要改回来。:
lsmod | grep nouveau

没有信息返回说明已禁用了如图:
【Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤】Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

3. 安装NVIDIA驱动
打开terminal卸载旧版本NVIDIA驱动:
sudo apt-get remove --purge nvidia*

进入到下载好的.run文件夹下给驱动run文件赋予执行权限:
sudo chmoda+x NVIDIA-Linux-x86_64-460.84.run //对应自己下载的驱动名称

安装NVIDIA驱动
sudo ./NVIDIA-Linux-x86_64-460.84.run -no-x-check -no-nouveau-check -no-opengl-files // 注意:后面三个选项的前面都是:减号“-”

  • -no-x-check:安装驱动时关闭X服务
  • -no-nouveau-check:安装驱动时禁用nouveau
  • -no-opengl-files:只安装驱动文件,不安装OpenGL文件 (最重要)
安装过程中的选项:
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?选择 No 继续。问题没记住,选项是:install without signing问题大概是:Nvidia's 32-bit compatibility libraries? 选择 No 继续。Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.选择 Yes

这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。
查看NVIDIA版本检验是否安装完成
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

二、安装CUDA 1. 下载
去官方网站下载符合自己电脑的cuda版本,选择好相应的版本后按照下面提供的方式进行安装。
最后一项Installer Type建议选择runfile [local],因为命令行少,更方便。
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

以这个图为例,就是先下载cuda_11.4.0_470.42.01_linux.run这个文件(可以直接把链接放到浏览器去下载)。
2. 安装
下载之后,运行如下命令
sudo sh cuda_11.4.0_470.42.01_linux.run

Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

输入accept回车
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

这个地方不要下载Driver,因为之前已经安装完了,一定要选择CUDA Toolkit 10.2。
取消选择的方法是:光标停留在 Driver那一行上,然后回车, 使[]里的X消失
选择Install回车
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

看到这页面估计是安装完了,输入以下命令验证是否成功:
cat /usr/local/cuda/version.txt

Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

如果显示没有这个文件,就到该文件夹下去看看有没有一个version.txt,里面如果有version.json,且json中有版本信息,也可以。
接下来设置环境变量
gedit ~/.bashrc

加入如下环境变量(注意修改为自己的路径):
export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存退出,终端运行:
source ~/.bashrc

终端运行:
nvcc -V

如果显示下面的文子就说明安装成功了。
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

三、安装cuDNN 进入官网(需要注册)
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

注册之后进入,同意协议,显示如下
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

选择自己的版本,我需要CUDA11,就点第一个 。
现在有两种安装cuDNN的方式,第一种方式可以检验;第二种方式要下载的文件比较少。
第一种:Debian File形式的安装
1. 下载 选择ubuntu20的这个三文件下载到本地,
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

2. 安装 然后执行以下三个命令
sudo dpkg -i libcudnn8_8.2.2.26-1+cuda11.4_amd64.deb sudo dpkg -i libcudnn8-dev_8.2.2.26-1+cuda11.4_amd64.deb sudo dpkg -i libcudnn8-samples_8.2.2.26-1+cuda11.4_amd64.deb

3. 验证 当选择Debian File进行安装时会在/usr/src/cudnn_samples_v8有一些cudnn的例子
在任意目录下展开终端,运行以下命令,通过编译mnistCUDNN sample进行验证
cp -r /usr/src/cudnn_samples_v8/ $HOME cd$HOME/cudnn_samples_v8/mnistCUDNN make clean && make ./mnistCUDNN

如果在执行sudo make”时报以下编译错误 :fatal error: FreeImage.h
mnistCUDNNsudo make CUDA_VERSION is 11010 Linking agains cublasLt = true CUDA VERSION: 11010 TARGET ARCH: x86_64 HOST_ARCH: x86_64 TARGET OS: linux SMS: 35 50 53 60 61 62 70 72 75 80 86 test.c:1:10: fatal error: FreeImage.h: No such file or directory 1 | #include "FreeImage.h" |^~~~~~~~~~~~~ compilation terminated.

则执行:sudo apt-get install libfreeimage3 libfreeimage-dev,然后重新验证。
如果安装成功将会有如下图所示的:Test passed!
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

这种验证会在home目录下生成一个cudnn_samples_v8文件加,验证成功后删除即可。
第二种:Tar File形式的安装
1. 下载 选择ubuntu20的这个文件下载到本地,
Ubuntu20.04系统,3090显卡,安装驱动、CUDA、cuDNN的步骤
文章图片

2. 安装 下载的是tgz的压缩包,需要先解压:
tar -xzvf cudnn-11.4-linux-x64-v8.2.2.26.tgz

执行安装,其实就是拷贝头文件和库文件并给予权限
sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

完成。解压操作会在当前目录生成一个cuda文件夹,删除即可。
参考(包括部分图):
https://www.zhihu.com/collect...
https://blog.csdn.net/dudu815...
https://blog.csdn.net/xhw205/...

    推荐阅读