经常有人上来就问:现在做训练是不是必须上 H100。我的回答通常是反问一句——你打算训多大的模型,几张卡,预算多少。选卡跟买手机不是一个逻辑,不是越新越好。一张 H100 的租金能换两三张 A100,如果 8 张 A100 就能把你的模型装下并且跑得动,把预算砸在更新更贵的卡上,多出来的钱往往买不到等比例的提速。
真正决定选型的就三件事:显存装不装得下、卡间互联够不够快、你的钱能烧多久。前两个决定能不能跑,第三个决定能跑多久。
三张卡的硬指标,以及每个指标对应什么
| 型号 | 显存与带宽 | 卡间互联(单卡双向) | BF16 稠密算力(标称) | 典型用途 |
|---|---|---|---|---|
| A100 80GB SXM | 80GB HBM2e,约 2TB/s | NVLink 3.0,600GB/s | 约 312 TFLOPS | 30B 以下微调、中等规模继续预训练,生态最成熟 |
| H100 80GB SXM | 80GB HBM3,约 3.35TB/s | NVLink 4.0,900GB/s | 约 989 TFLOPS | 大模型预训练、长上下文、MoE,供给偏紧 |
| H800 80GB SXM | 80GB HBM3,约 3.35TB/s | NVLink 4.0,400GB/s | 约 989 TFLOPS | 算力贴近 H100,卡间互联减半 |
表里的算力是标称稠密值,实际跑起来打七八折很正常,跟框架版本、并行策略、序列长度都有关系,参数以厂商规格为准。真正值得盯的是另外两列:显存和卡间互联。
显存决定单卡能不能放下「权重 + 梯度 + 优化器状态 + 激活」。用 Adam 做全参训练,每个参数大概要吃掉 16 字节上下,一个 7B 模型光这一项就 100GB 出头,单张 80GB 卡根本装不下,必须切分或者上 ZeRO。如果只是 LoRA 微调,7B 在 24GB 卡上都能凑合,80GB 卡上跑 70B 的 QLoRA 也不是不行,就是慢。所以先算显存,再谈卡型。
H800 的互联砍半,实际影响在哪
H800 的算力和 H100 SXM 基本齐平,HBM3 也是 80GB、3.35TB/s。差的就是 NVLink:从 900GB/s 双向降到 400GB/s。很多人看到这个数字觉得「也没差多少」,上手跑多卡才发现不是那么回事。
原因在于不同并行策略对通信的依赖程度差得很远。
- 张量并行(TP):每层前向反向都要做 all-reduce,通信次数跟层数同量级,通信量跟 batch、序列长度、隐层宽度成正比,而且延迟敏感。TP 度越高,越吃 NVLink 带宽。
- 专家并行(EP)/ MoE:all-to-all 通信,一个 token 要发给多个专家,对带宽和延迟都更敏感,H800 在这类模型上的劣势会被放大。
- 数据并行(DP):梯度 all-reduce 可以跟反向计算 overlap,而且通信量与计算量的比值随 batch 增大而下降,影响相对温和。
- 流水线并行(PP):只在阶段边界传激活,通信量小,代价是流水气泡,属于另一类问题。
结论:如果训练以 DP 和 PP 为主、TP 度开得小,H800 和 H100 的差距可能就 5%~10%;如果靠 TP=8 硬扛 70B 稠密模型,或者跑 MoE 做大规模专家并行,那按带宽比例推算,TP 通信时间大致接近翻倍,端到端慢 20%~35% 都有可能。这个区间是量级参考,不是承诺值,跑之前建议用真实配置压一次。
还有个更隐蔽的坑:H800 分 SXM 和 PCIe 两个版本。据公开规格,PCIe 版 H800 没有 NVLink,8 卡只能走 PCIe 5.0 x16,卡间双向带宽 128GB/s 左右,跟 SXM 版的 400GB/s 差了三倍多。拿 PCIe 版跑 TP 基本是自找麻烦,它更适合 DP 场景或者推理。租机器之前不确认这一条,很容易踩。另外 A800 和 H800、A100 和 H100 不能混在同一个 NVLink 域里,代次和带宽都对不上,要组多卡集群就同型号同版本起步,别想着混搭省钱。
多机之后,瓶颈就不在卡上了
单机 8 卡以内 NVLink 是主角。一旦跨机,通信走的是 InfiniBand 或 RoCE,这时候卡间互联再快也救不了——200Gbps 的 IB 换算下来是 25GB/s 量级,跟 NVLink 的 400GB/s 差了十几倍。集群规模上去以后,网络才是真正的瓶颈,节点内用什么卡反而退居其次。要搭多机训练,先把 RDMA 网络、拓扑(胖树还是 rail-optimized)、NCCL 参数调明白,否则 8 台 H100 跑出来的效率可能不如 2 台调好的 H800。
按预算分三档,各自怎么选
一档:单卡到四卡,月预算几千到两万
A100 80GB 或者 A800,这个档位别碰 H100/H800,卡的钱不如留着多试几轮。能干的活:7B~14B 的 LoRA/QLoRA 微调、Embedding 模型训练、小规模继续预训练配 ZeRO-2/3。单张 80GB 卡做 70B 的 QLoRA 微调是可行的,速度不快,但验证想法够用。按小时计的 GPU 服务器租用 更适合这个阶段,试错成本低。
二档:8 卡整机,月预算三五万到十几万
H800 的主场。30B 稠密模型全参微调、70B 的 LoRA 或者分段训练、中等规模继续预训练都能覆盖。配置上给个参考:70B 全参在 8 卡 H800 上,TP=4 + PP=2 + ZeRO-1 往往比 TP=8 更划算,因为把大量通信压到了 PP 边界;序列长度上到 8K 以上时开 sequence parallel,能明显减轻 TP 的通信压力。这些组合没有万能解,具体可以参考我们整理的 大模型训练 GPU 方案 思路,再结合自己的模型压测。
三档:多机集群,月预算几十万往上
H100 或者更大规模的 H800 集群。这个阶段的选型重点从卡转到网络和调度:IB 400G 起步,配 rail-optimized 拓扑,NCCL_IB_HCA、NCCL_NET_GDR_LEVEL 这类参数得有人负责。国内拿 H100 不太容易,不少团队会走香港或新加坡的节点,延迟、带宽和合规要一起权衡,香港 GPU 算力租赁 的机位通常比境内更容易排到。
价格上给个大致区间:A100 80GB 单卡每小时多在 8~20 元,H800 大致 20~40 元,境外 H100 常见 2~4 美元/卡/小时。都随供需波动,以实际报价为准,按月或按年签约一般能压下来一截,横向比价可以看 GPU 租赁价格对比 那份整理。
一套能直接照着走的判断流程
- 算显存:参数量乘以精度字节数,训练还要加上优化器状态和激活,单卡装不下就确认需要切几份。
- 定并行:能用 DP/PP 解决的别硬上 TP;必须 TP 的,把 TP 度压到刚好满足显存的程度,能小不大。
- 压测:拿目标模型和真实数据跑 100~200 步,记录 step time 和通信占比(Nsight Systems 里看 NCCL kernel 的耗时占比就够),单卡到 8 卡的扩展效率低于 0.6,就该回头调并行策略或者换互联更好的卡型。
我们自己的经验是,七成以上「卡不够快」的抱怨,查下来其实是并行配置或者数据管线的问题,不是卡的问题。
不想自己踩一遍的话,把模型规模、微调方式和目标吞吐发到 bd@319keji.com,我们按你的实际情况给配置建议;也可以先在 联系合作 页面留个信息,顺带说清是短期试跑还是长期占用,方案差别挺大。