> 技术文档 > 全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗


前言

在深度学习和高性能计算领域,NVIDIA 的 GPU 提供了强大的加速性能,使得各种计算任务(如神经网络训练、科学计算等)能够高效运行。为了充分利用 NVIDIA GPU 的计算能力,我们需要安装 NVIDIA 驱动CUDA ToolkitcuDNN。这三者相互配合,构成了一个完整的开发和运行环境,能够帮助开发者高效地利用 GPU 进行深度学习任务。

组件 作用 依赖关系 NVIDIA 驱动 提供 GPU 与操作系统的接口,管理 GPU 的资源与运行环境。 NVIDIA 驱动是运行 CUDA 和 cuDNN 的基础,必须安装。 CUDA Toolkit 提供 GPU 加速的编程框架和库,允许开发者在 GPU 上运行并行计算。 依赖于 NVIDIA 驱动,必须先安装驱动才能使用 CUDA。 cuDNN NVIDIA 提供的深度学习加速库,优化了神经网络的计算。 依赖于 CUDA Toolkit,必须先安装 CUDA 才能使用 cuDNN。

在本篇文章中,我将详细介绍如何在 Ubuntu 20.04 系统上安装和配置 NVIDIA 驱动CUDA ToolkitcuDNN。这篇文章不仅包含了从安装到配置的完整过程,还将详细讲解每一步的操作,帮助你顺利完成安装。本文也是我在多次踩坑后的经验总结,针对常见的坑进行了详细的说明,确保你能够避免错误并顺利搭建起高效的开发环境。


一、安装 NVIDIA 驱动

1. 更新系统(必须)

首先,确保你的系统是最新的,运行以下命令:

sudo apt updatesudo apt upgradesudo apt dist-upgrade

2. 禁用 Nouveau 驱动(必须)

NVIDIA 驱动程序需要禁用 Ubuntu 默认使用的 Nouveau 开源驱动。你可以通过以下步骤来禁用 Nouveau 驱动:

  1. 创建一个新的黑名单文件:

    sudo nano /etc/modprobe.d/blacklist-nouveau.conf
  2. 在文件中添加以下内容,然后保存并退出:

    blacklist nouveauoptions nouveau modeset=0

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

  3. 终端执行以下命令,更新 initramfs:

    sudo update-initramfs -u
  4. 重启系统以使更改生效:

    sudo reboot

3. 禁用 i915 驱动(视情况而定)

  1. 打开 Windows系统 的设备管理器,点击显示适配器,如图所示我的包括 Intel(R) UHD GraphicsNVIDIA GeForce RTX 4050 Laptop GPU,说明我需要禁用集成显卡,以便让独立显卡负责所有图形处理。

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

    对于 Ubuntu 系统,如果你的计算机同样配备了集成显卡(如 Intel UHD Graphics)和独立显卡(如NVIDIA GeForce RTX),可能会遇到类似的问题。默认情况下,Ubuntu 会启用集成显卡驱动(i915驱动),这可能与独立显卡(NVIDIA 驱动)发生冲突,导致系统在启动时出现图形问题或性能瓶颈,如下图:

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

  2. 为了解决这一问题,我们可以禁用 i915 驱动,让系统只使用独立显卡。首先,打开终端并编辑 GRUB 配置文件:

    sudo nano /etc/default/grub
  3. 找到以下行:

    GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash\"

    在这一行末尾添加 nomodeseti915.modeset=0,如下所示,然后保存并退出:

    GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash nomodeset i915.modeset=0\"
    • nomodeset:禁用内核模式设置,防止在启动时加载图形驱动。
    • i915.modeset=0:禁用 i915 驱动的模式设置,确保系统不使用 Intel 集成显卡。
  4. 修改完配置文件后,需要更新 GRUB 配置,使修改生效:

    sudo update-grub

4. 安装 NVIDIA 驱动

方法 1:通过软件更新器安装(推荐)

  1. 在开始菜单中搜索并打开软件和更新

  2. 切换到附加驱动选项卡,选择系统推荐的附加驱动,并点击应用更改(A)。系统会自动下载并安装所选驱动,稍等片刻即可完成安装。

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

方法 2:通过 Ubuntu 包管理器安装

Ubuntu 20.04 提供了对 NVIDIA 驱动的支持,可以通过 apt 包管理器来安装官方驱动。

  1. 运行以下命令以添加 NVIDIA 驱动的 PPA 存储库:

    sudo add-apt-repository ppa:graphics-drivers/ppasudo apt update
  2. 使用 ubuntu-drivers devices 命令来查看系统推荐的 NVIDIA 驱动版本。这个命令会扫描你的硬件并列出适合你系统的驱动版本,如下图所示:

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

    在我的系统中,推荐的 NVIDIA 驱动是 nvidia-driver-535-server-open(具体推荐版本可能因硬件不同而有所不同)。

  3. 根据 ubuntu-drivers devices 命令输出的推荐驱动版本,使用 apt 安装适合的 NVIDIA 驱动。例如,假设推荐的驱动版本为 nvidia-driver-535-server-open,你可以运行以下命令进行安装:

    sudo apt install nvidia-driver-535-server-open

5. 重启系统

  1. 安装完成后,重启计算机以确保新的驱动程序生效:

    sudo reboot
  2. 可以使用以下命令检查 NVIDIA 驱动是否正确安装:

    nvidia-smi

    如果显示了 GPU 的相关信息(如下图所示,需要记住图中标注的CUDA Version,下面会用到),说明安装成功。

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗


二、安装 CUDA Toolkit

