二十、Ubuntu22.04 + RTX2080 配置显卡驱动 + CUDA + cuDNN

二十、Ubuntu22.04 + RTX2080 配置显卡驱动 + CUDA + cuDNN

二十、Ubuntu22.04 + RTX2080 配置显卡驱动 + CUDA + cuDNN

1. 根据 NVIDIA 显卡型号,下载对应的显卡驱动2. 根据显卡驱动,下载对应的 CUDA3. 根据 CUDA版本,下载对应的 cuDNN 库

1. 根据 NVIDIA 显卡型号,下载对应的显卡驱动

首先确定自己的显卡型号

lspci | grep -i vga

可以看到显卡型号是 GeForce RTX 2080

然后去NVIDIA 官网下载对应的显卡驱动

显卡驱动下载地址

然后把下载好的驱动程序放到一个英文文件夹(否则进入非图形化界面时可能中文乱码),例如我这里新建了一个 driver

安装所需依赖

sudo apt-get update

sudo apt-get install g++

sudo apt-get install gcc

sudo apt-get install make

卸载原有 NVIDIA 驱动

sudo apt-get remove --purge nvidia*

禁用 nouveau (nouveau 是通用的驱动程序)

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

在 blacklist.conf 末尾添加以下两行,保存后关闭文本

blacklist nouveau

options nouveau modeset=0

在终端输入如下更新,更新结束后重启电脑(必须)

sudo update-initramfs -u

重启后输入如下指令,如无输出则已关闭 nouveau

lsmod | grep nouveau

关闭 Secure Boot

重新启动按 F2 进入自己电脑的 BIOS 设置

关闭Secure Boot,并且清除安全启动密钥,保存后退出重启

安装过程需要在非图形化界面中进行,输入以下命令进入非图形化界面

#进入文本界面

sudo telinit 3

# 如果需要回到图形化界面,则用这条指令

sudo telinit 5

输入用户名、密码关闭显示服务

sudo service gdm3 stop

为驱动程序赋予权限,然后运行安装

cd /home/yao/driver/NVIDIA-Linux-x86_64-535.113.01.run

sudo chmod 777 NVIDIA-Linux-x86_64-535.113.01.run

# 安装:–no-opengl-files 只安装驱动文件,不安装OpenGL文件

sudo ./NVIDIA-Linux-x86_64-535.113.01.run --no-opengl-files

安装过程中有一些选项

选择 continue installationInstall Nvidia’s 32-bit compatibility libraries? 选择 NoWould 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? 选择 NoWould 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. 选择 No 如果选 yes 可能会有问题

安装完成后重新开启显示服务

sudo service gdm3 start

驱动安装完成后,检查一下

nvidia-smi

可以看到显卡驱动版本是 535.113.01 支持的 CUDA 最高版本是 12.2

调出 NVIDIA 设置界面,说明没问题了

nvidia-settings

2. 根据显卡驱动,下载对应的 CUDA

CUDA 是由 NVIDIA 开发的并行计算平台和应用程序编程接口(API)

CUDA 是一个底层的平台,它提供了对 GPU 的直接访问和控制。开发者可以使用 CUDA 编写 GPU 核函数,并在主机端(CPU)上调用这些核函数,实现并行计算。CUDA 提高了一套 API 来管理 GPU 的内存、线程调度和数据传输等操作,使开发者能够更方便地利用 GPU 的并行计算能力。

CUDA 需要和你上面安装的 显卡驱动 对应起来

显卡驱动和CUDA的适配关系

我装的显卡驱动:NVIDIA-Linux-x86_64-535.113.01.run 支持的 CUDA 最高版本为 12.2 不过我这里准备装 CUDA 11.7,因为看网上基本上都装的这个版本

安装 CUDA

CUDA 下载

选择自己的操作系统、芯片架构、Linux发行版本、安装方式 官网提供了安装指令 我这里用的是 deb(local) 方式安装!!!注意:千万别用这种方式安装!!!我这里留着是为了避坑!!! 如果这样装了之后,重启之后拓展屏就识别不到了,我猜它是把我之前装的显卡驱动给卸载了 我后面是按上面的方式重新装了显卡驱动才解决的!!!

我这里是新建了一个 CUDA 文件夹,在这个目录下运行这些指令

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin

sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-ubuntu2204-11-7-local_11.7.0-515.43.04-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu2204-11-7-local_11.7.0-515.43.04-1_amd64.deb

sudo cp /var/cuda-repo-ubuntu2204-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update

sudo apt-get -y install cuda

最后一步会报错,因为这种方法安装会自动安装显卡驱动,和我们之前装的显卡驱动不是同一个版本!! 我们如果对显卡版本有要求的话,建议不用这种方式安装

现在换成 runfile(loacl) 安装方式,就不会报错

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run

sudo sh cuda_11.7.0_515.43.04_linux.run

选择 Continue 输入 accept

选择需要安装的内容([X]代表安装,[ ]代表不安装) 按下 空格键 取消安装驱动,因为之前装过了 然后选择 install 这样就说明安装成功了

配置环境变量

sudo gedit ~/.bashrc

将 CUDA 的环境变量加到最后

export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存并关闭文件 重新加载当前用户的 bash 配置文件 ~/.bashrc 查看 CUDA 编译器(nvcc)的版本信息

source ~/.bashrc

nvcc -V

3. 根据 CUDA版本,下载对应的 cuDNN 库

cuDNN 是 NVIDIA 专门为深度学习任务开发的加速库

cuDNN 提供了一系列高性能的深度学习基本操作的实现,如卷积、池化、归一化等。cuDNN 是基于 CUDA 的,它利用了 CUDA 提供的并行计算能力和相关的 API。通过使用 cuDNN,开发者可以更轻松地构建和训练深度学习模型,并且在 GPU 上获得更好的性能。cuDNN 已经成为深度学习领域广泛使用的库,许多深度学习框架(如 TensorFlow、PyTorch)都集成了对 cuDNN 的支持,以获得更高的计算性能。

cuDNN 需要和上面安装的 CUDA 版本对应起来

cuDNN 只是一个即插即用的库,不需要担心不小心装错,因为只是将库文件放置再cuda目录下而已 如果版本装错,只需要删除再安装新的版本即可 CUDA 11.7 对应的 cuDNN 版本就比较多了,我这里安装的是 cuDNN 8.6.0

安装 cuDNN

官网下载需要注册账号

cuDNN 下载

解压 cuDNN 文件

tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz

将以下文件复制到 CUDA 目录(/usr/local/cuda/ 文件夹下面的 include 和 lib64 )

cd /home/yao/cuDNN

sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include

sudo cp cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

验证是否安装成功

sudo cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

这样就说明装好了 装 cuDNN 本质上很简单,就是把你下载的这些 include 和 lib 中的文件移动到 CUDA 对应的目录下

相关探索