2. 硬件环境与网络拓扑
聊到多卡训练,硬件选型是绕不开的第一道坎。我见过不少团队,算法调得再好,硬件搭配不合理,性能就是上不去。说白了,这就像给赛车配轮胎——引擎再强,轮胎抓不住地也是白搭。
GPU型号怎么选?A100 vs V100 vs 4090
这三款卡我都深度用过。先给个结论:没有绝对的好坏,只有合不合适的场景。
| 特性 | A100 (80GB) | V100 (32GB) | RTX 4090 (24GB) |
|---|---|---|---|
| 架构 | Ampere | Volta | Ada Lovelace |
| 显存带宽 | 2 TB/s | 900 GB/s | 1.0 TB/s |
| NVLink支持 | ✅ 600 GB/s | ✅ 300 GB/s | ❌ 无 |
| FP32算力 | 19.5 TFLOPS | 14 TFLOPS | 82.6 TFLOPS |
| 典型功耗 | 400W | 300W | 450W |
| 价格(参考) | ~$15,000 | ~$8,000 | ~$1,600 |
我个人习惯这样选型:
- 大模型预训练(LLM 70B+):闭眼选A100。显存大、NVLink带宽高,多卡通信几乎无瓶颈。我去年做千亿参数模型时,8卡A100的通信开销只占训练时间的5%不到。
- 中等规模模型(BERT、GPT-13B):V100依然能打。虽然老了点,但NVLink加持下,4卡或8卡集群效率很高。我在项目中遇到过V100跑混合精度训练,只要batch size调好,性能不输A100太多。
- 实验验证、小团队:4090性价比炸裂。但注意——它没有NVLink。多卡通信全靠PCIe,带宽只有64 GB/s。我曾经用4张4090跑分布式训练,通信开销占了30%以上,气得我直接换了方案。
NVLink与NVSwitch:多卡通信的命脉
多卡训练,最怕什么?卡等卡。你想想看,8张卡里7张算完了,就等最后一张传梯度,这效率能高吗?
NVLink就是解决这个问题的。它是一块高速互联通道,直接连在GPU之间。A100的NVLink带宽是600 GB/s,是PCIe 4.0 x16的10倍。我习惯把NVLink比作「GPU之间的高速公路」——数据不用绕道CPU,直达目的地。
NVSwitch更猛。它像一个智能交换机,让8张A100之间任意两两通信,带宽不降。我做过测试:8卡A100通过NVSwitch互联,AllReduce操作耗时只有PCIe方案的1/5。
- 4卡以内:NVLink直连就够了
- 8卡及以上:必须上NVSwitch,否则通信会乱成一锅粥
InfiniBand vs 以太网:跨节点通信怎么选?
单机多卡搞定了,多机多卡呢?这时候网络就上场了。
InfiniBand和以太网,我打个比方:
- InfiniBand:专线高铁,速度快、延迟低、不堵车
- 以太网:普通公路,便宜、通用、但高峰期会堵
| 特性 | InfiniBand (HDR) | 以太网 (100GbE) |
|---|---|---|
| 带宽 | 200 Gbps | 100 Gbps |
| 延迟 | ~1μs | ~5μs |
| RDMA支持 | 原生支持 | 需RoCEv2 |
| 成本 | 高(交换机+线缆贵) | 低(成熟生态) |
| 典型场景 | 大模型训练集群 | 推理、小规模训练 |
我在项目中遇到过这样的选择困境:预算有限,但又要跑8机64卡训练。最后我选了100GbE + RoCEv2的方案。说实话,性能比InfiniBand差一截,但成本省了40%。如果你做的是千亿参数模型,我建议咬咬牙上InfiniBand——通信延迟每多1ms,训练时间可能多出好几天。
# 检查RDMA是否启用
ibstat # InfiniBand
rdma link show # RoCE
一张图看懂硬件选型逻辑
下面这张SVG图,是我自己总结的选型决策流程。你跟着走一遍,基本不会踩坑。
嗯,这张图基本覆盖了90%的场景。你只要搞清楚自己的模型规模、卡数、预算,按图索骥就行。
- 大模型 + 多卡:A100 + NVSwitch + InfiniBand,贵但省心
- 中等模型 + 单机:V100 + NVLink,性价比之选
- 小模型 + 实验:4090 + PCIe,便宜但注意通信瓶颈
- 网络选型:多机必上RDMA,InfiniBand性能强,以太网省钱
硬件选型这块,我踩过的坑不少。最深刻的一次是:用4090搭了4卡集群,结果通信开销大到训练速度还不如单卡。后来换了V100+NVLink,速度直接翻倍。所以啊,别只看单卡算力,多卡通信才是真正的瓶颈。