test_gpu_scripts/H100验收_vs_test_all_差距分析.md

6.5 KiB
Raw Blame History

H100 生产验收标准 vs 当前 gpu_tester.py --test all 覆盖差距

对比文件:/Users/d-robotics/Downloads/H100_production_acceptance.pdf

对比对象:当前仓库执行 python gpu_tester.py --test all --report --format md/json

结论

当前仓库的 test all 能覆盖验收文档里的大类框架,但还不是完整的 H100 生产验收。

它会跑 8 个模块:

  1. GPU Information
  2. Health Check
  3. Memory Benchmark
  4. Compute Benchmark
  5. NCCL Test
  6. GPU Stress Test
  7. RDMA/IB Test
  8. Training Simulation

但是按照 PDF 的生产验收标准,仍缺少这些关键项:

  • NVLink 每卡 18 条链路的 active/速率/错误计数逐项验收
  • DCGM dcgmi diag -r 3
  • 30-60 分钟 burn-in 和 1 秒级温度/功耗/throttle/XID 采样
  • NCCL 官方 nccl-tests 的性能验收,包括 1MB/256MB/2GB 三个消息大小、重复 3 次取最差值、标准差
  • RDMA 生产口径4MB 带宽、8B 延迟、PFC/ECN 错误、ibping 双向
  • 8 卡逐卡 compute 一致性,要求同 dtype 极差/均值 <= 3%
  • FP64、INT8 计算项
  • 训练项应为 8 卡 1.5B synthetic Transformer并按 45k tokens/s、step 抖动、显存、loss 健康度验收

覆盖矩阵

PDF 验收项 test all 是否覆盖 当前覆盖程度 主要缺口
1. 健康检查 部分覆盖 温度、功耗、ECC、PCIe、时钟、throttle、persistence、IB 设备 idle 功耗 <=100W 未单独判定stress 功耗 >=630W 未判定retired pages 未查24h SBE 增长率未查AER/Replay errors 未查fabricmanager 服务和 ERROR 日志未查
2. NVLink 拓扑与链路 部分覆盖 GPU info 会保存 nvidia-smi topo -m 未跑 nvidia-smi nvlink -s/-c/-e;未验证每卡 18 条 NVLink未验证每条 25GB/s未验证 CRC/Replay/Recovery error = 0
3. Memory Bandwidth 部分覆盖 会用 nvbandwidth 测 H2D、D2H、D2D write/read/bidir 未输出完整 8x8 P2P 矩阵;未验非对角均值 >=360GB/s、最小值 >=320GB/s、相对均值偏差 <=±5%D2D 口径和 PDF 的单卡/P2P 验收口径还没完全对齐
4. Compute Throughput 大部分覆盖 默认配置已是 matrix_size=8192、warmup=50、iterations=500、use_compile=trueH100 绝对 TFLOPS 阈值在 gpu_specs.py 里有 目前测试结果是整体/单进程口径,未真正逐 GPU 分别测出 8 卡极差/均值;未测 FP64、INT8
5. NCCL Multi-GPU 部分覆盖,依赖工具 代码支持 nccl-tests若缺 binary 会 fallback torchrun 功能连通性 当前远端没装好 nccl-tests实际会退化成功能测试且失败/无性能数据;默认只启 allreduce/alltoall/broadcast未启 allgather/reducescatter/sendrecv消息大小不是 1MB/256MB/2GB 三点;未重复 3 次取 worst未统计标准差
6. Stress/Burn-in 部分覆盖 会跑 stress默认 60 秒;无 gpu-burn 时用 PyTorch fallback PDF 要 >=30min推荐 60min要 FP16/BF16 大 GEMM matrix >=8192要每分钟 TFLOPS 抖动、温度 <=80、卡间温差 <=5、功耗 >=630W、throttle=0、XID=0当前 PyTorch fallback 只分配约 64MB/卡,压力不够
7. DCGM 诊断 未覆盖 没有执行 dcgmi diag -r 3,也没有解析 Software/Deployment/Hardware/Integration/Stress/Power 子项
8. RDMA/IB 部分覆盖 会发现 IB 设备,跑 ib_write_bw/read_bw/write_lat/read_lat 当前脚本用 localhost不是跨节点msg_size 是 64KB不是 4MBlatency 没指定 8B阈值是 50GB/s 和 10us不是 PDF 的 write/read >=47GB/s、write_lat <=2us、read_lat <=3.5us;未查 PFC/ECN、ibping 双向
9. Training Simulation 部分覆盖 会跑 GPT-2 或 synthetic transformer输出 tokens/s、step time、显存、loss 当前 synthetic 是约 1.47B 参数但实际单进程 .cuda(),不是 8 卡分布式训练;未按 45k tokens/s、step 抖动 <=±3%、peak <=70GB/卡、NaN/Inf 做硬判定
10. 总体 Verdict 部分覆盖 report 有 summary 当前 all 的 pass/fail 逻辑偏“模块是否报错”,不是 PDF 的任一子项 FAIL 即整机禁上生产

