test_gpu_scripts/docs/h100_test_all_metrics_guide_cn.md

15 KiB
Raw Blame History

H100 test all 指标说明

本文解释 gpu_tester.py --test all 报告里每一项指标的意义、它在验收中代表什么,以及异常时通常应该优先排查什么。

适用报告:

  • reports_test_all_latest_aikubeworker0012_20260522_203246.md
  • reports_test_all_latest_aikubeworker0016_20260522_203447.md
  • reports_test_all_latest_summary_cn_20260523.md

总体判定

指标 意义 怎么看
Overall Acceptance Verdict 整机验收结论 按 PDF 生产验收规则,任一必测子项 FAIL则整机 FAIL
Suite complete: x/10 tests passed 10 个测试模块里通过了几个 用来快速看整体健康度,但最终以 Overall Acceptance Verdict 为准
PASS 达到当前配置阈值 表示该指标在当前测试口径下通过
FAIL 未达到当前配置阈值,或证据不足 表示该项不能作为生产验收通过证据
WARN 旧报告或非强制警告口径 当前 PDF 生产验收里,关键性能未达标应按 FAIL 处理

GPU Info

GPU Info 是基础盘点项,用来确认机器硬件、驱动和 CUDA 环境是否符合预期。

指标 意义 异常影响
GPU count 当前系统识别到的 GPU 数量 H100 8 卡机器如果不是 8 张,后续所有多卡测试都不可信
GPU model GPU 型号,例如 H100 型号不对会导致阈值、峰值、验收口径都不对
Driver version NVIDIA 驱动版本 版本过旧可能影响 CUDA、NCCL、DCGM、NVLink 工具
CUDA version CUDA 运行时或驱动支持版本 CUDA 不匹配会导致 PyTorch、nccl-tests 或编译工具异常
GPU UUID / PCI bus id GPU 唯一标识和 PCIe 拓扑位置 用于定位具体故障卡、对应槽位和链路

这项通常不直接代表性能好坏,它是确认“测的是不是目标机器、目标 GPU、目标软件栈”。

Health Check

Health Check 是空闲或轻负载状态下的基础健康检查。

指标 意义 怎么看
Temperature 当前 GPU 温度 空闲温度过高可能说明散热、风道、环境温度异常
Power 当前功耗 空闲功耗异常高可能说明有残留进程或功耗状态异常
ECC errors 显存纠错错误 单比特错误过多或双比特错误通常需要重点关注硬件稳定性
PCIe PCIe 代际和宽度,例如 Gen5 x16 降速或降宽会影响 CPU-GPU、RDMA、部分数据搬运性能
Throttle 当前是否触发限速 空闲状态下非 idle throttle 不正常,可能影响后续性能
XID / NVRM events 驱动或 GPU 错误事件 出现新 XID 通常说明硬件、驱动、供电或内核态异常

Health PASS 只能说明基础状态正常,不代表满载性能一定达标。

Memory Bandwidth

Memory Bandwidth 衡量数据搬运能力,包括 CPU 到 GPU、GPU 到 CPU、GPU 到 GPU。

指标 意义 代表什么
H2D Host to DeviceCPU 内存到 GPU 显存带宽 受 PCIe、NUMA、CPU 内存、驱动影响
D2H Device to HostGPU 显存到 CPU 内存带宽 受 PCIe、NUMA、CPU 内存、驱动影响
D2D Device to DeviceGPU 到 GPU 带宽 单节点多卡通常主要受 NVLink/NVSwitch 影响
Efficiency 实测值相对理论或配置阈值的比例 用于快速判断是否达到预期带宽

H2D/D2H 主要看 PCIe 和 CPU 侧链路是否正常。D2D 更接近多卡训练、NCCL 和 P2P 通信的基础能力。

Compute Throughput

Compute Throughput 衡量 GPU 在不同数值格式下的矩阵计算吞吐,单位通常是 TFLOPS。

