基准测试体系概览 —— TPC、SPEC、TOP500 与 MLPerf

前八章把硬件讲完了——但实际选型时,”H100 算力 1979 TFLOPS”这种 datasheet 数字不能直接拿来对比 Llama 3 训练性能。基准测试(benchmark)是把硬件性能落到同一把尺上的工具。第九章讲基准。

为什么需要基准测试

服务器场景里,”快”是个多维概念:

1
2
3
4
5
CPU 整数运算 vs 浮点运算 vs 内存带宽 vs 数据库 TPM
存储 顺序读 vs 随机写 vs 队列深度 vs 延迟
网络 带宽 vs 延迟 vs P99 抖动 vs 集合通信
GPU 单精度 vs Tensor FP16 vs FP8 vs FP4
集群 单卡持续 vs 万卡 AllReduce vs 真实训练 token/s

不同 workload 看不同维度。”用谁的数据当尺“决定了选型结果——这就是为什么 30 多年来工业界形成了一系列第三方公认的基准组织

两大主流基准体系

graph TB
  ROOT[服务器基准测试两大体系]
  ROOT --> TPC[TPC
事务处理性能委员会
1988 成立] ROOT --> SPEC[SPEC
标准性能评估机构
1988 成立] TPC --> TPCC[TPC-C
OLTP 经典] TPC --> TPCH[TPC-H
决策支持/分析] TPC --> TPCDS[TPC-DS
大数据分析] TPC --> TPCx[TPCx-AI / TPCx-HS
AI 与 Hadoop] SPEC --> SPECCPU[SPEC CPU
处理器整数/浮点] SPEC --> SPECjbb[SPEC jbb
Java 中间件] SPEC --> SPECpower[SPECpower
能效] SPEC --> SPECstorage[SPEC SFS
NAS 文件存储] SPEC --> SPECMLPerf[SPECaccel /
SPEChpc]

TPC(Transaction Processing Performance Council):1988 年成立,主战场是数据库 / OLTP / 数据分析。代表测试:TPC-C(OLTP)、TPC-H(决策支持)、TPC-DS(大数据)。tpmC 这个国内常听到的”每分钟事务数”就是 TPC-C 的指标。

SPEC(Standard Performance Evaluation Corporation):同样 1988 年成立,覆盖更广——CPU、Java 中间件、Web 服务、能效、存储、HPC、ML。SPEC CPU2017 是当前 CPU 性能 datasheet 的事实标尺。

两家都是非营利第三方,结果必须在官网发布才算数——这是第三方背书的核心价值。

按 workload 分类的基准

整理一张实战中真正会用到的”benchmark 全景”:

领域 经典基准 现代主流 测什么
CPU 整数 / 浮点 SPEC CPU2006 SPEC CPU2017 单核 / 多核计算
CPU 能效 SPECpower_ssj2008 性能 / 瓦
数据库 OLTP TPC-C(tpmC) HammerDB / sysbench 每分钟事务数
数据库分析 TPC-H TPC-DS 复杂查询响应时间
Java 中间件 SPECjbb2005 SPECjbb2015 Java 服务端吞吐
Web 服务器 SPECweb2005 (已退役) HTTP QPS
HPC 峰值 HPL / Linpack HPL(仍是 TOP500 标尺) FP64 峰值
HPC 真实 HPCG 内存 / 网络综合
存储块设备 iozone fio IOPS / 带宽 / 延迟
NAS 文件 SPECsfs SPECstorage SFS 2020 文件操作并发
网络带宽 iperf iperf3 / qperf TCP / UDP 吞吐
RDMA 网络 ib_write_bw / perftest InfiniBand / RoCE
集合通信 NCCL-tests AllReduce / AllGather busbw
AI 训练 / 推理 MLPerf 端到端 训练 / 推理
AI GEMM cuBLASMatmulBench / nvbandwidth 算力 / 带宽底层