如果现在直接执行 test all,能得到什么

会得到一份“单节点综合体检/基准测试报告”,包含:

  • 8 张 H100 的基础信息、驱动/CUDA、PCIe、显存、温度、功耗
  • 健康检查结果
  • nvbandwidth 的 H2D/D2H/D2D 汇总带宽
  • FP32/TF32/FP16/BF16/FP8 计算吞吐
  • NCCL 测试结果,如果 nccl-tests 缺失会退化到 torchrun fallback
  • 60 秒 stress 结果
  • 本机 localhost RDMA/IB 结果
  • 训练模拟结果

这份报告能作为“快速冒烟 + 单机初筛”,不能直接作为 PDF 标准下的“生产验收合格报告”。

当前两台机器执行前置状态

已经确认:

  • nvbandwidth 已装好并能被项目脚本调用
  • PyTorch CUDA 环境已装好
  • RDMA perftest 工具已存在
  • nccl-testsgpu-burn 目前没有按 PDF 生产验收口径准备好

另外,我刚才误触发的 test all

  • aikubeworker0016 已经在跑单节点 test all,当前到 Training Simulation
  • aikubeworker0012 没有成功启动

要补齐到 PDF 验收口径,需要加的最小清单

  1. 安装/修复 nccl-tests,确保真正输出 bus BW而不是 torchrun fallback。
  2. 安装/修复 gpu-burn,或把 PyTorch stress 改成真正高占用 FP16/BF16 GEMM并支持 30/60 分钟。
  3. 增加 NVLink 专项:nvidia-smi nvlink -s/-c/-e,按 18 条/卡、25GB/s、error=0 判定。
  4. 增加 DCGM 专项:dcgmi diag -r 3,解析子项 PASS/FAIL。
  5. 增加 telemetry 采样stress 期间每 1 秒采温度、功耗、throttle、XID计算稳态功耗、温差、抖动。
  6. 修改 RDMA支持指定 server/client、4MB 带宽、8B 延迟、双向 ibping、PFC/ECN 计数。
  7. 修改 NCCL 配置:全 op 开启,按 1MB/256MB/2GB 三个 size重复 3 次取最差值和标准差。
  8. 修改 Compute逐 GPU 分别跑,计算同 dtype 极差/均值;增加 FP64、INT8。
  9. 修改 Training Simulation明确 8 卡 1.5B synthetic 分布式训练,加入 tokens/s、step 抖动、显存、loss NaN/Inf 的 PASS/FAIL。
  10. 修改最终 verdict按 PDF 规则,任一子项 FAIL 就整机不通过。

建议执行策略

现在直接跑:

/root/gpu-test-venv/bin/python gpu_tester.py --test all --report --format md --output reports_all/test_all.md

得到的是“当前仓库 all 覆盖范围报告”。

要拿来做生产验收,需要先补齐上面的缺口,尤其是 nccl-testsgpu-burn、NVLink、DCGM、长时间 burn-in、跨节点 RDMA。