指标 意义 常见用途
FP32 32 位浮点性能 传统科学计算、部分模型训练和验证
TF32 TensorFloat-32 Tensor Core 性能 NVIDIA Ampere/Hopper 上常见的 FP32 加速路径
FP16 16 位浮点 Tensor Core 性能 深度学习训练和推理常用
BF16 bfloat16 Tensor Core 性能 大模型训练常用,数值范围比 FP16 更稳
FP8 8 位浮点 Tensor Core 性能 新一代低精度训练/推理加速
FP64 64 位双精度性能 HPC、科学计算、仿真
INT8 8 位整数性能 推理、量化模型
Achieved 实测吞吐 越接近峰值越好
Peak 理论峰值或规格峰值 用来计算效率
Threshold 当前验收阈值 低于阈值则 FAIL
Efficiency Achieved / Peak 衡量实测利用率

Compute Consistency

Consistency 是看同一种 dtype 下,不同 GPU 之间性能是否均衡。

指标 意义 异常含义
Min 8 张 GPU 里最慢卡的实测值 用于发现拖后腿的卡
Mean 8 张 GPU 平均值 用于看整体水平
Max 8 张 GPU 里最快卡的实测值 和 Min 一起计算离散度
Spread (Max - Min) / Mean 反映卡间性能差异

Spread 超过阈值通常说明某些卡受温度、功耗、PCIe、后台负载、时钟策略或硬件状态影响。即使平均性能还可以卡间差异过大也会拖慢分布式训练。

NVLink/NVSwitch 测试确认 GPU 间高速互联是否完整、速率是否正确、错误计数是否干净。

指标 意义 怎么看
Active Links 每张 GPU 当前活跃 NVLink 数 H100 8 卡 SXM 常见期望是每卡 18 条
Expected Links 配置期望链路数 少一条都可能影响拓扑和 NCCL 性能
Link speed 单条链路速率 速率不对说明链路降级或识别异常
Error counters NVLink 错误计数,例如 CRC/replay/recovery 非零可能说明链路质量或硬件问题

NVLink PASS 表示链路状态看起来正常,但 NCCL 仍可能因算法、拓扑、消息大小、NCCL 参数或系统噪声而不达标。

DCGM Diagnostic

DCGM 是 NVIDIA 官方诊断工具。dcgmi diag -r 3 是比较完整的生产诊断级别。

子项 意义
Deployment/software 驱动、库、系统软件依赖检查
Hardware/memory GPU 显存健康检查
Hardware/diagnostic GPU 硬件基础诊断
Hardware/nvbandwidth GPU/NVLink/NVSwitch 带宽诊断
Integration/pcie PCIe 集成和链路相关检查
Stress/targeted_stress DCGM 自带目标压力测试
Stress/targeted_power DCGM 自带目标功耗压力测试
summary 该分类汇总结果

DCGM PASS 是强证据,说明官方诊断没有发现明显硬件故障。但它不替代项目里的 NCCL、RDMA、长时间 telemetry 和训练模拟验收。

NCCL Multi-GPU

NCCL 测试衡量单节点多 GPU 集合通信能力。它直接关系到多卡训练效率。

指标 意义 为什么重要
source 测试来源 必须是 nccl-tests 才有真实 bus BWtorchrun_fallback 只能说明功能连通,不是性能验收
bus BW NCCL 报告的总线等效带宽 用来衡量通信是否吃满 NVLink/NVSwitch
message size 消息大小,例如 1M、256M、2G 小消息看延迟和调度,中大消息看带宽
repeats 重复次数 减少偶然波动,当前按 3 次取样
worst bus BW 多次结果里的最差值 生产验收更关注最差情况
mean bus BW 多次平均值 反映稳定水平
stddev 标准差或波动 波动大说明通信稳定性不足

NCCL op 含义

