如何在 Ubuntu 22.04 上安装英伟达™(NVIDIA®)CUDA 工具包
导言
计算统一设备架构(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 工具包,如下所述。
- 下载最新的 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 工具包存档文件页面。 - 执行安装
.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
- 出现提示时,请阅读《最终用户许可协议》(EULA),输入 "
- 要配置服务器以使用 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 工具包链接加载器 - 在系统
- 激活环境变量更改
$ source /home/pythonuser/.bashrc
使用 Conda 安装 CUDA 工具包
要使用 Conda 安装 CUDA 工具包,请确认服务器上安装了Anaconda或Miniconda。然后,在 Conda NVIDIA 频道上找到最新版本,按以下步骤将其安装到服务器上。
- 输入 Conda 虚拟环境,例如
env1
$ conda activate env1
- 安装 CUDA 工具包
$ conda install -c "nvidia/label/cuda-12.0.1" cuda -y
上述命令将安装包含 CUDA 工具包的
12.0.1
版cuda
软件包。 - 安装成功后,请验证本地 Conda 软件包中是否包含 CUDA 工具包
$ conda list | grep "cuda-toolkit"
输出:
cuda-toolkit 12.0.1 0 nvidia/label/cuda-12.0.1
- 要在服务器上激活 CUDA 工具包,请创建 Conda
activate.d
目录$ mkdir -p $CONDA_PREFIX/etc/conda/activate.d
Conda 使用激活目录
activate.d
中的env_vars.sh
文件加载环境变量 - 将
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
- 用已安装的 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 安装情况 - 关闭 SSH 会话,使用
env1
Conda 环境重新访问服务器,应用新的系统更改退出
验证安装
- 验证
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。
- 验证服务器上是否有与 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
- 要验证基于 CUDA 的程序能否在服务器上运行,请克隆包含测试程序的 CUDA Samples Git 仓库
$ git clone https://github.com/NVIDIA/cuda-samples.git
- 切换到
deviceQuery
示例程序目录$ cd cuda-samples/Samples/1_Utilities/deviceQuery
- 编译示例程序:
$ make
- 运行编译后的文件
$ ./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
来源:主机指北
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论