1. 首页 > 服务器系统 > Ubuntu

Ubuntu安装NVIDIA显卡驱动、CUDA以及CuDNN工具的详细教程

一、简介

  • NVIDIA 驱动:操作系统与 NVIDIA 显卡硬件之间的桥梁,负责驱动显卡硬件的运行,显卡的“底层操作系统”,一切的基础。
  • CUDA(Compute Unified Device Architecture):NVIDIA 提供的一种并行计算平台和编程模型,允许开发者使用 NVIDIA GPU 进行通用计算,显卡的“开发工具箱”,允许写高性能并行程序。
  • cuDNN(CUDA Deep Neural Network):NVIDIA 提供的一个专为深度学习优化的 GPU 加速库,用于加速深度神经网络的训练和推理,专为深度学习优化的“特定工具包”,cuDNN 是 TensorFlow 和 PyTorch 的关键依赖。
  • 对于深度学习应用,三者通常需要搭配使用,正确的版本匹配非常重要!版本匹配非常重要!非常重要!

二、查看显卡设备

查看系统中所有视频设备(显卡)的详细硬件信息。

sudo lshw -c video

显示设备信息

如果没有显示显卡的具体型号,很有可能是lshw数据库不完整,lshw的硬件信息基于系统的设备数据库(通常是由 /usr/share/hwdata/pci.ids 提供)。如果设备的PCI ID未包含在数据库中,则只会显示厂商名称(如 “NVIDIA Corporation”),而不会显示具体型号。尝试更新硬件数据库。

sudo update-pciids   # 从 pci-ids.ucw.cz 更新到最新的PCI ID数据库

更新数据库

同样,可以使用ls指令查看系统中所有的 DRM(Direct Rendering Manager)设备。每个cardX表示一个显卡设备。

ls /dev/dri

卡设备

查看当前系统的显卡及驱动绑定情况

lspci -k | grep -A 2 -i "VGA"

显卡驱动绑定

开源的Nouveau显卡驱动程序通常会在安装系统的时候自动加载,安装NVIDIA驱动之前,需要确保Nouveau驱动被禁用,避免发生冲突。

sudo vim /etc/default/grub
将---> GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
替换为---> GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
保存后更新---> sudo update-grub
更新后重启系统---> sudo reboot

三、安装显卡驱动

更新软件包索引

sudo apt update

检测推荐的驱动(不仅仅是N卡驱动)

ubuntu-drivers devices

查找合适驱动

安装特定版本的驱动(一般选择带有recommended的驱动版本),高版本的驱动有的时候不利于一些旧设备的使用,cuda以及cudnn的版本相应也需要提高,安装的时候可以根据设备情况选择稍低版本的驱动。

sudo apt install nvidia-driver-535  

在尝试不同版本的驱动的时候,需要将已安装的驱动卸载掉并清理相关的配置文件。

sudo apt remove --purge nvidia-driver-535
sudo apt autoremove --purge
sudo apt autoclean

显卡驱动安装完成后,可以通过nvidia-smi 指令查看显卡信息,nvidia-smi -l 2可以每两秒刷新一下显卡状态,输出类似的显卡信息。

显卡信息

四、安装CUDA工具箱

使用如下指令,查看ubuntu系统信息。

lsb_release -a
# 或者
cat /etc/os-release

登录英伟达,根据驱动支持的最高CUDA版本,选择一个稍低的版本进行安装,这里显卡驱动最高支持到 12.2,选择 12.0.1 进行安装。之后选择与自己主机对应的系统、架构以及发行版,并选择runfile(local)进行安装。

版本选择

选择好之后,紧接着下面会提供具体的安装指令,按照指令下载归档文件,并执行安装程序。

安装指令

弹出条款信息,接受即可。

接受许可

紧接着,需要取消显卡驱动的安装,因为我们之前已经安装过。最后选择安装。

安装

安装完成后,终端会有如下信息打印,内容不会完全相同,仅参考。

终端打印

根据终端提示,我们可查看/usr/local/cuda-12.0/目录下是否存在指定文件。确认存在后,根据终端提示的PATHLD_LIBRARY_PATH信息,更新环境变量。使用指令 vim ~/.bashrc打开文件,并在末尾追加下面的环境变量。保存文件之后,使用指令source ~/.bashrc使配置生效。

export PATH="/usr/local/cuda-12.0/bin:$PATH" 
export LD_LIBRARY_PATH="/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH" 

配置完环境变量并激活后,使用指令nvcc -V,如果有如下输出则CUDA安装成功。

输出

五、安装CuDNN

安装CUDA之后,进入,选择合适的版本下载压缩包。

cudnn下载

解压之后,分别进入 include 以及 lib 目录中,将如下文件拷贝到之前 CUDA 的安装目录下。