Op 意义 常见场景
allreduce 每张卡都有一份数据,做规约后每张卡都拿到结果 数据并行梯度同步最常见
allgather 每张卡收集所有卡的数据分片 模型并行、张量并行、参数/激活收集
reducescatter 先规约再把结果切分给各卡 ZeRO、优化器状态切分、分布式训练常用
broadcast 一张卡把数据广播给其他卡 参数同步、初始化权重分发
sendrecv 点对点发送和接收 pipeline、定制通信、拓扑验证
alltoall 每张卡向每张卡交换不同数据 MoE、专家并行、shuffle 类通信

NCCL 小消息失败常见于延迟、调度或阈值口径较严大消息失败更偏向链路带宽、拓扑、NCCL 参数或 NVSwitch/PCIe/NUMA 配置问题。

Stress Test

Stress Test 是长时间高负载稳定性测试。它不是只看“能不能跑完”,还要看满载期间的温度、功耗、限速和错误事件。

指标 意义 怎么看
duration 实际压力测试时长 生产验收通常需要 30/60 分钟
source 压力来源,例如 pytorchgpu-burn 说明用什么负载压 GPU
dtype 压力计算的数据类型,例如 BF16 影响 Tensor Core、功耗和温度
matrix_size GEMM 矩阵边长 越大越容易形成持续高占用
memory_pct 目标显存占用比例 避免只测很小负载
Avg steady power 稳态平均功耗 判断是否真的把卡压起来
Max steady temp 稳态最高温度 判断散热上限
Temp delta 8 卡之间最高温和最低温的差 差异过大说明风道、散热或卡位不均衡
TFLOPS jitter 稳态吞吐波动 波动大说明性能不稳定
Throttle events 限速事件数量 非 idle throttle 会影响性能稳定性
XID events 压测期间新增 XID 错误 出现 XID 通常是严重风险

Throttle 常见含义

代码 常见含义 解释
0x1 idle throttle 空闲状态限速,通常不算真实问题
0x4 sw_power_cap 达到软件功耗上限,性能可能被功耗墙限制
0x8 hardware slowdown 硬件触发降速
0x10 thermal slowdown 温度触发降速
0x20 power brake 外部供电或硬件功率保护
0x40 software thermal slowdown 软件温度策略触发降速

当前报告里的 sw_power_cap 表示负载确实压到了功耗墙附近,但验收口径把非 idle throttle 作为失败原因之一,因为它会影响长时间稳定输出。

RDMA / InfiniBand

RDMA 测试衡量 IB 网卡和网络链路性能。单节点 loopback 和跨节点 server/client 是两种不同证据,不能混用。

指标 意义 怎么看
Device IB 设备名,例如 mlx5_0 对应具体 HCA/端口
Port 端口号 通常是 port 1
State 端口状态,例如 ACTIVE/DOWN ACTIVE 才能作为可用链路
Rate 端口速率,例如 400 Gb/sec 低于期望说明链路降级或接错网络
GID/LID IB 寻址信息 ibping 和跨节点定位会用到
ib_write_bw RDMA write 带宽 客户端向远端写数据的吞吐
ib_read_bw RDMA read 带宽 客户端从远端读数据的吞吐
ib_write_lat RDMA write 延迟 小消息写延迟
ib_read_lat RDMA read 延迟 小消息读延迟
ibping IB 层连通性测试 看 LID/GID 层是否可达
PFC/ECN/CNP counters 拥塞和流控相关计数 非零或增长可能说明网络拥塞/丢包/流控问题

单节点与跨节点的区别

口径 意义 能证明什么 不能证明什么
local_loopback 在同一台机器本地启动 perftest server/client 工具、设备、单机端口基本可用 不能证明两台机器之间 RDMA 网络达标
server/client 跨节点 一台做 server另一台做 client 能证明实际跨节点 RDMA 带宽/延迟 需要明确 server_addr、ib_device、ib_port、ibping_target