注意:TPC-W(Web)、SPEC Web2005 等测试在云时代基本退役——因为现实业务的 Web 服务太复杂,单一 benchmark 失去意义。

基准结果”怎么读”

基准报告里常见的几个指标维度:

1
2
3
4
5
6
绝对值:     TFLOPS / TPM / IOPS / token-per-sec
单位价格: $ / TPM、$ / TFLOPS
单位功耗: TPM / W、TFLOPS / W
百分位延迟: P50 / P90 / P99 / P999
扩展性: N 节点时性能 / 单节点性能(理想 = N)
持续 vs 峰值:burst 能跑多高、稳定能跑多久

只看绝对值容易被销售带偏——真正成熟的采购方看 $/TPM、性能/瓦、扩展性曲线

一份典型 benchmark 报告应有什么

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1. 系统配置(SUT, System Under Test)
- CPU 型号 / 核数 / 频率
- 内存容量 / 通道 / DIMM 频率
- 存储介质 / RAID / 文件系统
- 网络型号 / 交换机
- GPU 型号 / NVLink 拓扑(AI 场景)
- OS / kernel / 驱动 / 微码版本
2. 软件栈
- 编译器 / 优化等级 / BLAS 库版本
- DBMS 版本 / 应用版本
3. 测试方法
- 数据集大小 / scale factor
- 预热 / 持续时间 / 重复次数
4. 结果
- 主指标 + 次要指标
- 性能曲线(不只单点)
5. 价格披露(TPC 强制)
6. 能效披露(SPECpower / 部分 TPC)

TPC 报告强制披露完整 SUT + 价格——这是为什么 TPC-C 报告动辄上百页 PDF。SPEC 也要求公开 config,但价格披露不是强制。

测试结果”为什么会差很多”

同一颗 CPU、同一种 benchmark,不同厂商提交结果可能差 1.5-3×:

1
2
3
4
5
6
7
编译器选项:     -O3 vs -O2,AVX-512 开关,PGO/LTO
内存配置: 通道数、DIMM rank、是否 1DPC
NUMA 绑定: 自动 vs 手工 numactl
BIOS 设置: Turbo / SMT / power profile / prefetch
OS tuning: transparent hugepage、cpu governor、swappiness
存储调优: I/O scheduler、queue depth、direct IO
网络调优: MTU、RSS、IRQ affinity、DCQCN

这些”调优”在销售文档里通常一笔带过,但实际上决定了结果的可比性。所以读 benchmark 报告时,配置详情比绝对数字更重要

TOP500:HPC 的”奥运会”

每年 6 月 / 11 月发布两次的 TOP500,是世界上最大公开 HPC 系统排行榜:

  • 排名标尺:HPL Linpack(FP64 峰值 LU 分解)
  • 1993 年开始,已经 30 多年
  • 中国曾长期占榜单一半以上份额,2020 年后受出口管制影响数量下降
1
2
3
4
5
6
2024-11 榜单 TOP 5(参考):
El Capitan (LLNL, AMD MI300A): 1742 PFLOPS
Frontier (ORNL, AMD MI250X): 1353 PFLOPS
Aurora (ANL, Intel Ponte Vecchio): 1012 PFLOPS
Eagle (Microsoft Azure, NVIDIA H100):561 PFLOPS
富岳 (RIKEN, A64FX): 442 PFLOPS

待补充:TOP500 最新 2026 年榜单数据。

Linpack 早就被 HPCG 补充——后者更看重真实工作负载(内存、网络、不规则访存)。Jack Dongarra(TOP500 创始人之一)2014 年就推动 HPCG 排行榜:HPCG 性能通常是 Linpack 性能的 1-3%

MLPerf:AI 时代的新基准

MLCommons 维护,2018 年起步,AI 算力的”事实标准”:

graph LR
  ML[MLCommons MLPerf]
  ML --> T[Training
训练] ML --> I[Inference
推理] ML --> H[HPC
科学计算] ML --> S[Storage
存储吞吐] ML --> P[Power
能效] ML --> C[Client / Mobile / Tiny
端侧]

