如何在 Ubuntu 22.04 上安装英伟达™(NVIDIA®)CUDA 工具包

Header Image

导言

计算统一设备架构(CUDA)是一个利用英伟达™(NVIDIA®)图形处理器执行并行计算任务的平台。机器学习程序利用GPU来并行化和加速张量运算。因此,英伟达™(NVIDIA®)CUDA 工具包加速了稳定扩散和大型语言模型(LLM)等现代 ML/AI 应用程序的开发和使用。

CUDA 包括两个应用程序接口工具,即 CUDA驱动程序应用程序接口(CUDA driver API)和CUDA 运行时应用程序接口(CUDA runtime API)。运行时应用程序接口允许应用程序插入 CUDA 平台,并在程序中使用 GPU 计算功能。部署时,Vultr Cloud GPU 服务器上会提供 GPU 驱动程序和驱动程序 API。然后,安装 CUDA 工具包,启用开发人员使用的 CUDA 运行时 API,利用 GPU 进行并行计算。

本指南介绍如何在 Ubuntu 22.04 服务器上安装英伟达™(NVIDIA®)CUDA 工具包。

安装前提

开始之前

  • 在 Vultr 上部署 Ubuntu 22.04 云 GPU 服务器,至少要具备以下条件:
    • 1/12 NVIDIA GPU
    • 180GB 存储空间
  • 使用 SSH 访问服务器
  • 创建一个非 root sudo 用户账户
  • 切换到新用户账户
    # su pythonuser
    

    本指南使用pythonuser 作为示例用户,请使用实际用户名替换该账户

安装英伟达™ CUDA 工具包

要安装 CUDA 工具包,您可以使用以下任何一种方法:

  • 使用脚本或发布文件进行本地安装
  • 使用预安装了 Anaconda 或 Miniconda 的 Conda

根据所需的安装类型,在服务器上安装英伟达™ CUDA 工具包,具体方法如下。

原生安装 CUDA 工具包(推荐)

您可以使用依赖于发行版的发布文件或安装脚本本机安装 CUDA 工具包。为避免覆盖英伟达驱动程序文件,请使用最新的安装脚本安装 CUDA 工具包,如下所述。

  1. 下载最新的 CUDA 工具包运行文件
    $ wget https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux.run
    

    上述命令下载的是12.0.1 版 CUDA 工具包。要下载最新版本,请访问CUDA 工具包存档文件页面。

  2. 执行安装.run文件
    $ sudo sh cuda_12.0.1_525.85.12_linux.run
    
    • 出现提示时,请阅读《最终用户许可协议》(EULA),输入 "接受"并按ENTER 键进入安装选项。
    • 在安装选项列表中,按空格键取消选择驱动程序,因为 Vultr Cloud GPU 服务器上已有驱动程序
    • 滚动到 "安装"选项,按ENTER键开始安装过程

    安装成功后,输出结果应如下所示:

    ===========
    = 摘要 =
    ===========
    驱动程序:   未选择
    工具包:  安装在 /usr/local/cuda-12.0/ 中
    请确保
     -   PATH 包括 /usr/local/cuda-12.0/bin
     -   LD_LIBRARY_PATH 包括 /usr/local/cuda-12.0/lib64,或者将 /usr/local/cuda-12.0/lib64 添加到 /etc/ld.so.conf 并以根用户身份运行 ldconfig。
    要卸载 CUDA 工具包,请在 /usr/local/cuda-12.0/bin 中运行 cuda-uninstaller
    ***警告:安装不完整!此安装未安装 CUDA 驱动程序。CUDA 12.0 功能需要至少 525.00 版本的驱动程序。
    要使用此安装程序安装驱动程序,请运行以下命令,将  替换为此运行文件的名称:
        sudo .run --silent --driver
    日志文件为 /var/log/cuda-installer.log
    
  3. 要配置服务器以使用 CUDA 工具包,请执行以下操作:
    • 在系统PATH中添加 CUDA 路径
      $ echo "export PATH=/usr/local/cuda-12.0/bin${PATH: :${PATH}}" >> /home/pythonuser/.bashrc
      
    • LD_LIBRARY_PATH中添加 CUDA 工具包库路径
      $ echo "export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64${LD_LIBRARY_PATH: :${LD_LIBRARY_PATH}}" >> /home/pythonuser/.bashrc
      

    上述LD_LIBRARY_PATH命令将根据共享库的位置更新 CUDA 工具包链接加载器

  4. 激活环境变量更改
    $ source /home/pythonuser/.bashrc
    