RDMA read 带宽低于 write 带宽很常见,但生产验收会给 read/write 各自设置阈值。read 不过线时,需要排查 HCA 固件、BIOS、PCIe、NUMA、RoCE/IB 配置、交换机、PFC/ECN、线缆和端口速率。

Training Simulation

Training Simulation 用一个合成 1.5B Transformer 训练负载验证 8 卡分布式训练是否能稳定运行。

指标 意义 怎么看
Model 模型类型 当前是 synthetic 1.5B,不依赖真实数据集
Parameters 参数量 用来确认负载规模是否达到预期
GPU Count 参与训练的 GPU 数 生产口径要求 8 卡 DDP
DType 训练数值格式,例如 BF16 大模型训练常用 BF16
Batch Size 每步 batch 大小 影响吞吐和显存
Seq Length 序列长度 影响计算量和显存
Steps 计入统计的训练步数 步数太少会导致统计不稳
Warmup Steps 预热步数 避免把 CUDA 初始化、编译、缓存冷启动计入性能
Avg Step Time 平均每步耗时 越低越好
Throughput tokens/sec 训练吞吐核心指标
Samples/sec 每秒样本数 辅助衡量数据处理速度
Peak Memory 峰值显存 看是否接近 OOM 或显存利用不足
Final Loss 最后 loss 用于确认数值是有限值,没有 NaN/Inf
Step Jitter step 时间抖动 抖动大说明训练不稳定
Distributed Mode 分布式模式 必须是 ddp 才满足 8 卡分布式口径

Training PASS 说明 8 卡 DDP 训练路径、NCCL 功能连通、PyTorch CUDA 和基本数值稳定性都没问题。但它不能替代 NCCL 性能测试,因为训练负载可能没有覆盖所有通信模式和消息大小。

常见误读

  1. DCGM PASS 不等于整机验收 PASS。DCGM 是官方诊断的一部分,不覆盖全部业务性能门槛。
  2. Training PASS 不等于 NCCL 性能 PASS。训练能跑只说明功能链路通NCCL bus BW 仍可能不达标。
  3. NVLink PASS 不等于 NCCL PASS。链路数量和错误计数正常不代表所有 NCCL op/size 都达到阈值。
  4. ibping PASS 不等于 RDMA 带宽 PASS。ibping 只证明连通性,不证明吞吐和延迟达标。
  5. local_loopback 不能当作跨节点 RDMA 证据。跨节点验收必须有 server/client 两端证据。
  6. Stress 跑满 30 分钟不等于 PASS。温差、功耗、throttle、XID、jitter 都要一起看。
  7. 小消息 NCCL 低不一定是链路断了,可能是延迟、算法、启动开销或阈值口径导致;但生产验收仍按阈值判定。

排查优先级建议

失败项 优先看什么
Compute FAIL GPU 时钟、功耗策略、MIG/MPS、后台进程、PyTorch/CUDA 版本、benchmark 算法是否用到目标 Tensor Core 路径
NCCL FAIL NCCL_DEBUG=INFO、拓扑、NVSwitch/NVLink、NCCL 算法、消息大小、PCIe/NUMA、进程绑核
Stress FAIL 机箱风道、风扇、环境温度、功耗上限、nvidia-smi -q -d POWER,CLOCK,TEMPERATURE
RDMA FAIL 端口速率、HCA 固件、线缆、交换机、PFC/ECN、NUMA、BIOS、跨节点 server/client 配置
Training FAIL torchrun、NCCL 环境变量、CUDA OOM、loss NaN/Inf、DDP 初始化、网络/共享内存

一句话版

这套报告不是只看 GPU 能不能亮、训练能不能跑而是同时验证硬件识别、基础健康、显存和互联带宽、计算吞吐、多卡通信、长时间满载稳定性、IB/RDMA 网络、官方 DCGM 诊断和 8 卡训练业务路径。任何一个关键项 FAIL按生产验收都应判整机不通过。