NVQual — NVIDIA GPU 资格认证测试工具操作指南
1. 概述
什么是 NVQual
NVQual(NVIDIA Qualification Tool)是 NVIDIA 官方的 GPU 硬件资格认证与压力测试工具集。它用于验证 GPU 在特定硬件平台上的稳定性、散热性能、供电能力和 PCIe 信号完整性,是 OEM 合作伙伴获得 NVIDIA 认证系统(NVIDIA-Certified Systems)资格的强制性测试工具。
NVQual 与 MODS 的关系
NVQual 构建在 NVIDIA MODS(Modular Diagnostic Software,模块化诊断软件)框架之上。MODS 是 NVIDIA 内部的低级硬件诊断驱动程序,提供对 GPU 硬件的底层访问,用于诊断、内存测试和 PCIe 验证。
| 组件 | 作用 |
|---|---|
MODS 驱动 (mods.ko) |
替代标准 NVIDIA 驱动的诊断内核模块,提供底层 GPU 硬件访问 |
| nvqual | 基于 MODS 的测试编排工具,管理测试选择、执行和结果收集 |
| nvqual.json | 测试配置文件,定义启用哪些测试、循环次数、GPU 型号识别 |
MODS test specs (.spc) |
具体测试用例定义文件(dgxqual.spc, dgxcommon.spc 等) |
验证领域
| 验证领域 | 说明 |
|---|---|
| GPU 稳定性 | 长时间的持续计算和内存工作负载,验证 GPU 是否在长时间运行下产生错误 |
| 散热性能 | 散热管理有效性、冷却行为、GPU 在满载下是否降频 |
| 供电能力 | 系统电源在 GPU 满载时的稳定性,峰值功率处理(EDPp 测试) |
| PCIe 链路完整性 | 链路训练质量、信号完整性、PCIe 带宽及链路稳定性 |
2. 如何下载 NVQual
★ 2.1 获取途径
NVQual 不是公开下载的工具,仅对 NVIDIA 硬件合作伙伴开放。
获取流程:
- 登录 NVIDIA 合作伙伴网络(NPN):访问 NVIDIA Partner Network 门户网站
- 签署 NDA:需与 NVIDIA 签署有效的保密协议(NDA)和合作伙伴协议
- 联系 NVIDIA 技术联系人:通过合作伙伴渠道联系指定的 NVIDIA 合作伙伴技术联系人,申请 NVQual 工具访问权限
- 接收下载链接:获得批准后,NVIDIA 会提供针对特定 GPU 型号和平台架构的资格认证包下载链接
2.2 包命名规则
NVQual 包名格式:
NVQual_NVIDIA_<GPU_MODEL>_<BUS>_<ARCH>_v<XX>
示例:
| 包名 | GPU 型号 | 接口 |
|---|---|---|
NVQual_NVIDIA_A30X_x86_v01 |
NVIDIA A30X | PCIe |
NVQual_HGX-A100-8GPU_x86_v08 |
HGX A100 8-GPU | SXM |
NVQual_T4_x86_v17 |
NVIDIA T4 | PCIe |
NVQual_P100_PCIe_v05 |
NVIDIA P100 | PCIe |
NVQual_NVIDIA_A2_PCIe_x86_v03 |
NVIDIA A2 | PCIe |
2.3 版本历史
| NVQual 版本 | MODS 版本 | 适用 GPU | 说明 |
|---|---|---|---|
| 4.1.0 | 455.220 | A30X PCIe | 初始版本 |
| 4.0.3 | 445.127 | HGX A100 8-GPU | v08,支持 40GB/80GB |
| 3.2.15 | R400.237 | T4 | v17,17 个迭代版本 |
| 3.2.11 | - | T4 (v01) | 初始 T4 版本 |
2.4 本地下载📁 本地下载
提示:点击按钮将打开网络文件夹,点击即可下载
| GPU | 本地路径 |
|---|---|
| A30 | NVIDIA 驱动\A30\NVQual_NVIDIA_A30X_x86_v01.zip |
| A100 | NVIDIA 驱动\NVqual-A100\NVQual_HGX-A100-8GPU_x86_v08 |
| T4 | NVIDIA 驱动\ningde-T4\NVQual_T4_x86_v17.zip |
| P100 | NVIDIA 驱动\NVQual_P100_PCIe_v05.zip |
3. 如何安装 NVQual
★ 3.1 安装前准备
3.1.1 系统要求
- 操作系统:Linux(推荐 Ubuntu 20.04/22.04 LTS 或 RHEL/CentOS 8/9)
- 架构:x86_64 或 aarch64
- 内核版本:>= 2.6.29
- libc 版本:>= 2.8
3.1.2 BIOS 配置要求(PCIe 验证必备)
| 设置项 | 值 |
|---|---|
| Above 4G Decoding | Enabled |
| MMIOH Base | 256G |
| MMIO High Size | 128G |
若不正确配置以上 BIOS 选项,PCIe 测试将出现 BAR1 地址映射失败。
3.1.3 安装编译依赖
# Ubuntu/Debian
$ sudo apt update
$ sudo apt install -y build-essential dkms linux-headers-$(uname -r)
$ sudo apt install -y numactl libncurses5 libnsl2
# RHEL/CentOS/Rocky
$ sudo yum install -y gcc gcc-c++ make kernel-devel-$(uname -r) dkms
$ sudo yum install -y numactl ncurses-libs libnsl
3.1.4 确认 GPU 已被系统识别
$ lspci | grep -i nvidia
# 应看到所有 NVIDIA GPU 设备列表
3.1.5 安装 NVIDIA 驱动
NVQual 部分测试(如 Test 7 Input EDPp)需要标准 NVIDIA 驱动支持。在安装 MODS 前,确保标准驱动已正常工作:
$ nvidia-smi
# 确认驱动版本和 GPU 列表正确显示
$ nvidia-smi -pm 1 # 开启持久模式
参考 GPU-install.md 获取完整的 NVIDIA 驱动安装指南。
3.2 安装 MODS 驱动
Step 1 — 解压 NVQual 包
$ unzip NVQual_NVIDIA_A30X_x86_v01.zip
$ cd NVQual_NVIDIA_A30X_x86_v01/
$ chmod -R 755 .
Step 2 — 运行系统检查
$ sudo ./mods/check_config.sh
期望输出所有检查项显示 OK。若出现错误,按提示修复后再继续。
主要检查项:
- OS 类型(Linux)
- 内核版本(>= 2.6.29)
- 架构(x86_64 或 aarch64)
- libc 版本(>= 2.8)
- MODS 内核模块状态
- 冲突的内核模块(nvidia / nouveau / nvgpu)
- 控制台空白间隔
- NVIDIA GPU 存在性(lspci)
★ Step 3 — 卸载标准 NVIDIA 驱动模块
MODS 驱动与标准 NVIDIA 驱动不能共存,必须先卸载:
# 停止 GPU 相关服务
$ sudo systemctl stop nvidia-fabricmanager
$ sudo systemctl stop nvidia-persistenced
# 卸载 NVIDIA 内核模块
$ sudo rmmod nvidia_uvm
$ sudo rmmod nvidia_modeset
$ sudo rmmod nvidia_drm
$ sudo rmmod nvidia
# 验证已卸载
$ lsmod | grep nvidia
# 应无输出
若 rmmod 报 "module in use":
# 查看哪些进程占用
$ sudo fuser -v /dev/nvidia*
# 停止显示管理器
$ sudo service gdm stop # GNOME
$ sudo service lightdm stop # LightDM
# 或切换到纯文本模式
$ sudo systemctl isolate multi-user.target
Step 4 — 安装 MODS 内核模块
$ sudo ./mods/install_module.sh -i
此脚本将:
- 解压并编译
mods/driver/中的 MODS 内核驱动源码 - 安装
mods.ko到内核 - 配置 udev 规则创建
/dev/mods设备节点
验证 MODS 模块已加载:
$ lsmod | grep mods
# 应看到: mods XXXXXX 0
若编译失败(常见于较新内核):
# 确保内核头文件匹配
$ sudo apt install linux-headers-$(uname -r)
# 手动编译
$ cd mods/driver
$ make clean
$ make
$ sudo make install
3.3 安装依赖库
在新版 Ubuntu(22.04+)上可能缺少以下库:
# libnsl.so.1 缺失修复
$ sudo apt install libnsl2
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libnsl.so.2 /usr/lib/x86_64-linux-gnu/libnsl.so.1
# libncurses.so.5 缺失修复
$ sudo apt install libncurses5
4. 如何检查是否安装成功
4.1 运行系统检查脚本
$ sudo ./mods/check_config.sh --all
全部检查项应显示 OK,无 ERROR。
4.2 验证 MODS 驱动
$ lsmod | grep mods
# 应有输出,表示 MODS 内核模块已加载
$ ls -la /dev/mods
# 应存在 /dev/mods 设备文件
4.3 验证 NVQual 可执行
$ ./nvqual --help
# 若打印帮助信息,说明工具正常运行
4.4 运行快速测试验证
# 运行单次 PCIe 带宽测试(Test 3)验证基本功能
$ sudo ./nvqual --test 3 --index 0 --loops 1
5. 如何操作 NVQual
5.1 启动 NVQual
$ sudo ./nvqual
启动后将进入交互式菜单界面,显示所有可用测试项。
★ 5.2 NVQual 测试类型详解
NVQual 通常包含 12 个标准测试。不同 GPU 型号的 NVQual 包启用的测试有所不同(由 include/nvqual.json 中的 enabled_tests 字段控制)。
测试总览
| 测试编号 | 名称 | 说明 | 循环次数 |
|---|---|---|---|
| Test 1 | 散热资格测试 (Thermal Test) | GPU 满载温度/功耗测试,分 TDP 和 TDPMax 两个子阶段 | 1-3 |
| Test 2 | PCIe 资格测试 (PCIe Qual Test) | PCIe 链路质量全面检测 | 1 |
| Test 3 | PCIe 带宽测试 (Bandwidth Test) | 实测 PCIe 吞吐量 vs 理论带宽 | 1 |
| Test 4 | 压力测试 (Stress Test) | 长时间 DGEMM 计算压力测试(A100 平台约 2 小时/循环) | 6+ |
| Test 5 | SBIOS 映射测试 | BIOS BAR 地址空间映射验证 | 1 |
| Test 7 | 输入 EDPp 测试 | 电源峰值功率冲击测试,验证 PSU 能否承受 GPU 瞬时功耗峰值 | 1 |
| Test 8 | NVLink 资格测试 | NVLink 通道压力测试与错误检测 | 1 |
| Test 9 | NVLink 带宽测试 | NVLink 实际带宽 vs 理论带宽对比 | 1 |
| Test 10 | NVLink 眼图测试 | NVLink 信号眼图数据输出 | 1 |
| Test 11 | PCIe 眼图测试 | PCIe 信号眼图数据输出 | 1 |
| Test 12 | GPU P2P 带宽与延迟测试 | GPU 间对等传输带宽与延迟测试 | 1 |
Test 1 — 散热资格测试
功能:验证 GPU 在满载下的散热能力
测试时长:约 60 分钟/循环(TDP 阶段 + TDPMax 阶段)
TDP:侧重 GPU 核心功耗
TDPMax:侧重显存功耗
监控:GPU 温度、HBM 温度、DPU 温度、总输入功率、核心频率、显存频率
结果:自动生成 Excel 表格,包含 TDP 和 TDPMax 两部分数据
通过标准:GPU 温度不超限,无降频,无系统关机
Test 2 — PCIe 资格测试
功能:全面验证 PCIe 链路质量
检测内容:链路训练状态、信号完整性、错误计数
结果位置:MODS.log 文件
注意:若带宽极低,可能原因:
- PCIe 训练失败(<16 lane 或未跑在最高速率)
- PCIe 总线错误累积
- 系统内存不足
- 存储设备带宽过低
- PCIe/MegaArray 连接器问题
Test 3 — PCIe 带宽测试
功能:测量实际 PCIe 吞吐量
Gen4 x16 最大带宽:256 Gb/s
Gen3 x16 最大带宽:128 Gb/s
Gen2 x16 最大带宽:80 Gb/s
Test 7 — 输入 EDPp 测试(电源峰值冲击)
功能:生成所有电源轨上的 EDP 峰值功率,验证 PSU 承受能力
注意:
1. 新版 EDPp 无需 CUDA SDK,无需设置 LD_LIBRARY_PATH
2. 必须先安装 NVIDIA 驱动
3. ★ 在室温下运行并最大化系统散热!GPU 温度越低,EDPp 峰值越高
测试模式:频率扫描(50Hz ~ 10KHz 方波负载)
通过标准:无电源关机、无系统挂起、无任何故障
Test 8/9/10 — NVLink 测试
前提:必须连接所有三组 NVLink 桥接器
Test 8:NVLink 通道压力与错误检测(需 12 循环)
Test 9:NVLink 带宽验证
Test 10:NVLink 眼图数据(信号质量分析)
5.3 命令行使用
# 交互模式(默认)
$ sudo ./nvqual
# 指定单个测试
$ sudo ./nvqual --test 2 --index 0
# 指定测试和循环次数
$ sudo ./nvqual --test 3 --index 0 --loops 3
# 运行所有启用的测试
$ sudo ./nvqual -t all
# 指定 GPU 索引运行所有测试
$ sudo ./nvqual -g 0 -t all
| 常用参数 | 说明 |
|---|---|
--test / -t |
指定测试编号 |
--index / -g |
指定 GPU 索引(从 0 开始) |
--loops |
指定测试循环次数 |
-t all |
运行所有启用的测试 |
5.4 配置文件说明
NVQual 的核心配置位于 include/nvqual.json:
{
"general":{
"products": "GPU 产品编号",
"four_part_device_id": "PCI 设备 ID(4 段格式)",
"enabled_tests": "启用的测试编号列表",
"business": "业务类型(Tesla 等)",
"margs": "全局 MODS 参数",
"nvidia_driver_unload_script": "驱动卸载脚本路径",
"nvidia_driver_load_script": "驱动加载脚本路径"
},
"testconfig":{
"1": { "instructions": [...], "margs": "...", "required_loops": 3 },
"2": { "instructions": [...], "margs": "...", "required_loops": 1 }
}
}
各 GPU 平台启用的测试:
| GPU | 启用测试 | NVQual 版本 |
|---|---|---|
| A30X PCIe | 1, 2, 3, 7, 9, 11, 12 | 4.1.0 |
| HGX A100 8-GPU | 1, 2, 3, 7, 8, 9, 10 | 4.0.3 |
| T4 | 1, 2, 3, 7, 11, 12 | 3.2.15 |
5.5 完整测试工作流程
以 X-MAN 3.0 + HGX2 V100 平台为例(参考内部 SOP):
1. BIOS 配置检查
- Above 4G Decoding: Enabled
- MMIOH Base: 256G / MMIO High Size: 128G
2. 系统环境准备
$ sudo rmmod nouveau
$ tar -xvf NVQual_HGX2_V100_x86_16GPU_v03.tar.gz
$ chmod 777 -R NVQual_HGX2_V100_x86_16GPU_v03/
$ cd NVQual_HGX2_V100_x86_16GPU_v03/
3. 安装 MODS 驱动
$ sudo ./mods/install_module.sh -i
$ sudo rmmod mods # MODS 与 NVIDIA 驱动不能同时加载
4. 安装标准 NVIDIA 驱动(用于 Test 7)
$ sudo ./NVIDIA-Linux-x86_64-410.79.run
$ nvidia-smi # 验证 GPU 数量和驱动版本
$ dpkg -i datacenter-gpu-manager-*.deb # 安装 DCGM(如需要)
5. GPU 拓扑检查
$ nvvs -g
$ nvidia-smi topo -p2p w
6. 启动 NVQual 测试
$ sudo ./nvqual
# 按菜单交互选择测试类型和循环次数
7. 结果验收
- 所有测试项显示 "PASS"
- 日志无错误
- 系统无挂起/关机
- 将结果提供给 NVIDIA 应用工程师分析
5.6 测试结果
- 日志文件:测试结果记录在
results/子目录下 - 资格认证模板:各 NVQual 包包含
.xlsm资格认证结果记录模板(如NVIDIA_A30X_PCIe_Qualification_Template.xlsm) - 通过标准:所有测试项必须显示 "PASS",日志中无错误信息,测试期间系统无挂起或关机
6. 各 GPU 平台的 NVQual 包
A30X PCIe
| 属性 | 详情 |
|---|---|
| 包名 | NVQual_NVIDIA_A30X_x86_v01 |
| NVQual 版本 | 4.1.0 |
| MODS 版本 | 455.220 |
| 产品编号 | 1004-0205, G133-0200 |
| 设备 ID | 10de:20b9:10de:1580, 10de:2235:10de:145A |
| 启用测试 | 1, 2, 3, 7, 9, 11, 12 |
| 本地路径 | NVIDIA 驱动\A30\NVQual_NVIDIA_A30X_x86_v01.zip |
HGX A100 8-GPU
| 属性 | 详情 |
|---|---|
| 包名 | NVQual_HGX-A100-8GPU_x86_v08 |
| NVQual 版本 | 4.0.3 |
| 诊断版本 | 445.127 |
| 产品编号 | G506-0200, G506-0202, G506-0210 |
| 设备 ID | 10de:20be, 10de:20b0, 10de:20b2 |
| 启用测试 | 1, 2, 3, 7, 8, 9, 10 |
| 温度规格 | GPU: 85°C (TDP/TDPMax), HBM: 95°C (TDP) / 98°C (TDPMax) |
| 每 GPU 功耗 | 400W |
| 本地路径 | NVIDIA 驱动\NVqual-A100\NVQual_HGX-A100-8GPU_x86_v08 |
T4
| 属性 | 详情 |
|---|---|
| 包名 | NVQual_T4_x86_v17 |
| NVQual 版本 | 3.2.15 |
| MODS 版本 | R400.237 |
| 产品编号 | G183-0200 |
| 设备 ID | 10de:1eb8:10de:12a2 |
| 启用测试 | 1, 2, 3, 7, 11, 12 |
| 版本历史 | v01-v17(17 个迭代版本) |
| 本地路径 | NVIDIA 驱动\ningde-T4\NVQual_T4_x86_v17.zip |
P100 PCIe
| 属性 | 详情 |
|---|---|
| 包名 | NVQual_P100_PCIe_v05 |
| 文件大小 | ~51 MB(压缩包) |
| 状态 | 已归档 |
| 本地路径 | NVIDIA 驱动\NVQual_P100_PCIe_v05.zip |
7. 常见问题排查
| 错误 | 原因 | 解决方法 |
|---|---|---|
nvqual: command not found |
未进入 NVQual 目录或权限不足 | chmod +x nvqual,使用 sudo ./nvqual |
error while loading shared libraries: libnsl.so.1 |
缺少 libnsl 库(Ubuntu 22.04+) | sudo apt install libnsl2,创建软链接 |
libncurses.so.5: cannot open shared object file |
缺少 ncurses 库 | sudo apt install libncurses5 |
mods: module not loaded |
MODS 驱动未安装或未加载 | 运行 sudo ./mods/install_module.sh -i |
rmmod nvidia: module in use |
GPU 被进程占用 | 停止显示管理器,切换到多用户模式 |
Write - Fail 启动失败 |
目录权限不足或磁盘空间不够 | chmod -R 755 .,释放磁盘空间 |
BAR1>42b: Fail |
BIOS Above 4G Decoding 未启用 | 进入 BIOS 启用 Above 4G + 配置 MMIOH |
MODS 编译失败 (pci_channel_state 等) |
内核版本过新,API 不兼容 | 安装匹配的内核头文件,手动编辑 mods_krnl.c 添加缺失的 #include |
Failed to initialize NVML |
NVIDIA 驱动未正确加载 | 重新安装 NVIDIA 驱动,nvidia-smi 验证 |
| 测试中途系统关机 | 电源不足或散热不足 | 检查 PSU 额定功率,加强散热,降低环境温度 |
| 网络 NVQual 测试失败 (BlueField-3) | BFB 2.10 与 FlexIO SDK 不兼容 | 降级到 BFB 2.9(预期 DOCA 3.0 修复) |
8. 参考链接
NVIDIA 官方
内部资源
| 资源 | 路径 |
|---|---|
| NVQual 测试 SOP (V100/T4) | NVIDIA 驱动\Geforce RTX 2080TI\GPU_NVIDIA_NVQual Test_V3.0.docx |
| A30X NVQual 用户指南 (PDF) | NVIDIA 驱动\A30\NVQual_NVIDIA_A30X_x86_v01\NVQUAL_User_Guide.pdf |
| A100 NVQual 用户指南 (PDF) | NVIDIA 驱动\NVqual-A100\NVQual_HGX-A100-8GPU_x86_v08\NVQUAL_User_Guide_for_HGXFF1.0_Platform.pdf |
| T4 NVQual 用户指南 (PDF) | NVIDIA 驱动\ningde-T4\NVQual_T4_x86_v17\NVQUAL_User_Guide.pdf |
| A30X NVQual 说明 (PDF) | NVIDIA 驱动\A30\NVQual_NVIDIA_A30X_x86_v01\NVIDIA_Converged_Accelerator_NVQual_Instructions_v02.pdf |
| GPU 驱动安装指南 | GPU-install.md |
最后更新: 2026-05-29 适用工具: NVQual 3.x / 4.x 适用 GPU: A30X, A100, T4, P100, V100, A2, H100(根据 NVQual 包版本) 适用系统: Ubuntu 20.04/22.04 LTS, RHEL/CentOS 8/9