使用 Conda 安装 CUDA 工具包

要使用 Conda 安装 CUDA 工具包,请确认服务器上安装了AnacondaMiniconda。然后,在 Conda NVIDIA 频道上找到最新版本,按以下步骤将其安装到服务器上。

  1. 输入 Conda 虚拟环境,例如env1
    $ conda activate env1
    
  2. 安装 CUDA 工具包
    $ conda install -c "nvidia/label/cuda-12.0.1" cuda -y
    

    上述命令将安装包含 CUDA 工具包的12.0.1cuda软件包。

  3. 安装成功后,请验证本地 Conda 软件包中是否包含 CUDA 工具包
    $ conda list | grep "cuda-toolkit"
    

    输出:

    cuda-toolkit 12.0.1 0 nvidia/label/cuda-12.0.1
    
  4. 要在服务器上激活 CUDA 工具包,请创建 Condaactivate.d目录
    $ mkdir -p $CONDA_PREFIX/etc/conda/activate.d
    

    Conda 使用激活目录activate.d中的env_vars.sh文件加载环境变量

  5. LD_LIBRARY_PATH附加到env_vars.sh文件中
    $ echo "export LD_LIBRARY_PATH=$CONDA_PREFIX/lib${LD_LIBRARY_PATH: :${LD_LIBRARY_PATH}}" >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
    
  6. 用已安装的 CUDA 软件包的路径更新CUDA_PATH变量,并将其添加到env_vars.sh文件中
    $ echo "export CUDA_PATH=$CONDA_PREFIX${CUDA_PATH: :${CUDA_PATH}}" >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
    

    CUDA_PATH变量声明允许英伟达示例程序使用工具包可执行文件测试 CUDA 安装情况

  7. 关闭 SSH 会话,使用env1Conda 环境重新访问服务器,应用新的系统更改
    退出
    

验证安装

  1. 验证nvidia-smi驱动程序是否正常运行
    $ nvidia-smi
    

    输出:

     ----------------------------------------------------------------------------- 
    | NVIDIA-SMI 525.125.06 驱动程序版本:525.125.06 CUDA 版本:12.0 | NVIDIA-SMI 525.125.06 CUDA 版本:12.0
    |------------------------------- ---------------------- ---------------------- 
    | GPU 名称 Persistence-M | 总线 ID Disp.A | 易失性 Uncorr.ECC
    | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M.|
    | MIG M.
    |=============================== ====================== ======================|
    | 0 NVIDIA A40-1Q On | 00000000:06:00.0 Off | 0
    | N/A N/A P8 N/A / N/A | 0MiB / 1024MiB | 0% 默认值
    | 已禁用
     ------------------------------- ---------------------- ---------------------- 
    

    如果命令返回错误,则默认的英伟达驱动程序已被覆盖,请重新安装驱动程序,以便在服务器上再次集成 GPU。

  2. 验证服务器上是否有与 CUDA 工具包一起安装的英伟达™(NVIDIA®)CUDA 编译器(NVCC)软件包
    $ nvcc --version
    

    输出:

    nvcc: NVIDIA (R) Cuda 编译器驱动程序
    版权所有 (c) 2005-2023 英伟达™(NVIDIA®)公司 
    构建于 Tue_Jul_11_02:20:44_PDT_2023 
    Cuda 编译工具,12.0 版,V12.0.140
    Build cuda_12.0.r12.0/compiler.32267302_0
    
  3. 要验证基于 CUDA 的程序能否在服务器上运行,请克隆包含测试程序的 CUDA Samples Git 仓库
    $ git clone https://github.com/NVIDIA/cuda-samples.git
    
  4. 切换到deviceQuery示例程序目录
    $ cd cuda-samples/Samples/1_Utilities/deviceQuery
    
  5. 编译示例程序:
    $ make
    
  6. 运行编译后的文件
    $ ./deviceQuery
    

    如果 CUDA 程序运行成功,输出结果应如下所示:

    CUDA 设备查询(运行时 API)版本(CUDART 静态链接)
    检测到 1 个支持 CUDA 的设备
    设备 0:"NVIDIA A40-1Q
        CUDA 驱动程序版本/运行时版本 12.0 / 12.0
        CUDA 能力主要/次要版本号:8.6
        .
        .
        .
        结果 = 通过
    

    如输出结果所示,CUDA 工具包已成功安装并在服务器上可用