sudo cp (你的目录)/include/cudnn.h /usr/local/cuda-12.0/include
sudo cp (你的目录)/lib/libcudnn* /usr/local/cuda-12.0/lib64
sudo chmod a+r /usr/local/cuda-12.0/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-12.0/lib64/libcudnn*

验证CuDNN是否安装成功,可以结合Pytorch查看,输出如下信息则证明安装成功。

验证cudnn

小结

以上安装流程在ubuntu-22.04上,基于驱动版本535、cuda版本12.0、cudnn版本8.9测试安装。

Ubuntu下如何查看显卡及显卡驱动

使用nvidia-smi 工具查看

查看显卡型号nvida-smi -L

$ nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 3050 4GB Laptop GPU (UUID: GPU-4cf7b7cb-f103-bf56-2d59-304f8996e28c)

当然直接使用nvida-smi 命令可以查看更多信息

$ nvidia-smi
Mon Feb 12 18:24:15 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.05             Driver Version: 535.154.05   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3050 ...    Off | 00000000:02:00.0 Off |                  N/A |
| N/A   47C    P8               3W /  40W |    214MiB /  4096MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      1854      G   /usr/lib/xorg/Xorg                          161MiB |
|    0   N/A  N/A      2225      G   /usr/bin/gnome-shell                         40MiB |
|    0   N/A  N/A      3199      G   ...irefox/2987/usr/lib/firefox/firefox        2MiB |
|    0   N/A  N/A      9612      G   gnome-control-center                          1MiB |
+---------------------------------------------------------------------------------------+

注意,上图中的 CUDA Version 后面写了一个版本号。该版本号并不是你已经安装了该版本的 CUDA 的意思,而是说此显卡最大支持的CUDA版本号。因此我们仍然需要手动从官网下载CUDA,且版本号不能高于这个。

还可以使用如下命令,查看显卡驱动版本

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  535.154.05  Thu Dec 28 15:37:48 UTC 2023
GCC version:  gcc version 12.3.0 (Ubuntu 12.3.0-1ubuntu1~22.04) 

也可以使用navidia-settings命令弹出图形界面

$ nvidia-settings

在这里插入图片描述

安装显卡前查看推荐的显卡

当然,如果没安装显卡驱动,则需要安装驱动,可使用如下命令

首先我们需要看看显卡硬件有没正确安装到计算机,我们可以通过命令lspci查看一下

$ lspci
00:00.0 Host bridge: Intel Corporation Device a706
00:02.0 VGA compatible controller: Intel Corporation Device a7a0 (rev 04)
00:04.0 Signal processing controller: Intel Corporation Device a71d
00:06.0 PCI bridge: Intel Corporation Device a74d
00:06.2 PCI bridge: Intel Corporation Device a73d
00:07.0 PCI bridge: Intel Corporation Device a73f
00:08.0 System peripheral: Intel Corporation Device a74f
00:0d.0 USB controller: Intel Corporation Device a71e
00:0d.2 USB controller: Intel Corporation Device a73e
00:14.0 USB controller: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller (rev 01)
00:14.2 RAM memory: Intel Corporation Alder Lake PCH Shared SRAM (rev 01)
00:14.3 Network controller: Intel Corporation Device 51f1 (rev 01)
00:15.0 Serial bus controller: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 (rev 01)
00:16.0 Communication controller: Intel Corporation Alder Lake PCH HECI Controller (rev 01)
00:16.3 Serial controller: Intel Corporation Device 51e3 (rev 01)
00:1f.0 ISA bridge: Intel Corporation Device 519d (rev 01)
00:1f.3 Multimedia audio controller: Intel Corporation Device 51ca (rev 01)
00:1f.4 SMBus: Intel Corporation Alder Lake PCH-P SMBus Host Controller (rev 01)
00:1f.5 Serial bus controller: Intel Corporation Alder Lake-P PCH SPI Controller (rev 01)
01:00.0 Non-Volatile memory controller: KIOXIA Corporation Device 0010 (rev 01)
02:00.0 3D controller: NVIDIA Corporation Device 25ab (rev a1)

使用ubuntu-drivers devices命令,查看所有可用的即推荐的显卡驱动

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:06.2/0000:02:00.0 ==
modalias : pci:v000010DEd000025ABsv000017AAsd000050D4bc03sc02i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-535 - distro non-free recommended
driver   : nvidia-driver-525 - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-525-open - distro non-free
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

nvidia-driver-535 - distro non-free recommended 这个即推荐的

使用sudo ubuntu-drivers autoinstall可直接安装推荐的显卡

也可使用sudo apt-get install nvidia-driver-525 制定版本安装

用nvidia-detector 命令,可查看支持的最高版本驱动

$ nvidia-detector 
nvidia-driver-545

以上就是Ubuntu 安装 NVIDIA显卡驱动、CUDA 以及 CuDNN工具的详细内容,更多相关资料请阅读主机测评网其它文章!

本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https:///ubuntu/8596.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:8:30-17:30,节假日休息