每轮提交分 Closed(严格规则、可比性强)和 Open(自由优化、展示创新)。NVIDIA / Google / Intel / AMD / Huawei 等都按轮次提交。

07-Benchmark 目录里 NVIDIA SA 视角的视图:

NVIDIA 通常以 DGX/HGX/GB200 系统提交 MLPerf;详细工程报告在 NVIDIA blog 与 GitHub repo nvidia/MLPerf*,复现工件包含 NeMo / Megatron / TensorRT-LLM 等。

后面的 05-AI 基准测试 专门展开。

专用 / 厂家 benchmark

除两大公开体系外,还有大量”专用基准”:

1
2
3
4
5
6
Oracle / SAP:   厂家自己的 ERP/数据库 benchmark
SAP SD: 销售-分销模块用户数(SAP 标尺)
TPC-H 变体: 实际生产中常被改成 sysbench-tpch
LLM 专用: lm-evaluation-harness 等评测精度
推理服务: vLLM benchmark / Triton perf_analyzer
NVIDIA NCCL-tests:集合通信 SoTA 工具

这些不一定上 TPC / SPEC 官网,但在自家生态里是实际选型依据。

实战中”benchmark 怎么用”

数据中心采购或集群验收时,benchmark 一般分三阶段:

graph TB
  L1[1. 节点级
HPL / SPEC CPU / fio / iperf
验证单机硬件] L2[2. 机柜 / Pod 级
NCCL-tests / SHARP / RDMA
验证互联与路由] L3[3. 应用级
NeMo / Megatron / vLLM / 真实业务
验证端到端] L1 --> L2 --> L3

NVIDIA SA 内部就是用这三层做集群验收(详见 05-AI 基准测试 )。每一层都不能跳——单机过了不代表集群过;集群通了不代表大模型训练 MFU 就达标。

一些避坑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1. 看绝对值不看 config:
"我看 SPEC CPU 2017 排名厂商 A 比 B 高 5%"
实际 A 用 96 GB DDR5-5600 + AVX-512、B 用 256 GB DDR5-4800 关 SMT
→ 没法比

2. 看单点不看曲线:
"厂家说 IOPS 1000K"
实际 P99 延迟 50ms,业务无法接受
→ 看 P99/P999 比看峰值有意义

3. 跑短时间不跑长时间:
GPU 头 5 min 全 turbo,30 min 后 thermal throttle
→ 至少跑 30-60 min 看持续值

4. 不公开复现脚本:
厂家 demo 一套,客户复现完全不是这数
→ 索要完整 reproduce 脚本和参数

5. 偷换 benchmark 版本:
比 SPEC CPU2006(已退役)和 SPEC CPU2017 数字
→ 完全不可比

第九章会展开什么

内容
02 CPU & 数据库 benchmark:SPEC CPU2017、TPC-C、SPECjbb
03 HPC benchmark:HPL、HPCG、TOP500 实战
04 存储与网络 benchmark:fio、iperf、ib_write_bw、SPECsfs
05 AI benchmark:MLPerf、cuBLAS、nvbandwidth、NCCL-tests、NeMo burn-in
06 服务器认证:CCC、CE、FCC、ISO9001、NVIDIA-Certified、能效之星
07 选型与第九章小结

小结

  • 基准测试是把”datasheet 数字”翻译成”业务性能”的桥
  • 两大体系 TPC(事务)+ SPEC(计算/能效);HPC 看 TOP500 / HPL;AI 看 MLPerf
  • 报告必看 SUT 配置 + 软件栈 + 调优参数,不能只看绝对值
  • 集群验收三阶段:节点级 → 机柜级 → 应用级
  • 避坑:看曲线、看 P99、看持续值、要可复现

下一篇展开 CPU & 数据库基准——SPEC CPU 怎么读、tpmC 怎么算、HammerDB 怎么用。