前两天一个朋友拉我去看他们组新到的8卡AI服务器,说机器跑起来了但训练速度远不如预期。我到现场一看,nvidia-smi 里8张卡全在线,但实际只有2张卡在跑,其余6张利用率是0%。再一问,他们说“反正算力到位了,框架应该自动会用”。问题就出在这里——他们把“有GPU”和“有可用算力”当成了一件事。
“算力”“GPU”“AI服务器”这三组词,在采购、开发、运维里经常被混着用,但它们其实是三个完全不同的层次:算力是可以量化的计算资源,GPU是产生算力的核心硬件,AI服务器是承载整套GPU和软件栈的系统。搞不清楚这三个层次,后续选型、部署、压测、排障都会踩坑。这篇文章我打算把这套东西完整拆开,从指标口径、硬件架构、整机组成,到软件栈、调度平台,再到真实运维中的故障排查,一次讲透。适合三类人看:准备买GPU机器但不知道怎么选的决策者、做训练/推理但只会写模型代码的算法工程师、以及负责GPU服务器日常维护的运维同学。
1. 算力不只是一块卡的性能:三个维度决定真实算力
1.1 算力度量的精度陷阱:TFLOPS、TOPS和稀疏算力
算力最基础的定义是“单位时间内能完成多少次计算”,但真正落到选型时,你看到的数字几乎都是“挑好听的写”。GPU在不同精度下的算力差异非常大:
- FP32(单精度)用于传统科学计算和部分数值运算;
- FP16/BF16(半精度)是当前大模型训练和推理的主力精度;
- INT8/INT4(整数)主要用在量化推理和部分加速场景。
NVIDIA官方标称的数据里,一张A100 80G的FP32算力约19.5 TFLOPS,FP16 Tensor Core稠密算力约156 TFLOPS,INT8 Tensor Core约624 TOPS。H100 SXM的FP16稠密算力约495 TFLOPS,INT8约近2000 TOPS。RTX 4090这类消费卡的FP16稠密算力大约在82 TFLOPS量级,但很多电商宣传页写的是“330 TOPS AI算力”,那是INT8稀疏算力。稀疏算力是Tensor Core利用权重稀疏性后的理论峰值,通常比稠密算力翻倍,实际训练几乎吃不到这个红利。
所以对比算力时,必须先问四个字:什么精度,稀疏还是稠密。否则拿A100的FP16稠密和某些消费卡的INT8稀疏比,得出的结论完全没意义。这些数字的来源一般是NVIDIA官方规格书,各厂商口径不完全统一,横向比较时建议统一换算成“FP16稠密TFLOPS”再比。
1.2 显存容量决定“这桌菜能装多少”,算力决定“做多快”
除了计算速度,算力的另外两个维度是容量和带宽。GPU的显存容量决定了你能不能在卡上装下一个模型,显存带宽决定了参数和激活值搬运的速度。这三个维度经常被人混为一谈——有人觉得“显存大的卡算力就强”,其实不然。
以Llama 3 8B为例:模型参数用BF16存储,光权重就要约16GB。如果是推理,显存里主要放权重和KV Cache,一张24GB的卡能跑,但上下文长了可能就爆显存;量化成INT4后,权重只要约5GB,一张消费卡也能跑起来。如果是训练,显存里除了权重,还要放梯度、优化器状态和中间激活值。全参数训练8B模型用Adam优化器,模型状态最少需要权重16GB + 梯度16GB + FP32优化器状态32GB,约64GB起步,单张80G的卡只是勉强能跑,实际加激活值很快就会撞墙,所以大家才普遍用DeepSpeed ZeRO分片或量化优化器。
这也是为什么“显存容量是测训练还是推理”这个问题没有标准答案——训练看的是总显存池,推理看的是权重加动态缓存。两者的计算模式完全不同。带宽则直接影响推理生成token的速度,因为生成是逐token进行的,每一步都要把参数从显存搬到计算单元,带宽不够,就算FLOPs再高也会被卡在访存上。
1.3 用一条公式估算自己到底需要多少卡
网上经常有人问“我的模型训练需要多少token算力”,这种需求其实可以用经验公式估算。训练侧,已知LLM训练计算量约为6 × N × D,N是参数量,D是训练token数。
举个例子:训练一个7B模型,数据量2T token,总计算量约为:
code复制6 × 7e9 × 2e12 = 8.4e22 FLOPs
如果使用1000张H100,按FP16稠密算力495 TFLOPS、实际MFU(模型利用率)40%估算,理论训练时间约为:
code复制8.4e22 / (1000 × 4.95e14 × 0.4) ≈ 4.2e5秒 ≈ 117小时
推理侧,每个token的理论计算量约为2 × N FLOPs。8B模型每token约16 GFLOPs,一张H100每秒约4.95e14 FLOPs,理想情况每秒约3万token,实际服务场景受显存带宽、并发和框架开销限制,能做到3000~6000 token/s就算不错。假设你的业务峰值并发是100路,每路每秒需要30个token,那单卡理论够,但还要看KV Cache显存是否吃紧。这套估算方法不能做到
