HPC 基准是 GPU 集群验收里第一个跑的——既是验机也是衡量峰值。本文专题讲 HPL、HPCG、HPL-MxP,以及 TOP500 / Green500 / HPCG 三张榜单。
TOP500 用什么标尺
1 2 3
| TOP500 自 1993 年起,每年 6 月(ISC)/ 11 月(SC)发布 排名标尺:HPL Linpack(FP64 LU 分解 GFLOPS) HPL 2.0 规范 2008 年定稿,沿用至今
|
TOP500 创始人之一的田纳西大学教授 Jack Dongarra 认为 Linpack 性能已经过时,大家也意识到单看 CPU 性能的弊端,开始使用 HPCG(The High Performance Conjugate Gradients)性能来全面衡量超算性能。Linpack 更考验超算的处理器理论性能,而 HPCG 更看重实际性能,对内存系统、网络延迟要求也更高。
HPL —— Linpack 怎么跑
HPL 解一个 N×N 稠密线性方程组(双精度)。计算量 ≈ 2/3 N³ + 2 N²。
GPU 时代用 NVIDIA 优化版的 HPL(容器名 nvcr.io/nvidia/hpc-benchmarks),底层调 cuBLAS / NCCL。
关键参数 HPL.dat
按 NVIDIA SA benchmark 实战经验:
1. N(矩阵规模 / Problem Size)
1 2 3 4 5 6 7
| 原则:填满所有 GPU 显存(85-92%) 公式:显存占用 (Bytes) = N² × 8(FP64)
单机 8× A100 80GB(总 640 GB): N ≈ √(640 × 1024^3 × 0.9 / 8) ≈ 268,328 注意:N 必须是 NB 的整数倍。
|
2. NB(数据块大小 / Block Size)
1 2 3
| 现代 NVIDIA GPU 推荐 NB 远大于传统 CPU 的设定 A100 / H100 / H200: 2048、3840、4096 B200 / B300: 尝试 2048-4096,跑几个值取最高
|
3. P × Q(进程网格)
1 2 3 4 5 6 7
| P × Q = 总 MPI 进程数 = 总 GPU 数 P ≤ Q 且尽量接近正方形(或 P 是 Q 的一半) 避免 1×8 这种极度狭长
单机 8 卡: P=2, Q=4 4×8=32 卡: P=4, Q=8 NVL72: P=8, Q=9
|
其他
1 2 3
| PMAP: 1 (Row-major) 或 0 (Column-major),NVIDIA 优化版脚本通常自动管理 BCAST: 广播算法,尝试 1 或 2 DEPTH: Look-ahead 深度,GPU 上通常 0 或 1
|
跑分目标
1 2 3 4
| HPL 效率 = 实测 GFLOPS / 理论峰值 GFLOPS 单机 8× A100 / H100:典型 70-80% NVL72: 典型 65-75%(受 NVLink + IB 影响) 万卡集群: 典型 55-70%
|
低于 60% 一般有问题——下面是典型排查路径。
调优排查(来自 NVIDIA SA 实战 guide)
问题 1:性能远低于理论峰值(效率 < 60%)
1 2 3 4 5 6 7 8 9 10 11 12 13
| 原因:显存未充分利用 → 增大 N,逼近 OOM 临界点(90% 显存利用)
原因:降频 → sudo nvidia-smi -pm 1 # 持久模式 → sudo nvidia-smi -lgc <Max_Clock> # 锁最高加速频率
原因:NUMA 拓扑绑定不当 → MPI 启动加 NUMA binding 参数 → 用 NVIDIA bind.sh 等脚本,确保 GPU 分到最近的 CPU 物理核
原因:P/Q 不合理 → 交换 P 和 Q 的值,调整比例
|
问题 2:多节点扩展性极差
1 2 3 4 5 6 7 8 9 10
| 原因:InfiniBand/RoCE 未全速运行 → ib_write_bw 测试节点间 RDMA 是否达标
原因:GPUDirect RDMA 未生效 → lsmod | grep nv_peer_mem → 没加载会经 CPU 内存回环,延迟暴涨
原因:NCCL 调优 → NCCL_IB_HCA 指定 HCA → NCCL_DEBUG=INFO 查看实际链路
|
HPCG —— “真实性能”基准
1 2 3 4 5
| [HPCG](https://www.hpcg-benchmark.org/) 每半年发布榜单 求解 SpMV(稀疏矩阵向量乘)+ 多重网格预条件 对内存带宽、延迟、网络通信极度敏感 HPCG 性能通常 = HPL 性能的 1-3%
|
为什么 HPCG”低得多”?
1 2 3 4 5 6 7 8
| HPL:稠密 BLAS-3 操作,几乎都是 GEMM → 计算密度高,HBM/cache 复用极好 → GPU Tensor Core 不能用(只支持 FP16+)但 FP64 cuBLAS 已经很优
HPCG:稀疏访存为主 → memory-bound,HBM 带宽决定上限 → 内存延迟、网络延迟一一暴露 → 真实科学计算更像 HPCG
|
跑 HPCG 时 GPU 利用率(nvidia-smi 看)只有 30-50%——这不是 bug,是 workload 性质决定。
历史事件
1 2 3 4 5
| 天河 2 号之前是 HPCG 性能第一名 2016 上半年: 中国天河 2 号第一,日本 K 第二 2016 下半年起: 日本 K 超算夺第一(K 超算在 TOP500 排名第七) 富岳(Fugaku): 2020 年起 HPCG 长期第一 富岳 HPCG ~16 PFLOPS(vs Linpack 442 PFLOPS)
|
待补充:2026 年最新 HPCG 榜单数据。
HPL-MxP —— 混合精度 HPL
1 2 3 4
| [HPL-MxP](https://hpl-mxp.org/) 原名 HPL-AI(2019 年) 用 FP16/FP32 做主体计算,FP64 修正 利用 Tensor Core 大幅加速 针对 LU 分解的迭代细化方法
|
为什么需要 HPL-MxP?
1 2 3 4 5 6 7 8 9
| HPL 只能用 FP64 cuBLAS → V100 起 FP64 算力远低于 Tensor Core 算力 → H100 FP64 67 TFLOPS vs Tensor FP16 1979 TFLOPS(相差 30×) → "大半算力闲着"
HPL-MxP: 主迭代用 FP16/BF16 Tensor Core 算 最后用 FP64 修正残差到精度 → 能跑出 5-10× 于纯 FP64 HPL 的成绩
|
NVIDIA SA 集群验收里 HPL 和 HPL-MxP 都会跑——前者是历史延续可比,后者是真实 AI/HPC 混合负载的体现。
1 2 3 4
| 2024-11 HPL-MxP 榜单 TOP(参考): Frontier (MI250X): 11.4 EFLOPS(混合精度) Aurora: 10.6 EFLOPS El Capitan: 16.7 EFLOPS(最新提交)
|
待补充:2026 年 HPL-MxP 最新数据。
NVL72 / NVL576 上跑 HPL
NVIDIA 在 GB-NVL72 / HGX B200/B300 都有官方 step-by-step benchmark guide(NDA / Partner,公开版可在 docs.nvidia.com 检索 DGX/HGX benchmark guide)。
1 2 3 4 5 6
| 典型流程: 1. 节点 prep:DCGM diag、nvbandwidth、cublasMatmulBench 2. 单机 HPL:8 卡 / 节点 3. 多机扩展:rail-optimized IB + NCCL-tests 通过 4. NVL72 整柜 HPL(72 GPU 单 NVLink domain) 5. HPL-MxP 跑 Tensor Core
|
NVL72 整柜 HPL 要求所有 72 GPU 在同一个 NVLink domain 内一次跑过——这是 GB200 NVL72 区别于”8 节点 HGX H100 + IB”的本质:72 GPU 之间 collective 走 NVLink,HPL 多节点扩展性损失更小。
Green500 —— 能效榜
Green500 与 TOP500 同源:
1 2 3
| 排名标尺:HPL GFLOPS / Watt 2024-11 第一:JEDI(NVIDIA H100 + Grace)≈ 72 GFLOPS/W 2024-11 富岳:约 14 GFLOPS/W
|
GPU 集群通常 60-72 GFLOPS/W,纯 CPU 集群 10-20 GFLOPS/W——HPC 已经实质 GPU 化。
HPC 三张榜怎么选
1 2 3 4 5 6 7 8
| HPL: "我家硬件 FP64 峰值多少"——历史延续,TOP500 主榜 HPCG: "我家硬件真实跑多少"——内存/网络瓶颈 HPL-MxP: "我家硬件 AI 友好场景多少"——Tensor Core 时代 Green500: "我家硬件能效如何"——TCO 视角
HPC 中心日常: 三张榜都看 GPU 集群验收: HPL + HPL-MxP 必跑,HPCG 选跑 AI 集群验收: HPL-MxP / NCCL-tests / MLPerf
|
一些命令与文档
1 2 3 4 5 6 7 8 9 10 11
| docker run --gpus all --rm -it \ -v $PWD:/workspace \ nvcr.io/nvidia/hpc-benchmarks:24.09 bash
mpirun -np 8 --map-by node:PE=12 \ ./hpl.sh --dat HPL.dat
./hpl-mxp.sh --m=2048 --n=2048 ...
|
1 2 3 4
| 查 TOP500: https://www.top500.org/ 查 HPCG: https://www.hpcg-benchmark.org/ 查 Green500: https://www.top500.org/lists/green500/ NVIDIA HPC bench:https://docs.nvidia.com/ → DGX/HGX Benchmark Guide
|
一张速查
| 测试 |
测什么 |
适合场景 |
占总时间 |
| HPL |
FP64 峰值 LU 分解 |
集群初验、TOP500 提交 |
数小时 |
| HPL-MxP |
Tensor Core 混合精度 |
AI 集群验收 |
数小时 |
| HPCG |
真实科学计算 |
真实 workload 摸底 |
1-2 小时 |
| nvbandwidth |
H2D/D2H/D2D 带宽 |
单卡基线 |
几分钟 |
| NCCL-tests |
集合通信带宽 |
集群互联验收 |
1-2 小时 |
小结
- HPL(Linpack)测 FP64 峰值,TOP500 标尺,效率 65-80% 算合格
- HPCG 测真实场景,性能通常是 HPL 的 1-3%
- HPL-MxP 用 Tensor Core 跑混合精度,AI 时代的”新 HPL”
- 跑 HPL 关键三参数 N / NB / P×Q,效率低主排查显存、降频、NUMA、IB
- Green500 看能效,GPU 集群比 CPU 集群高 5-10×
下一篇讲存储与网络 benchmark——fio / iperf / ib_write_bw / SPECsfs 实战。