检查其他 CUDA 工具包版本的系统兼容性

根据您打算在系统上安装的目标 CUDA 工具包版本,请考虑以下要求以成功运行工具包。

  • 支持的英伟达™(NVIDIA®)图形驱动程序
  • 最低内核版本
  • 基于 CUDA 的目标应用程序要求

您在本文中安装的 CUDA12.0.1版本在具有以下规格的服务器上运行:

  • GCC 版本:11.3.0
  • 英伟达™(NVIDIA®)图形驱动程序版本:525.125.06
  • CUDA 驱动程序 API 版本:12.0
  • Linux 内核版本:5.15.0-75

根据您的目标 CUDA 版本,按以下说明验证系统兼容性值。

验证所连接的系统 GPU

查看 Linux 系统属性并搜索Nvidia显卡

lspci | grep -i nvidia

输出:

6:00.0 VGA 兼容控制器:NVIDIA Corporation GA102GL [A40] (rev a1)

上述输出显示了服务器上连接的 CUDA 兼容 A40 GPU。

查看 GCC 版本

在开发或编译 CUDA 应用程序时,必须使用 GNU Compiler Collection (GCC)。验证系统中已安装的 GCC 版本

$ gcc --version

输出结果应如下所示

gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc. 
本软件为自由软件;有关复制条件,请参阅源代码。  
不提供任何保证,甚至不保证适销性或适用性。

验证已安装的 NVIDIA 驱动程序

使用nvidia-smi命令验证服务器上的英伟达™(NVIDIA®)GPU 驱动程序是否可用

$ nvidia-smi

输出:

 ----------------------------------------------------------------------------- 
| NVIDIA-SMI 525.125.06 驱动程序版本:525.125.06 CUDA 版本:12.0 | NVIDIA-SMI 525.125.06 CUDA 版本:12.0
|------------------------------- ---------------------- ---------------------- 
| GPU 名称 Persistence-M | 总线 ID Disp.A | 易失性 Uncorr.ECC
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | CUDA Version 125.0 | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr.|
| MIG M.
|=============================== ====================== ======================|
| 0 NVIDIA A40-1Q On | 00000000:06:00.0 Off | 0
| N/A N/A P8 N/A / N/A | 0MiB / 1024MiB | 0% 默认值
| 已禁用
 ------------------------------- ---------------------- ---------------------- 

输出中显示,服务器上安装的驱动程序版本如下:

  • NVIDIA 加速图形驱动程序:525.125.06
  • CUDA 驱动程序 API 版本:12.0

查看系统内核版本

CUDA 工具包要求最新版本的 Linux 内核高于特定 CUDA 工具包版本所需的最低内核版本。运行以下命令查看可用的服务器内核版本

$ uname -r

输出:

5.15.0-75-generic

如输出所示,5.15.0-75是与服务器上安装的12.0.1版 CUDA 工具包兼容的可用 Linux 内核版本。

查看可用的内核头文件

$ sudo apt list linux-headers-$(uname -r)

输出:

linux-headers-5.15.0-75-generic/jammy-updates,jammy-updates,jammy-security,jammy-security,now 5.15.0-75.82 amd64[已安装]

如果安装的头文件与内核版本不匹配,请使用以下命令安装正确的头文件

$ sudo apt-get install linux-headers-$(uname -r)

结论

在本指南中,您在 Ubuntu 22.04 Cloud GPU 服务器上安装了英伟达™(NVIDIA®)CUDA 工具包。通过将工具包与其他软件包集成,您可以在服务器上开发和编译高性能的 GPU 驱动的应用程序。如需了解更多信息,请访问以下官方文档资源。

版权声明:
作者:指北针
链接:https://www.vpscue.com/48683.html
来源:主机指北
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
如何在 Ubuntu 22.04 上安装英伟达™(NVIDIA®)CUDA 工具包
导言 计算统一设备架构(CUDA)是一个利用英伟达™(NVIDIA®)图形处理器执行并行计算任务的平台。机器学习程序利用GPU来并行化和加速张量运算。因此,英伟达™……
<<上一篇
下一篇>>