1. 打开官网

  1. 打开 NVIDIA官网 CUDA Toolkit 下载页面

  2. 下滑找到并点击 <= CUDA VersionCUDA Toolkit下载链接(如图我选择了CUDA Toolkit 12.1.1的下载链接,因为我的CUDA Version:12.2

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

  3. 依次选择Linux->x86_64->Ubuntu->20.04->runfile(local)

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

2. 安装CUDA Toolkit

  1. 安装CUDA Toolkit之前需要首先安装一些相互依赖的库文件

    sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  2. 下滑找到Base Installer模块

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

  3. 终端执行安装命令:

    wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.runsudo sh cuda_12.1.1_530.30.02_linux.run

    运行上面指令后,稍等片刻会弹出如下界面,选择Continue并按回车。

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

    输入accept并按回车。

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

    接着,如下图所示,在弹出的界面中通过Enter键,取消Driver530.30.02的安装,然后点击Install,等待…

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

    提示:是否需要安装 nvidia-fs(NVIDIA 提供的一个特殊文件系统,用于管理和优化 NVIDIA 驱动和硬件资源的交互)?

    • 普通用户:如果你只是进行基本的 CUDA 开发或运行应用程序,不需要特定的文件系统优化,通常不需要选择安装 nvidia-fs
    • 高性能计算或集群环境:如果你在设置集群或执行需要大量数据传输的高性能计算任务时,nvidia-fs 可能会提供性能优化。

    如下图所示,安装完毕,CUDA Toolkit 已成功安装,但 CUDA 驱动Driver)没有被安装(正常现象,因为刚才我们取消勾选了Driver530.30.02的安装)

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

3. 配置环境变量

  1. 打开终端,执行以下命令编辑 .bashrc 文件:

    nano ~/.bashrc
  2. .bashrc 文件的末尾添加以下几行:

    # CUDA Environment Variables for CUDA 12.1export PATH=/usr/local/cuda-12.1/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATHexport LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LIBRARY_PATH

    这些行会将 CUDA 可执行文件目录添加到 PATH 环境变量中,并将 CUDA 库目录添加到 LD_LIBRARY_PATH 环境变量中。这样,系统就能正确地找到 CUDA 的工具和库文件。

    注意:需要将所有的12.1换成你安装的CUDA Version版本

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

  3. 保存并退出编辑器后,运行以下命令来使环境变量生效:

    source ~/.bashrc
  4. 为了验证环境变量是否已正确配置,可以运行以下命令来检查 PATHLD_LIBRARY_PATH 是否包含 CUDA 目录:

    echo $PATHecho $LD_LIBRARY_PATH

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

    此外,运行 nvcc 命令,查看 CUDA 编译器是否可用:

    nvcc --version

    如果显示 CUDA 的版本信息,则说明环境变量已正确配置。

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗


三、安装 cuDNN

1. 打开官网

  1. 打开 NVIDIA cuDNN 历史下载页面

  2. 根据自己下载的CUDA Toolkit版本点击相应的cuDNN版本

  3. 点击Local Installer for Linux x86 64 (Tar)(需要登录 NVIDIA 开发者账号,推荐Google登录),稍等片刻…

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

2. 安装cuDNN

  1. 解压下载的 cuDNN 安装包(cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz替换为你的安装包的文件名)

    tar -xvf cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗

  2. 解压完成后,终端进入下载目录,需要将 cuDNN 文件复制到 CUDA 的相应目录中(cudnn-linux-x86_64-8.9.5.30_cuda12-archive替换为你解压后的文件名,cuda-12.1替换为你的 CUDA Toolkit版本):

    cd ~/下载sudo cp -r cudnn-linux-x86_64-8.9.5.30_cuda12-archive/include/* /usr/local/cuda-12.1/include/sudo cp -r cudnn-linux-x86_64-8.9.5.30_cuda12-archive/lib/* /usr/local/cuda-12.1/lib64/
  3. 确保复制的 cuDNN 文件具有适当的权限,以便其他用户能够访问它们(cuda-12.1替换为你的 CUDA Toolkit版本):

    sudo chmod a+r /usr/local/cuda-12.1/include/cudnn*.hsudo chmod a+r /usr/local/cuda-12.1/lib64/libcudnn*
  4. 安装完成后,运行以下命令验证 cuDNN 是否正确安装:

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

    注意:在较新版本的 cuDNN(如 8.0 及以上)中,cudnn.h 文件不再直接包含版本号宏定义(如CUDNN_MAJORCUDNN_MINOR 等),相反,版本信息被移到了 cudnn_version.h 文件中。cuDNN版本 8.0 以下的版本使用命令cat /usr/local/cuda-12.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 (cuda-12.1替换为你的 CUDA Toolkit版本)验证安装是否完成。

    如图所示说明cuDNN安装完成,表示安装的 cuDNN 版本为 8.9.5

    全网最详细教你在Ubuntu20.04安装NVIDIA 驱动+CUDA+cuDNN(避坑版 | 图文详解)_有nvidia还安装cuda吗


结尾

通过本篇文章,我们详细介绍了如何在 Ubuntu 20.04 系统上安装和配置 NVIDIA 驱动CUDA ToolkitcuDNN,以及它们在深度学习开发中的重要性。从系统更新、驱动安装到 CUDA 和 cuDNN 的配置,每一步都涵盖了详细的操作流程和常见问题的解决方案。

经过这些步骤,你的系统将具备强大的 GPU 加速能力,能够高效地进行深度学习任务的训练和推理工作。无论你是新手还是有一定经验的开发者,这篇文章都能帮助你顺利完成环境搭建,避免安装过程中的一些常见错误。

希望这篇文章能为你节省时间,避免踩坑,让你更专注于深度学习项目的开发。祝你在 AI 和高性能计算的道路上取得更多的成果!