Remove remaining report docs from PR

This commit is contained in:
cs 2026-05-26 00:44:56 +08:00
parent 1c3c811254
commit 017c981062
3 changed files with 0 additions and 258 deletions

View File

@ -1,85 +0,0 @@
# H100 PDF 验收项 vs 当前 `test all` 覆盖对比
对比对象:
- PDF`/Users/d-robotics/Downloads/H100_production_acceptance.pdf`
- 当前脚本:`python gpu_tester.py --config configs/default.yaml --test all --report --format md`
- 范围:单节点 8 卡 H100。跨节点 NCCL/RDMA 暂不纳入本轮。
## 结论
当前 `test all` 已经从“功能巡检”扩成了“接近生产验收”的单节点套件GPU 健康、NVLink/NVSwitch、HBM/PCIe/NVLink 带宽、计算、NCCL、压力、RDMA 本机端口、DCGM、训练模拟都会进入同一个 all。
最新 stress smoke 已确认 PyTorch BF16 GEMM 压力能把两台机器压到 PDF 要求的功耗区间:
- `aikubeworker0012`45 秒 smoke稳态平均功耗约 `697-698W/卡`TFLOPS jitter `4.07%`XID `0`,但温差 `12C``clocks_throttle_reasons.active=0x4`,按 PDF 严格 FAIL。
- `aikubeworker0016`45 秒 smoke稳态平均功耗约 `697-699W/卡`TFLOPS jitter `3.77%`XID `0`,但温差 `8C``clocks_throttle_reasons.active=0x4`,按 PDF 严格 FAIL。
也就是说,当前卡点已经不是“脚本压不满 H100”而是机器在满功耗压力下没有满足 PDF 的 `温差 <=5C``Throttle Reasons 全程 0x0` 两个严格门槛。
但如果严格按 PDF 做最终验收,现在还差这些:
1. 24 小时类指标未覆盖PDF 要求 SBE 24h 增长率、长稳态观察;当前 `all` 是单次快照 + 30 分钟压力,不等于 24 小时老化。
2. 跨节点项目本轮故意不测PDF 的 IB/RDMA 生产验收通常要双端 `ib_write_bw/read_bw/lat``ibping`;当前按你的要求先做单节点,跨节点未纳入。
3. PFC/ECN/AER 的覆盖依赖机器暴露的系统计数器:脚本会读能找到的 sysfs 计数器和 dmesg但如果交换机侧 PFC/ECN 不在主机暴露,仍需要网络侧补证据。
4. NCCL 1MB 档会被严格阈值打失败:实测 1MB AllReduce bus BW 约 23 GB/s而 256MB AllReduce 已通过 `nccl-tests` 验证,约 421 GB/s如果 PDF 要求 1MB 也达到 405 GB/s这项不是“没测”而是会被判 FAIL。
5. Stress 已能达到功耗和 jitter 要求,但短测已经暴露温差和 throttle strict FAIL完整 1800 秒只会给出更正式的证据,不会自动改变这个判据。
## 覆盖表
| PDF 验收项 | 当前 `test all` 状态 | 还少什么 |
|---|---:|---|
| GPU 基本信息、Driver/CUDA | 已覆盖 | 无;会记录 driver、CUDA、GPU 型号 |
| 温度阈值:稳态 ≤75C、峰值 ≤85C | 已覆盖健康快照;压力项覆盖 ≤80C | 24h 稳态曲线不在一次 all 内 |
| idle power ≤100W/card | 部分覆盖 | 当前 health 会采功耗,但 idle 判据还不是独立验收项 |
| stress power ≥630W/card | 已覆盖;短测两台约 697-699W/卡 | 完整 1800 秒仍待跑 |
| throttle reasons active=0x0 | 已覆盖;短测两台出现 0x4 | 按 PDF 严格判 FAIL不是脚本跳过项 |
| DBE/SBE/retired pages | 部分覆盖 | retired pages 和内核错误已查SBE 24h 增长率未覆盖 |
| PCIe Gen5 x16 | 部分覆盖 | GPU 信息/拓扑可见Replay/AER 依赖 dmesg/sysfs可能还需额外主板侧证据 |
| Fabric Manager active 且无 ERROR | 已覆盖 | 无health 会查 systemd 和 journal |
| NVLink18 links/GPU、25GB/s/link、错误为 0 | 已覆盖 | 无;新增 `nvlink` 项 |
| D2D/H2D/D2H 带宽 | 已覆盖 | 依赖 `nvbandwidth`,两台已具备 |
| 8x8 P2P matrix off-diagonal mean/min/deviation | 已覆盖 | 无;由 nvbandwidth JSON 解析 |
| Compute FP32/TF32/FP16/BF16/FP8/FP64/INT8 | 已覆盖 | INT8 为 PyTorch `_int_mm` 路径,若要供应商标准 INT8 kernel 需再换实现 |
| NCCL AllReduce/AllGather/ReduceScatter/Broadcast/SendRecv/AllToAll | 已覆盖 | 无;`nccl-tests` 已在两台编好 |
| NCCL 1MB/256MB/2GBrepeat 3stddev ≤3% | 已覆盖 | 严格按 PDF 阈值时 1MB 档大概率 FAIL256MB AllReduce 两台 `nccl-tests` 实测约 421GB/s |
| Stress ≥30minBF16/FP16 GEMM 81921s telemetry | 已覆盖;默认 BF16 GEMM `24576`1s telemetrywarmup 后稳态判定 | 完整 1800 秒待执行;短测已暴露温差/throttle FAIL |
| DCGM `dcgmi diag -r 3` | 已覆盖DCGM 4.5.3 已安装,服务已启用 | 两台完整 `-r 3` 已 PASS日志见 `/root/test_gpu_scripts/reports/dcgm_r3_*_20260522_17010*.log` |
| RDMA 端口 ACTIVE、400Gbps | 部分覆盖 | 单节点可查端口;严格双端吞吐/时延本轮不跑 |
| RDMA write/read bw ≥47GB/s、latency ≤2/3.5us | 部分覆盖 | 单机 localhost/perftest 不等价跨节点线速验收 |
| PFC/ECN errors=0、ibping 双向 OK | 部分覆盖 | 主机能读到的计数器会查;交换机侧/跨节点 ibping 未覆盖 |
| 1.5B synthetic Transformer BF168 卡≥45k tokens/s | 已覆盖 DDP 路径 | 8 进程 DDP smoke 已通过;完整 50 step 长跑待执行 |
| 任一子项 FAIL 则总体验收 FAIL | 已覆盖 | `all` 现在会按 strict verdict 退出非 0 |
## 如果现在直接跑 `all`
推荐命令:
```bash
cd /root/test_gpu_scripts
/root/gpu-test-venv/bin/python gpu_tester.py --config configs/default.yaml --test all --report --format json --output reports/h100_all_$(hostname)_$(date +%Y%m%d_%H%M%S).json
```
如果要直接生成中文 Markdown 报告,用这个:
```bash
cd /root/test_gpu_scripts
/root/gpu-test-venv/bin/python gpu_tester.py --config configs/default.yaml --test all --report --format md --output reports/h100_all_$(hostname)_$(date +%Y%m%d_%H%M%S).md
```
预计行为:
- 会跑完整单节点项目,压力默认 1800 秒,默认使用 PyTorch BF16 GEMM 压力并采 1 秒 telemetry/XID。
- stress 默认矩阵为 `24576`,用于把 H100 压到 ≥630W/卡PDF 只要求 `matrix_size >=8192`,这里是为了满足功耗门槛。
- NCCL 会跑 6 个 op × 3 个 message size × 3 次 repeat。
- DCGM 会跑 `dcgmi diag -r 3 -n gpu:8 -j`DCGM 工具链已安装并启动,`diag -r 1` 与两台独立 `r3` 长跑均已 PASS。
- NCCL 1MB 档按 405GB/s 阈值也会失败256MB AllReduce 已验证走 `nccl-tests`,两台约 421GB/s。
- stress 按 PDF 严格口径预计会 FAIL当前短测证据显示温差超过 5C且 throttle active 出现 `0x4`
- 跨节点 RDMA/NCCL 不在这次单节点 all 里。
## 当前最小补齐清单
1. 如果要严格 RDMA 生产验收,下一轮用两台机器做 server/client 双端测试。
2. 执行完整 1.5B DDP 50 step 训练验收并归档 tokens/s、jitter、显存和 loss。
3. 执行完整 1800 秒 stress 并归档 1 秒 telemetry、XID、throttle、功耗和温度当前预期会因温差/throttle FAIL。
4. 如果要 24 小时验收,增加一个 24h monitor 模式,记录 SBE 增长率、XID、温度、功耗、降频曲线。

