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

前言

在深度学习和高性能计算领域,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 update
sudo apt upgrade
sudo apt dist-upgrade

2. 禁用 Nouveau 驱动(必须)

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

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

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

    blacklist nouveau
    options nouveau modeset=0
    

    在这里插入图片描述

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

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

    sudo reboot
    

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

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

    在这里插入图片描述

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

    在这里插入图片描述

  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)。系统会自动下载并安装所选驱动,稍等片刻即可完成安装。

    在这里插入图片描述

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

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

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

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

    查看推荐的 NVIDIA 驱动版本

    在我的系统中,推荐的 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,下面会用到),说明安装成功。

    在这里插入图片描述


二、安装 CUDA Toolkit

1. 打开官网

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

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

    在这里插入图片描述

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

    在这里插入图片描述

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模块

    在这里插入图片描述

  3. 终端执行安装命令:

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

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

    在这里插入图片描述

    输入accept并按回车。

    在这里插入图片描述

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

    在这里插入图片描述

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

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

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

    在这里插入图片描述

3. 配置环境变量

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

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

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

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

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

    在这里插入图片描述

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

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

    echo $PATH
    echo $LD_LIBRARY_PATH
    

    在这里插入图片描述

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

    nvcc --version
    

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

    在这里插入图片描述


三、安装 cuDNN

1. 打开官网

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

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

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

    在这里插入图片描述

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
    

    在这里插入图片描述

  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*.h
    sudo 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

    在这里插入图片描述


结尾

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

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

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

猜你喜欢

转载自blog.csdn.net/Natsuago/article/details/145749853
今日推荐