Nvidia H100 算力服务器 Cuda Fabric Manager 升级

本文将介绍如下内容:

  • 一、安装前环境配置与检查
  • 二、NVIDIA驱动安装(两种方法选一种即可)
  • 三、NVIDIA Fabric Manager部署

一、安装前环境配置与检查

1. 确保系统环境

我们使用 Ubuntu 22.04,建议先更新系统并重启系统:

shell 复制代码
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. 查看显卡型号

shell 复制代码
[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驱动版本,并重新启动计算机,再重新安装。

shell 复制代码
#查看之前安装的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。

如果有则按照下面操作禁用:

shell 复制代码
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. 方法一:系统推荐安装

shell 复制代码
#安装依赖包
[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

shell 复制代码
wget  https://cn.download.nvidia.com/tesla/580.105.08/NVIDIA-Linux-x86_64-580.105.08.run

2.3. 安装依赖,设置权限并安装

bash 复制代码
#安装依赖
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 查询是否开启持久方法:

bash 复制代码
nvidia-smi -q | grep "Persistence Mode"

或者:

4.2 临时切换持久方法:

bash 复制代码
# 方法1:
# 1:启用持久模式。
# 0:禁用持久模式。
nvidia-smi -pm 1

# 方法2:
/usr/bin/nvidia-persistenced  --persistence-mode

4.3 开机自动开启持久方法:

bash 复制代码
cd /usr/share/doc/NVIDIA_GLX-1.0/samples/
tar -xvf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init/
./install.sh

4.4 查看持久状态是否正常:

bash 复制代码
#检查状态是否正常
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 文件的下载地址:

bash 复制代码
https://developer.download.nvidia.cn/compute/cuda/repos/

2.2. Fabric Manager 安装

bash 复制代码
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 启动

bash 复制代码
# 服务随实例开机自启动
systemctl enable nvidia-fabricmanager --now

#锁定版本。防止吏新
apt-mark hold nvidia-fabricmanager-580

2.4. Fabric Manager 状态

bash 复制代码
# 执行如下命令查看Fabric Manager服务是否正常启动,回显active(running)表示启动成功。
sudo systemctl status nvidia-fabricmanager

服务为Active运行状态即可

相关推荐
大柏怎么被偷了5 小时前
【Linux】重定向与应用缓冲区
linux·服务器·算法
金海境科技6 小时前
【服务器数据恢复】数据中心私有云Ceph分布式集群文件丢失数据恢复案例
服务器·经验分享·分布式·ceph
dodod20126 小时前
Ubuntu24.04.3执行sudo apt install yarnpkg 命令失败的原因
java·服务器·前端
p&f°6 小时前
PostgreSQL 执行计划控制参数详解
数据库·postgresql·oracle
刘一说6 小时前
GeoServer:开源GIS服务器的技术深度解析与OGC标准实践
运维·服务器·开源
Promise4856 小时前
关于使用wsl实现linux移植(imux6ull)的网络问题
linux·服务器·网络
郝学胜-神的一滴6 小时前
Linux线程的共享资源与非共享资源详解
linux·服务器·开发语言·c++·程序人生·设计模式
郝学胜-神的一滴6 小时前
Linux进程与线程的区别:从内存三级映射角度深入解析
linux·服务器·c++·程序人生
YJlio6 小时前
ZoomIt 学习笔记(11.10):键入模式——在桌面上直接打字讲解的最佳实践
服务器·笔记·学习