本文将介绍如下内容:
- 一、安装前环境配置与检查
- 二、NVIDIA驱动安装(两种方法选一种即可)
- 三、NVIDIA Fabric Manager部署
- 四、安装 NVIDIA Container Toolkit
一、安装前环境配置与检查
1. 确保系统环境
我们使用 Ubuntu 22.04,建议先更新系统并重启系统:
sudo apt update && sudo apt upgrade -y
# H100服务器目前配置
root@GPU02:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
2. 查看显卡型号
[root@fusion: ~]# lspci |grep -i vga
//或者以下命令
[root@GPU01: ~]# lspci |grep -i NVIDIA
05:00.0 Bridge: NVIDIA Corporation Device 22a3 (rev a1)
06:00.0 Bridge: NVIDIA Corporation Device 22a3 (rev a1)
07:00.0 Bridge: NVIDIA Corporation Device 22a3 (rev a1)
08:00.0 Bridge: NVIDIA Corporation Device 22a3 (rev a1)
18:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
2a:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
3a:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
5d:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
9a:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
ab:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
ba:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
db:00.0 3D controller: NVIDIA Corporation Device 2330 (rev a1)
具体含义如下:
-
lspci: 列出所有 PCI 总线上的设备。它显示的是系统中所有通过 PCI (Peripheral Component Interconnect) 接口连接的硬件设备的信息。
-
05:00.0 Bridge: NVIDIA Corporation Device 22a3 (rev a1):
- 设备位置:05:00.0。表示设备在 PCI 总线的地址。
- 类型: PCIE Bridge,即桥接器。通常,桥接器用于将多个设备连接到一个总线上,或实现不同总线之间的通信。
- 设备标识符: Device 22a3,表示设备的特定型号或版本。
-
(rev a1):表示设备的版本(a1 可能是修订版号):
- 设备位置: 18:00.0,这是一个图形显卡(GPU)。
- 设备标识符: Device 2330,指明这是一个 GPU。
3. 删除之前安装的驱动
之前若有安装驱动,可以通过指令sudo apt purge nvidia*删除以前安装的NVIDIA驱动版本,并重新启动计算机,再重新安装。
#查看之前安装的nvidia驱动版本
ls /usr/src | grep nvidia
#卸载驱动
sudo apt purge nvidia*
#或者以下命令
sudo apt-get autoremove cuda* nvidia* nouveau* --purge
#也可以使用官方提供的卸载脚本卸载
/usr/bin/nvidia-uninstall
dpkg -r nvidia-fabricmanager
dpkg --purge nvidia-fabricmanager
dpkg -l | grep nvidia-fabricmanager
4. 关闭系统自带的 nouveau
在安装NVIDIA驱动以前需要禁止系统自带显卡驱动nouveau:
可以先通过指令lsmod | grep nouveau查看nouveau驱动的启用情况,如果有输出表示nouveau驱动正在工作,如果没有内容输出则表示已经禁用了nouveau。
如果有则按照下面操作禁用:
sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
#更新内核文件
sudo update-initramfs -u
#执行上面命令后,重启系统:
reboot
在 Ubuntu 22.04 中,禁用原有的 GPU 驱动(尤其是默认的 nouveau 驱动或已安装的旧版 NVIDIA 驱动)非常重要,以避免与新的 NVIDIA 驱动 发生冲突。执行如下命令禁用原有GPU驱动后,重启系统。
二、NVIDIA驱动安装(两种方法选一种即可)
1. 方法一:系统推荐安装
#安装依赖包
[root@GPU01: ~]# sudo apt update && apt install ubuntu-drivers-common alsa-utils
#查询可以安装的驱动
[root@GPU01: ~]# sudo ubuntu-drivers devices
ERROR:root:aplay command not found
== /sys/devices/pci0000:15/0000:15:01.0/0000:16:00.0/0000:17:00.0/0000:18:00.0 ==
modalias : pci:v000010DEd00002330sv000010DEsd000016C1bc03sc02i00
vendor : NVIDIA Corporation
driver : nvidia-driver-545 - distro non-free
driver : nvidia-driver-580 - distro non-free recommended
driver : nvidia-driver-570-server-open - distro non-free
driver : nvidia-driver-570-server - distro non-free
driver : nvidia-driver-570 - distro non-free
driver : nvidia-driver-580-open - distro non-free
driver : nvidia-driver-545-open - distro non-free
driver : nvidia-driver-570-open - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-535-server-open - distro non-free
driver : nvidia-driver-535 - distro non-free
driver : nvidia-driver-580-server - distro non-free
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-580-server-open - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
#安装系统推荐的580驱动,重启操作系统即可
[root@fusion: ~]# apt-get install nvidia-driver-580 -y
[root@fusion: ~]# reboot
推荐你安装驱动的版本为580.95.05
2. 方法二:指定安装
2.1. 确定 Nvidia Driver 版本
去官网Download The Official NVIDIA Drivers | NVIDIA根据显卡型号下载对应的驱动版本:

2.2. 下载 Nvidia Driver

wget https://cn.download.nvidia.com/tesla/580.105.08/NVIDIA-Linux-x86_64-580.105.08.run
2.3. 安装依赖,设置权限并安装
#安装依赖
sudo apt-get install -y pkg-config xorg-dev make gcc gcc+ pkg-config xorg-dev
#设置权限并安装
cd /datapool/share/drivers/
sudo chmod a+x NVIDIA-Linux-x86_64-580.105.08.run
bash NVIDIA-Linux-x86_64-580.105.08.run -no-x-check -no-nouveau-check -no-opengl-files -s -Z
#安装完成之后建议重启一次系统
reboot
具体含义如下:
-a 或 --accept-license:自动接受许可协议,跳过许可协议的交互式确认。-s 或 --silent:无交互模式安装。使用这个选项时,安装过程不会显示任何提示或警告,适合在脚本中使用。- -q 或 --quiet: 安装过程将非常安静,几乎不输出任何内容,除非发生错误。这个选项和 -s 很相似,但通常会有更少的输出。
- –no-kernel-module: 跳过内核模块的构建过程。这个选项适用于你已经有预先编译好的内核模块,或者你不想安装内核模块的情况下。
- -K 或 --kernel-source-path: 指定内核源代码路径。使用此选项,如果你没有安装内核源代码并需要为自定义内核构建模块。
- –dkms: 在安装过程中启用 DKMS(Dynamic Kernel Module Support)。启用该选项后,安装程序会配置 DKMS,使驱动程序能在内核升级时自动重新编译。
- -x 或 --extract-only: 只提取安装文件而不进行实际安装。适用于需要手动安装或查看文件的场景。
--no-x-check:不检查当前系统是否正在运行 X 服务器(即图形界面)。在没有图形界面的情况下,你可以使用此选项来跳过 X 服务器检查。- –no-nouveau-check: 跳过 Nouveau 驱动程序检查。Nouveau 是一个开源的 NVIDIA 驱动程序,在安装 NVIDIA 官方驱动之前,通常需要卸载或禁用 Nouveau 驱动程序。这个选项会跳过这个步骤。
- –no-drm: 禁用 Direct Rendering Manager(DRM)。通常,NVIDIA 驱动会启用 DRM 来提高图形性能。这个选项禁用该功能。
--disable-nouveau:该选项用于在安装过程中禁用 Nouveau 驱动。这是安装 NVIDIA 驱动时常用的一个选项,确保不会发生冲突。- -h 或 --help: 显示帮助信息,列出所有可用选项和参数。
3. 显卡驱动检查
在安装了显卡驱动的情况下,用 nvidia-smi 查看支持的CUDA最高版本