View File

@ -1,100 +0,0 @@
# 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-tests``gpu-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 就整机不通过。
## 建议执行策略
现在直接跑:
```bash
/root/gpu-test-venv/bin/python gpu_tester.py --test all --report --format md --output reports_all/test_all.md
```
得到的是“当前仓库 all 覆盖范围报告”。
要拿来做生产验收,需要先补齐上面的缺口,尤其是 `nccl-tests``gpu-burn`、NVLink、DCGM、长时间 burn-in、跨节点 RDMA。

View File

@ -1,73 +0,0 @@
# aikubeworker0016 `test all` 中文结果与 H100 验收差距
测试命令:
```bash
/root/gpu-test-venv/bin/python gpu_tester.py --test all --report --format json --output reports_all/test_all.json
```
测试机器:`aikubeworker0016 / 172.72.8.16`
原始结果:`reports_all_aikubeworker0016.json`
## 先说结论
项目输出里最后显示 `Suite complete: 8/8 tests passed`,但这个结论不能直接当成生产验收 PASS。
原因是当前 `all` 的汇总逻辑主要看模块有没有抛 `error`,没有把 `nccl.passed=false``rdma.passed=false` 当成整套失败。因此按 PDF 的生产验收口径,这台机器目前不能算完整验收通过。
## 本次 `test all` 实际结果
| 模块 | 当前结果 | 关键数据 | 按 PDF 验收看 |
| --- | --- | --- | --- |
| GPU 信息 | 已覆盖 | 8 张 H100Driver 580.159.03CUDA 13.0 | 基础信息 OK但 NVLink 链路专项不足 |
| 健康检查 | PASS | health.passed=true | 基础健康 OK但缺 retired pages、AER/Replay、fabricmanager 日志、stress 期间采样 |
| Memory | 有结果 | H2D 55.5 GB/sD2H 55.3 GB/sD2D 486.5 GB/s | 单项看起来不错,但缺 8x8 P2P 矩阵验收 |
| Compute | 有结果 | FP32 51.9TF32 357.0FP16 664.0BF16 700.1FP8 1116.2 TFLOPS | 对 PDF 绝对门槛不全通过 |
| NCCL | 实际不合格 | source=torchrun_fallback`nccl.passed=false`,无 bus BW 性能数据 | 不满足 PDF NCCL 性能验收 |
| Stress | PASS | PyTorch fallback60 秒8 GPU 状态 PASS | 不满足 PDF 的 30/60 分钟 burn-in负载只有约 64MB/卡,压力明显不够 |
| RDMA/IB | 实际不合格 | ib_write_bw/read_bw 0.13 GB/s WARNwrite_lat 4.10us PASSread_lat 16us WARN | 当前是 localhost 单节点口径,不满足 PDF RDMA 生产验收 |
| Training | 有结果 | synthetic 1.47B52471 tokens/speak 27.31GBloss 0.0041 | tokens/s 过线,但代码实际不是 8 卡分布式训练验收 |
## Compute 对 PDF 门槛的判断
PDF H100 PASS 门槛:
| DType | 本次结果 | PDF PASS 门槛 | 判断 |
| --- | ---: | ---: | --- |
| FP32 | 51.9 TFLOPS | >= 54 | WARN |
| TF32 | 357.0 TFLOPS | >= 444 | FAIL |
| FP16 | 664.0 TFLOPS | >= 734 | WARN |
| BF16 | 700.1 TFLOPS | >= 745 | WARN |
| FP8 | 1116.2 TFLOPS | >= 1400 | FAIL |
| FP64 | 未测 | >= 63 | 缺失 |
| INT8 | 未测 | >= 1536 | 缺失 |
说明PDF 里 WARN 区间是 PASS 门槛的 90%-100%。TF32 和 FP8 低于 90% 门槛,所以按 PDF 是 FAIL。
## 如果只执行当前仓库 `test all`,少了什么
1. 少 NVLink 专项验收:没有逐卡检查 18 条链路、25GB/s 速率、CRC/Replay/Recovery error = 0。
2. 少 DCGM 诊断:没有 `dcgmi diag -r 3`
3. 少长时间 burn-in当前是 60 秒,不是 30/60 分钟。
4. 少 stress 期间 1 秒级采样温度、功耗、throttle、XID、TFLOPS 抖动都没按 PDF 统计。
5. 少真正 NCCL 性能:当前退化到 torchrun fallback没有 `nccl-tests` bus BW。
6. 少 NCCL 全操作和三档消息PDF 要 AllReduce/AllGather/ReduceScatter/Broadcast/SendRecv/AllToAll且 1MB/256MB/2GB 都过线。
7. 少 NCCL 重复 3 次取最差值和标准差 <=3%。
8. 少完整 P2P 8x8 矩阵:没有非对角均值、最小值、偏差判断。
9. 少逐 GPU compute 一致性:没有真正分别测 8 卡同 dtype 极差/均值 <=3%。
10. 少 FP64 和 INT8。
11. 少 RDMA 生产口径:当前 `localhost`64KB message阈值 10usPDF 要 4MB BW、8B latency、write/read >=47GB/s、write_lat <=2us、read_lat <=3.5us。
12. 少 PFC/ECN 错误计数和 ibping 双向。
13. 少真正 8 卡分布式 Training Simulation 验收。
14. 少严格最终 verdict当前代码会把 `passed=false` 的模块也计入“通过”,这是验收逻辑漏洞。
## 建议
`test all` 可以继续作为快速初筛跑,但如果目标是对齐 `H100_production_acceptance.pdf`,需要把它升级成“生产验收模式”。优先级如下:
1. 先修汇总 verdict任何子模块 `passed=false` 必须导致整机 FAIL。
2. 先装好 `nccl-tests``gpu-burn`,否则 NCCL/Stress 都不是生产口径。
3. 增加 NVLink、DCGM、长时间 telemetry、P2P 矩阵。
4. 改 RDMA 为生产参数,且支持跨节点。
5. 改 compute/training 为逐 GPU/8 卡分布式验收。