【20230414】Ubuntu系统下NVIDIA显卡、驱动程序、CUDA和cuDNN安装

1 基本概念

CUDA(Compute Unified Device Architecture)和cuDNN(CUDA Deep Neural Network library)是两个与深度学习和GPU计算相关的技术,但它们有不同的作用和功能。

  • CUDA: CUDA是由NVIDIA推出的一种并行计算平台和编程模型,用于利用GPU(Graphics Processing Unit,图形处理单元)进行通用计算。CUDA提供了一套基于C语言的编程接口,允许开发者在GPU上直接编写并行计算代码,从而在GPU上加速各种计算任务,包括深度学习、科学计算、图像处理等。CUDA提供了丰富的并行计算功能,包括并行计算模型、内存管理、线程模型等,使开发者能够充分发挥GPU的计算能力。
  • cuDNN: cuDNN是NVIDIA提供的一个加速深度神经网络计算的库。它是专门为深度学习框架(如TensorFlow、PyTorch等)设计的,提供了一系列高性能的深度神经网络计算函数,如卷积、池化、归一化等,以加速深度学习模型的训练和推理。cuDNN利用了GPU的并行计算能力和高速内存访问特性,通过高度优化的算法和实现,提供了快速的深度学习计算能力,从而大幅提升了深度学习模型的训练和推理速度。

因此,CUDA是一种用于进行通用计算的并行计算平台和编程模型,而cuDNN是一个专门针对深度学习任务的GPU加速库,提供了高性能的深度神经网络计算函数。CUDA可以看作是一种更通用的计算平台,而cuDNN则是在CUDA基础上针对深度学习进行了特定优化的库,用于提供更高效的深度学习计算能力。在深度学习任务中,通常会同时使用CUDA和cuDNN,其中CUDA用于编写并行计算代码,而cuDNN用于加速深度学习计算。

2 安装NVIDIA显卡驱动

2.1 依赖项安装

sudo apt-get install -y g++ gcc make pkg-config libglvnd
## 2.2 查看GPU型号

```bash
lspci | grep -i nvidia

2.3 根据型号下载驱动

官方驱动 | NVIDIA https://www.nvidia.cn/Download/index.aspx?lang=cn

2.4 卸载原有驱动

sudo apt-get remove --purge nvidia*

补充(关于卸载命令)

  • 尽量不用使用 sudo apt autoremove,因为他会删除许多“它认为”不再使用的软件。
  • sudo apt-get remove 从系统中卸载指定的软件包,但保留配置文件和数据
  • sudo apt-get purge 从系统中卸载指定的软件包,并删除其配置文件和数据,以及相关的依赖项和配置
  • sudo apt-get remove --purge 效果等同于 sudo apt-get purge

2.5 禁用nouveau通用的开源驱动程序

2.5.1 为什么禁用通用的开源驱动程序

在安装 NVIDIA 显卡驱动程序时,禁用 Nouveau 通用的开源驱动程序可能是因为以下几个原因:

  1. 冲突:Nouveau 和 NVIDIA 驱动可能会发生冲突,因为它们都试图控制同一块显卡。这可能导致安装过程中出现错误或者驱动无法正常工作。
  2. 性能和功能:Nouveau 是一个开源驱动,虽然它能够提供基本的显卡功能,但通常性能和功能相对较低。NVIDIA 官方的闭源驱动通常提供更好的性能和更丰富的功能,例如支持高级图形特效和硬件加速等。因此,许多用户选择在安装 NVIDIA 驱动时禁用 Nouveau,以获得更好的性能和功能。
  3. 兼容性:某些 NVIDIA 显卡型号可能不完全兼容 Nouveau 驱动,导致在使用 Nouveau 驱动时出现问题,例如图像显示不正常、性能下降或者系统不稳定。在这种情况下,禁用 Nouveau 驱动可能是安装官方 NVIDIA 驱动的必要步骤,以确保显卡可以正常工作。
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
# 执行完上面命令后,使用下面命令查看是否禁用成功
# 或者:重启后使用lsmod | grep nouveau查看是否禁用成功,如果没有输出则成功
cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf

显示以下信息表示禁用成功,重启电脑

blacklist nouveau
options nouveau modeset=0

2.6 安装显示管理器 (可以忽略这一步骤,默认gdm3)

lightdm是显示管理器,主要管理登录界面,ubuntu20.04、22.04需要自行安装,然后上下键选择lightdm即可

(这一步也可以不安装lightdm,使用ubuntu20.04、22.04自带的gdm3显示管理器,直观的区别就是gdm3的登陆窗口在显示器正中间,而lightdm登录窗口在偏左边,正常使用没有区别。其他的区别这里不做探究;)

(亲测需要注意的是,如果你有控制多屏显示的需要,gdm3可能更适合你,亲测使用lightdm设置多屏,可能会出现卡屏,死机,无法动弹情况,仅供参考)
所以我选择gdm3
sudo apt-get install lightdm

2.7 停止当前的显示服务器

sudo telinit 3
# 停止显示服务器后自动进入到命令行界面
# 如果是默认的gdm3显示管理器,命令为sudo /etc/init.d/gdm3 stop
sudo /etc/init.d/lightdm stop # 或者(sudo service lightdm stop)

2.8 安装驱动

cd 驱动下载目录
sudo chmod 777 驱动程序.run
sudo ./驱动程序.run
1.The distribution-provided pre-install script failed! Are you sure you want to continue?
选择**continue installation**

2.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 继续。

3.问题没记住,选项是:install without signing

4.问题大概是:Nvidia's 32-bit compatibility libraries? 选择 No 继续。

5.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  继续

2.9 重启服务

sudo service gdm3 start 
# 输入nvidia-smi检查是否装好

3

参考1:Ubuntu22.04安装nvidia显卡驱动
参考2:Ubuntu 18.04 安装 NVIDIA 显卡驱动

Guess you like

Origin blog.csdn.net/Creationyang/article/details/130149049