CUDA版本最高支持到CUDA Version: 13.0,向下兼容。
4. 开启 GPU 持久模式
GPU驱动内存常驻模式,也称为GPU驱动持久模式, 在NVIDIA GPU中指的是持久性模式(Persistence Mode),而不是持久性内存。它是一种用于优化GPU性能的设置,使 NVIDIA GPU 驱动在空闲时保持加载状态,避免每次使用时重新初始化,从而减少启动延迟并提高性能。
主要用于需要频繁调用GPU的任务场景,例如深度学习训练。
开启 Persistence Mode 后则可实现:
- nvidia-smi 秒开无延迟;
- PyTorch、TensorFlow 初次调用时间大幅缩短;
- 多个 CUDA 脚本反复测试也无需重新初始化 GPU;
- 整体工作流更流畅,节省大量等待时间。
4.1 查询是否开启持久方法:
nvidia-smi -q | grep "Persistence Mode"
或者:

4.2 临时切换持久方法:
# 方法1:
# 1:启用持久模式。
# 0:禁用持久模式。
nvidia-smi -pm 1
# 方法2:
/usr/bin/nvidia-persistenced --persistence-mode
4.3 开机自动开启持久方法:
cd /usr/share/doc/NVIDIA_GLX-1.0/samples/
tar -xvf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init/
./install.sh
4.4 查看持久状态是否正常:
#检查状态是否正常
systemctl status nvidia-persistenced.service
三、NVIDIA Fabric Manager 部署
1. 什么是 NVIDIA Fabric Manager
NVIDIA Fabric Manager 是用于管理 NVIDIA NVSwitch 系统的核心软件组件,主要负责配置 NVSwitch 内存结构,形成一个统一的内存结构,并监控支持该结构的 NVLink。
功能如下:
1. 配置 NVSwitch 端口路由: Fabric Manager 负责在 NVSwitch 端口之间配置路由,以实现 GPU 之间的高效通信。
2. 协调 GPU 初始化: 与 GPU 驱动程序协同工作,初始化 GPU。
3. 监控 NVLink 和 NVSwitch 错误: 实时监控 NVLink 和 NVSwitch 的状态,报告错误和状态信息。
4. 支持多租户虚拟化: 在共享 NVSwitch 和 vGPU 多租户模式下,Fabric Manager 提供 SDK 和 API,用于查询、激活和停用 GPU 分区。
5. 与 MIG(多实例 GPU)协同工作: 在启用 MIG 模式时,Fabric Manager 可以与 GPU 的 MIG 实例配合,确保在禁用 MIG 模式后恢复 NVLink 的点对点通信能力。
详细介绍参考官网
2. NVIDIA Fabric Manager 安装
2.1. 查询 Fabric Manager 下载地址
查询 Fabric Manager 文件的下载地址:
https://developer.download.nvidia.cn/compute/cuda/repos/
2.2. Fabric Manager 安装
https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64/nvidia-fabricmanager_580.105.08-1_amd64.deb
dpkg -i nvidia-fabricmanager_580.105.08-1_amd64.deb
2.3. Fabric Manager 启动
# 服务随实例开机自启动
systemctl enable nvidia-fabricmanager --now
#锁定版本。防止吏新
apt-mark hold nvidia-fabricmanager-580
2.4. Fabric Manager 状态
# 执行如下命令查看Fabric Manager服务是否正常启动,回显active(running)表示启动成功。
sudo systemctl status nvidia-fabricmanager

服务为Active运行状态即可
四、安装 NVIDIA Container Toolkit
这里以 ubuntu2204 为例,
1. 先安装以下步骤所需的先决条件:
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
curl \
gnupg2
2. 配置生产环境代码库:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
(可选)配置存储库以使用实验性软件包:
sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
3. 从存储库更新软件包列表:
sudo apt-get update
4. 安装 NVIDIA 容器工具包:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.1-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

8868

被折叠的 条评论
为什么被折叠?



