title: GPU 测试
created: 2026-06-20
updated: 2026-08-14
type: concept
tags: [gpu, nvidia, intel, cuda, deepstream]
sources:
- raw/scripts/NVIDIAGPU.sh
- raw/scripts/nvidia.sh
- raw/scripts/nvidia.cuda13.sh
- raw/scripts/reboot_gpu.sh
- raw/scripts/DeepStream.sh
- raw/scripts/intel.gpu.sh
GPU 测试
GPU 测试涵盖 NVIDIA 和 Intel 显卡的驱动安装、CUDA 工具链部署、DeepStream SDK 安装配置、GPU 压力测试以及性能验证。本页汇总 GPU 测试中的核心概念和常用操作。
NVIDIA 驱动安装
依赖准备
安装 NVIDIA 驱动前需要确保系统具备编译内核模块所需的基础工具:
# RHEL/CentOS
yum install -y make gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) which cmake
# Ubuntu/Debian
sudo apt-get install -y make gcc linux-headers-$(uname -r)
# 通用构建依赖
sudo apt-get install build-essential
sudo dnf install elfutils-libelf-devel
屏蔽 Nouveau 开源驱动
Nouveau 是 NVIDIA 显卡的开源驱动,会与新安装的官方驱动冲突,必须屏蔽:
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
# CentOS 更新 initramfs
sudo dracut -force
# Debian/Ubuntu 更新 initramfs
sudo update-initramfs -u
验证屏蔽成功:lsmod | grep nouveau 应无输出。
Runfile 安装方式
NVIDIA 官方提供 .run 安装包,推荐使用以下参数进行静默安装:
sudo sh NVIDIA-Linux-*.run \
--ui=none \
--no-questions \
--accept-license \
--disable-nouveau \
--no-cc-version-check \
--install-libglvnd 2>&1
关键参数说明:
- --ui=none — 无交互界面,适用于远程/脚本安装
- --no-questions — 不询问用户问题,自动采用默认值
- --accept-license — 自动接受许可协议
- --disable-nouveau — 安装时自动屏蔽 Nouveau 驱动
- --no-cc-version-check — 跳过 GCC 版本检查(某些系统 GCC 版本与驱动要求不匹配时使用)
- --install-libglvnd — 安装 GLVND(OpenGL Vendor-Neutral Dispatch)库
参考:Linux 常规操作与优化 中的内核参数调整(如 IOMMU 开启)对 GPU 直通有影响。
卸载驱动
sudo nvidia-uninstall
# 或 apt 方式卸载
sudo apt-get --purge remove nvidia*
sudo apt autoremove
查看 GPU 信息
通过 lspci 查看 GPU
lspci 是 Linux 上查看 PCI 设备的标准工具:
# 查看所有 NVIDIA GPU
lspci -nn | grep -i nvidia
# 按 PCI Vendor ID 查找 (10de = NVIDIA)
lspci -d 10de: -vvv | grep --color Width
# 确认 GPU 是否被内核识别
lspci -nnk -d 10de:
# 查看 DCU (K100)
lspci -d 1d94:6210
# 查看完整设备树
lspci -tv
lspci -d 10de:— 仅显示 Vendor ID 为 10de(NVIDIA)的设备-vvv— 非常详细模式,可查看 PCIe 链路宽度(Width)、NUMA 节点等-tv— 树状结构显示设备拓扑-nnk— 显示内核驱动模块
通过 nvidia-smi 查看 GPU
# 基本信息
nvidia-smi
# 查看拓扑结构(NUMA 亲缘性、PCIe 交换机拓扑)
nvidia-smi topo -m
# 查看 P2P 支持
nvidia-smi topo -p2p rw
# 查询完整信息(包括 Serial Number、Bus Id)
nvidia-smi -q
# 按 CSV 格式输出特定字段
nvidia-smi --format=csv \
--query-gpu=gpu_name,serial,gpu_bus_id,vbios_version,memory.total,\
pcie.link.gen.max,pcie.link.gen.current,pcie.link.width.max,pcie.link.width.current
# 查看 ECC 状态
nvidia-smi -q -d ECC
# 关闭 ECC
nvidia-smi -e 0
# 监控(dmon 模式)
nvidia-smi dmon -s uctpm
nvidia-smi dmon 参数:
- u — 利用率(SM/mem/enc/dec/jpeg/ofa)
- c — 时钟频率(mclk/pclk)
- t — 温度
- p — 功耗
- m — 内存使用(FB、BAR1、CC)
- e — ECC 错误 + PCIe Replay 错误
GPU 定位方法
通过 BUS-ID 定位物理卡槽:
# 查看 GPU 序列号和 BUS-ID 对应关系
nvidia-smi -q | grep -E "Serial Number|Bus Id"
# 通过 dmidecode 查看槽位信息
sudo dmidecode -t slot | egrep -i "slot|add"
CUDA 工具包安装
环境变量配置
安装 CUDA Toolkit 后,配置系统环境变量:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
推荐写入 /etc/profile 使其全局生效,然后 source /etc/profile。
CUDA 13
CUDA 13 是最新主要版本。安装方式与其他版本一致,但需要下载对应 CUDA 13 的 runfile 或包管理器仓库配置。在 RHEL 9 上使用 dnf 配置 CUDA 13 仓库安装:
sudo dnf config-manager --add-repo \
https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
相关测试脚本详见 nvidia.cuda13.sh。
CUDA Samples 测试
编译并运行 CUDA Samples 验证驱动和 CUDA 安装:
git clone https://github.com/nvidia/cuda-samples.git
cd cuda-samples && mkdir build && cd build
cmake .. && make -j$(nproc)
# P2P 带宽延迟测试
./Samples/5_Domain_Specific/p2pBandwidthLatencyTest/p2pBandwidthLatencyTest
# 带宽测试(逐卡)
for i in {0..7}; do
./Samples/1_Utilities/bandwidthTest/bandwidthTest --device=$i
done
# 矩阵乘法测试
./Samples/0_Introduction/matrixMul/matrixMul -device=0 -wA=20480 -hA=20480 -wB=20480 -hB=20480
NCCL 测试
NVIDIA Collective Communications Library (NCCL) 是多 GPU 通信库,用于分布式训练场景:
# 编译 nccl-tests
make CUDA_HOME=/usr/local/cuda
# AllReduce 性能测试
./build/all_reduce_perf -b 8 -e 128M -f 2 -g 8
# 高性能模式
NCCL_NTHREADS=$(nproc) NCCL_MIN_NCHANNELS=8 ./build/all_reduce_perf -b 1g -e 8g -f 2 -g 8
# 禁用 P2P(某些场景需要)
NCCL_P2P_DISABLE=1 ./build/all_reduce_perf -b 8 -e 128M -f 2 -g 8
NCCL 测试还包括 all_gather、all_to_all、broadcast、reduce、scatter 等多种集合通信模式。
DeepStream SDK
DeepStream 是 NVIDIA 的智能视频分析(IVA)SDK,基于 GStreamer 管道:
# 安装依赖(GStreamer 插件)
sudo apt install libgstreamer1.0-0 gstreamer1.0-tools \
gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly gstreamer1.0-libav \
libgstrtspserver-1.0-0 libjansson4 libyaml-cpp-dev
# 安装 TensorRT
sudo dpkg -i nv-tensorrt-repo-*.deb
sudo apt-get update && sudo apt install tensorrt
# 安装 librdkafka
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka && ./configure && make && sudo make install
# 安装 DeepStream
sudo apt-get install ./deepstream-6.1_6.1.0-1_amd64.deb
DeepStream 也支持 Docker 部署,使用 nvcr.io/nvidia/deepstream 镜像。
Intel GPU 配置
Intel GPU(如 Arc A770)在 Linux 上的驱动安装,适用于 RHEL/CentOS 和 Ubuntu:
# Ubuntu 在线安装
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo "deb [arch=amd64] https://repositories.intel.com/gpu/ubuntu ${VERSION_CODENAME}/lts/2350 unified" | \
sudo tee /etc/apt/sources.list.d/intel-gpu-${VERSION_CODENAME}.list
sudo apt update
# 安装驱动和工具
sudo apt install -y linux-headers-$(uname -r) linux-modules-extra-$(uname -r) \
flex bison intel-fw-gpu intel-i915-dkms xpu-smi
# 媒体运行时
sudo apt install -y intel-opencl-icd intel-level-zero-gpu level-zero \
intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2
Intel GPU 查看命令:
# lspci 查找 Intel GPU
lspci -nn | grep -Ei 'VGA|DISPLAY'
# Intel GPU 管理工具
xpu-smi discovery
xpu-smi discovery -d 0
xpu-smi stats -d 0
xpu-smi 是 Intel 的 GPU 管理工具,类似于 NVIDIA 的 nvidia-smi,可查看 GPU 利用率、温度、功耗、频率等信息。
GPU 持久模式
GPU 持久模式避免驱动在无进程使用 GPU 时卸载上下文,对频繁调用的推理场景至关重要:
# 方法一:通过 nvidia-persistenced 服务
cd /usr/share/doc/NVIDIA_GLX-1.0/samples
tar xvf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init && ./install.sh
sudo systemctl enable --now nvidia-persistenced
# 方法二:直接设置(重启失效)
nvidia-smi -pm 1
GPU 重启自动化
reboot_gpu.sh 脚本实现 GPU 自动重启和压力测试循环。该脚本通过 /etc/rc.d/rc.local 开机自启:
# 在 rc.local 中添加
echo "/usr/bin/curl http://192.168.1.34/reboot_gpu.sh | /usr/bin/sh" >> /etc/rc.d/rc.local
脚本逻辑:
1. 读取 /var/log/times 中的剩余重启次数(初始值 10)
2. 每次启动时递减计数
3. 运行 GPU Burn 压力测试(600 秒),同时用 nvidia-smi 记录温度、功耗等数据
4. 测试完成后自动重启
5. 计数归零时停止循环并删除自启配置
GPU 压力测试工具(GPU Burn):
git clone https://github.com/wilicc/gpu-burn.git
cd gpu-burn && make
# 运行压力测试 3600 秒,同时记录 nvidia-smi 数据
nvidia-smi --query-gpu=timestamp,name,pci.bus_id,driver_version,pstate,\
temperature.gpu,power.draw,utilization.gpu,utilization.memory,\
memory.total,memory.free,memory.used \
--format=csv -l 300 > nvidia-smi_$(date +%Y%m%d_%H%M%S).csv &
./gpu_burn 3600
相关页面
- cpu-testing — CPU 压力测试(通常在 GPU 测试中同步进行)
- Linux 常规操作与优化 — 系统调优(IOMMU、SMT 等对 GPU 性能的影响)
- system-information — 系统信息采集(dmidecode、lspci 查看 GPU 槽位信息)
- network-testing — 网络测试(Mellanox InfiniBand 与 GPU 通信相关)
NVIDIA GPU 详解
NVIDIA GPU
NVIDIA GPU 是服务器环境中广泛使用的加速计算硬件,用于 AI 训练、科学计算和高性能计算(HPC)。本页涵盖驱动安装、CUDA 工具链部署、运维管理及问题排查方法。
驱动安装(runfile 方式)
推荐使用 NVIDIA 官方 runfile 方式安装驱动,以获得最大灵活性和兼容性。
安装依赖
# RHEL/CentOS
yum install -y make gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) which cmake
# Ubuntu/Debian
sudo apt-get install -y make gcc linux-headers-$(uname -r)
sudo apt-get install build-essential
# Fedora/RHEL 9+
sudo dnf install elfutils-libelf-devel
验证编译环境
ls -l /usr/src/
ls -l /usr/src/kernels/
make -v
gcc -v
安装命令
sudo sh NVIDIA-Linux-*.run \
--ui=none \
--no-questions \
--accept-license \
--disable-nouveau \
--no-cc-version-check \
--install-libglvnd 2>&1
关键参数说明:
---disable-nouveau:安装时自动屏蔽 nouveau 开源驱动
---no-cc-version-check:跳过 GCC 版本检查
---install-libglvnd:安装 GLVND 库支持
卸载驱动
sudo nvidia-uninstall
ps -ef | grep nvidia | awk '{print $2}' | xargs kill -9
sudo rmmod nvidia
sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset
CUDA 工具链安装
下载与安装
从 NVIDIA CUDA Toolkit 存档 下载对应版本的 runfile:
# ARM 平台示例(如 鲲鹏 + NVIDIA)
wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux_sbsa.run
sudo sh cuda_*_linux.run
环境变量配置
vi /etc/profile
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
source /etc/profile
nvcc -V
CUDA Samples 测试
git clone https://github.com/NVIDIA/cuda-samples.git
cd cuda-samples
mkdir build && cd build
cmake ..
make -j$(nproc)
# 指定测试 GPU
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
# 带宽测试
for i in {0..7}; do
./Samples/1_Utilities/bandwidthTest/bandwidthTest --device=$i
done
# P2P 带宽延迟测试
./Samples/5_Domain_Specific/p2pBandwidthLatencyTest/p2pBandwidthLatencyTest
# 矩阵乘法性能
./Samples/0_Introduction/matrixMul/matrixMul -device=0 -wA=20480 -hA=20480 -wB=20480 -hB=20480
nouveau 开源驱动屏蔽
方法一:黑名单屏蔽
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
# CentOS/RHEL
sudo dracut -force
# Ubuntu/Debian
sudo update-initramfs -u
验证
lsmod | grep nouveau
若无输出,则屏蔽成功。
方法二:安装驱动时自动屏蔽
使用 --disable-nouveau 参数运行 NVIDIA 驱动安装脚本,安装程序会自动完成上述屏蔽操作。
GPU 信息查看
lspci 查看 PCIe 设备
# 查看所有 NVIDIA GPU
lspci -nn | grep -i nvidia
lspci -d 10de: -vvv | grep --color Width
# 确认内核驱动识别情况
lspci -nnk -d 10de:
# 查看整机 PCIe 拓扑
lspci -tv
nvidia-smi 查看 GPU 状态
# 基本信息
nvidia-smi
# 拓扑结构
nvidia-smi topo -m
nvidia-smi topo -p2p rw
# 详细查询(含序列号、BUS-ID)
nvidia-smi -q
nvidia-smi -q | grep -E "Serial Number|Bus Id"
# CSV 格式批量输出(适用于长时间监控)
nvidia-smi \
--query-gpu=timestamp,name,pci.bus_id,driver_version,pstate,\
pcie.link.gen.max,pcie.link.gen.current,\
pcie.link.width.max,pcie.link.width.current,\
temperature.gpu,power.draw,fan.speed,\
utilization.gpu,utilization.memory,\
memory.total,memory.free,memory.used \
--format=csv -l 300
实时监控
# 利用 dmon 监控温度、功耗、利用率等
nvidia-smi dmon -s uctpm
# u = 利用率 | c = 时钟 | t = PCIe 吞吐 | p = 功耗 | m = 内存 | e = ECC
# 利用 watch 监控
watch -n 1 'nvidia-smi --query-gpu=index,clocks.gr,clocks.mem,power.draw --format=csv'
nvidia-persistenced 持久模式
GPU 驱动默认在无进程访问时会进入低功耗状态,影响首次调用性能。开启持久模式可保持驱动常驻内存。
通过 systemd 服务(推荐)
cd /usr/share/doc/NVIDIA_GLX-1.0/samples
tar xvf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init
./install.sh
sudo systemctl enable --now nvidia-persistenced
通过 nvidia-smi
nvidia-smi -pm 1
查看持久模式状态
nvidia-smi -q | grep "Persistence Mode"
时钟管理与 ECC
查看与设置最大时钟
nvidia-smi -i 0 -q -d CLOCK | grep -A 2 Max
nvidia-smi -lgc 2520,2520 # 锁定图形时钟
nvidia-smi -rgc # 解除锁频
ECC 管理
nvidia-smi -q -d ECC # 查看 ECC 状态
nvidia-smi -e 0 # 关闭 ECC(0=关闭, 1=开启)
GPU 重启与恢复
重启 GPU 子系统
# 彻底卸载驱动
ps -ef | grep nvidia | awk '{print $2}' | xargs kill -9
sudo rmmod nvidia
sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset
# 重新加载
sudo nvidia-smi
自动重启脚本(reboot_gpu.sh)
该脚本在服务器重启后自动运行 GPU Burn 压力测试并记录温度变化。通过 /etc/rc.d/rc.local 配置自启:
# /etc/rc.d/rc.local
echo "/usr/bin/curl http://192.168.1.34/reboot_gpu.sh | /usr/bin/sh" >> /etc/rc.d/rc.local
脚本逻辑:
1. 使用计数器文件 /var/log/times 控制重启轮次
2. 每次重启后运行 gpu_burn -tc 600(600 秒压力测试)
3. 结合 nvidia-smi --format=csv -l 60 持续记录温度、功耗
4. 测试结束后执行 reboot 进入下一轮
5. 计数器归零后停止并输出清理说明
故障排查与诊断
收集 Bug 报告
nvidia-bug-report.sh
定位 GPU 物理槽位
# 查看 BUS-ID 与序列号对应关系
nvidia-smi -q | grep -E "Serial Number|Bus Id"
# 查看 PCIe 槽位信息
sudo dmidecode -t slot | egrep -i "slot|add"
查看 IOMMU 状态
dmesg | grep -i iommu
现场诊断工具
# DCGM(Data Center GPU Manager)
sudo systemctl --now enable nvidia-dcgm
dcgmi discovery -l
dcgmi diag -r 4
# Field Diagnostic
fieldiag skip_nvlink p0only
fieldiag skip_nvlink p0only pciid=0:4b:00.0
# NVLink Fabric Manager
systemctl enable nvidia-fabricmanager
systemctl start nvidia-fabricmanager
systemctl status nvidia-fabricmanager
GPU Burn 压力测试
参考 gpu-burn 项目:
wget https://github.com/wilicc/gpu-burn/archive/refs/heads/master.zip
unzip gpu-burn-master.zip
cd gpu-burn-master
make
./gpu_burn 3600 # 运行 3600 秒
NCCL 多卡通信测试
安装 NCCL
# Ubuntu
sudo apt install -y libnccl2=2.20.5-1+cuda12.4 libnccl-dev=2.20.5-1+cuda12.4
# RHEL
sudo yum install -y libnccl-2.20.5-1+cuda12.4 libnccl-devel-2.20.5-1+cuda12.4
NCCL Tests
git clone https://github.com/NVIDIA/nccl-tests
make CUDA_HOME=/usr/local/cuda
# 多卡 AllReduce 测试
GPU_COUNT=$(nvidia-smi --list-gpus | wc -l)
NCCL_NTHREADS=$(nproc) NCCL_MIN_NCHANNELS=$GPU_COUNT \
./build/all_reduce_perf -b 1m -e 1g -f 2 -g $GPU_COUNT
相关概念
- gpu-testing — GPU 综合性能测试方法与工具链
- system-information — 系统信息采集与硬件规格汇总
NVIDIA BlueField-3 DPU
NVIDIA BlueField-3 DPU
BlueField-3 是 NVIDIA 推出的第三代 DPU(Data Processing Unit),集成 16 个 Arm Cortex-A78AE 核心、32GB 板载 DDR 内存、200GbE/NDR200 InfiniBand 网络接口和 PCIe Gen5.0 x16 主机接口。它将网络、存储和安全加速功能卸载到 DPU 上运行,释放主机 CPU 资源。
硬件识别
lspci 识别 DPU 设备
BlueField-3 DPU 的 PCI Vendor ID 为 15b3(Mellanox/NVIDIA):
# 更新 PCI ID 数据库
sudo update-pciids
# 查看 DPU 设备及 PCIe 宽度
lspci -d 15b3: -vvv | grep --color Width
# 示例输出
# 03:00.0 Network controller: Mellanox Technologies MT41686 BlueField-3
BlueField-3 的典型 PCI ID 前缀为 15b3:,包含多个功能端点:网络控制器、rshim 控制通道、NVMe over Fabric 等。
DOCA 软件框架安装
DOCA(Data-Center-on-a-Chip Architecture)是 NVIDIA DPU 的软件开发平台。
安装 doca-host RPM
# 下载 DOCA Host RPM
wget https://www.mellanox.com/downloads/DOCA/DOCA_v2.7.0/host/doca-host-2.7.0-204000_24.04_rhel93.x86_64.rpm
# 安装仓库配置包
rpm -Uvh doca-host-2.7.0-204000_24.04_rhel93.x86_64.rpm
# 更新 yum 缓存并安装 DOCA OFED
yum makecache
sudo yum install doca-ofed -y
卸载 DOCA
for f in $(rpm -qa | grep -i doca); do yum -y remove $f; done
yum autoremove
rshim 驱动验证
rshim(Remote Shim)驱动是主机与 DPU 之间的通信通道,负责镜像刷写和初始配置。
# 重启 rshim 服务
sudo systemctl restart rshim
sudo systemctl status rshim
# 验证 rshim 设备节点
ls /dev/ | grep rshim
# 预期输出:rshim0(或其他编号)
# 查看 rshim 状态信息
cat /dev/rshim0/misc
/dev/rshim0/misc 文件内容示例:
DISPLAY_LEVEL 0 (0:basic, 1:advanced, 2:log)
BOOT_MODE 1 (0:rshim, 1:emmc, 2:emmc-boot-swap)
BOOT_TIMEOUT 150 (seconds)
DROP_MODE 0 (0:normal, 1:drop)
SW_RESET 0 (1: reset)
DEV_NAME pcie-0000:c1:00.2
DEV_INFO BlueField-3(Rev 1)
UP_TIME 39(s)
BFB 镜像刷写流程
BFB(BlueField Boot Stream)是包含了 DPU OS 和固件的完整镜像文件。
创建配置文件
# 生成加密密码
openssl passwd -1
Password:
Verifying - Password:
$1$u0QDSqzU$T2grDRRksYPuaaNR1KIAC.
# 创建 bf.cfg 配置文件
cat > bf.cfg << EOF
ubuntu_PASSWORD='$1$u0QDSqzU$T2grDRRksYPuaaNR1KIAC.'
EOF
执行刷写
# 查看帮助
bfb-install -h
# 执行 BFB 安装
bfb-install --bfb DOCA_2.6.0_BSP_4.6.0_Ubuntu_22.04-5.24-01.prod.bfb \
--config bf.cfg \
--rshim rshim0
刷写过程会自动执行:BIOS 初始化 → DDR POST → UEFI 启动 → eMMC 探测 → Ubuntu 安装 → 用户密码设置。完成后 /dev/rshim0/misc 中 BOOT_MODE 会自动切换为 emmc 模式。
DPU OS 部署(Ubuntu on BlueField)
刷写完成后,DPU 上运行 Ubuntu 22.04 LTS(aarch64 架构),可通过 tmfifo 虚拟网卡 SSH 登录。
配置主机端网络
sudo ip addr add 192.168.100.1/24 dev tmfifo_net0
SSH 登录 DPU
ssh ubuntu@192.168.100.2
登录后可查看 DPU 的硬件信息:
# 查看 DPU 存储
lsblk
# mmcblk0 — 38.8G eMMC(系统盘)
# nvme0n1 — 119.2G NVMe(数据盘)
# 查看 CPU
lscpu
# Architecture: aarch64
# CPU(s): 16(Cortex-A78AE)
# L3 cache: 16 MiB
# 查看系统信息
cat /etc/os-release
# Ubuntu 22.04.3 LTS
固件升级
sudo /opt/mellanox/mlnx-fw-updater/mlnx_fw_updater.pl --force-fw-update
Mellanox 网卡工具集
与 BlueField DPU 配合使用的 Mellanox 工具链:
MST(Mellanox Software Tools)
sudo mst start
sudo mst restart
sudo mst status -v
查看 InfiniBand 设备
ibv_devices # 列出 IB 设备
ibdev2netdev # 查看 IB 设备与网卡的映射关系
ibstatus # 查看 IB 链路状态
mlnx_tune # 显示并检查网络调优信息
修改网卡模式(IB/Ethernet)
# 查看当前配置
mlxconfig -d /dev/mst/mt4123_pciconf0 query
# 切换为 InfiniBand 模式(1=IB, 2=Eth)
mlxconfig -y -d /dev/mst/mt4119_pciconf0 set LINK_TYPE_P1=1
# 切换为 Ethernet 模式
mlxconfig -d /dev/mst/mt4123_pciconf0 set LINK_TYPE_P1=2
带宽测试(ib_write_bw)
# 本地回环测试
ib_write_bw -d mlx5_0 & ib_write_bw -d mlx5_1 127.0.0.1 --report_gbits
# 绑核测试(结合 GPU 拓扑优化 NUMA 亲和性)
taskset -c 0-15 ib_write_bw -d mlx5_0 & \
taskset -c 32-47 ib_write_bw -d mlx5_1 127.0.0.1 --report_gbits
相关概念
- network-testing — 网络性能测试(InfiniBand、RDMA、带宽延迟测试)
- gpu-testing — GPU 测试与 DPU 协同工作场景