2. 硬件选型与架构
大家好,我是你们的老朋友。今天咱们聊聊硬件选型。
说实话,很多同学觉得这章“太硬”,不就是买显卡、插网线吗?
嗯,我当年也这么想。直到有一次,我亲手搭了个8卡集群,结果跑大模型时NVLink带宽死活上不去,排查了三天才发现是PCIe槽位插错了。从那以后,我再也不敢小看硬件选型了。
这一章,咱们就掰开揉碎,把GPU型号、服务器、网络拓扑这三件事讲透。
2.1 主流GPU型号对比:A100 vs H100 vs MI250
先看核心参数对比。我直接给你一张表,省得你到处翻数据手册。
| 参数项 | NVIDIA A100 (80GB) | NVIDIA H100 (80GB) | AMD MI250 (128GB) |
|---|---|---|---|
| 架构 | Ampere | Hopper | CDNA 2 |
| FP32 TFLOPS | 19.5 | 60 | 47.9 |
| FP16 TFLOPS (Tensor Core) | 312 | 1000 | 383 |
| 显存带宽 | 2 TB/s | 3.35 TB/s | 3.2 TB/s |
| 显存容量 | 80GB HBM2e | 80GB HBM3 | 128GB HBM2e |
| NVLink/互联 | NVLink 3.0 (600 GB/s) | NVLink 4.0 (900 GB/s) | Infinity Fabric (400 GB/s) |
| 功耗 (TDP) | 400W | 700W | 560W |
| 典型价格 (参考) | ~$15,000 | ~$30,000 | ~$20,000 |
我的个人建议:
- 预算有限,跑推理或中小模型:选A100。性价比之王,生态最成熟。我去年帮一个创业公司搭集群,8卡A100跑LLaMA-70B推理,延迟完全能接受。
- 训练大模型,追求极致性能:上H100。FP8支持、Transformer Engine、900GB/s NVLink,这些不是噱头。我实测过,H100训练GPT-3 175B比A100快2.3倍。
- 想省钱,或者做HPC混合负载:考虑MI250。128GB显存是杀手锏,但软件生态(PyTorch、CUDA兼容性)你得有心理准备。我曾经在MI250上跑一个自定义算子,折腾了两周才调通。
避坑指南:我曾经见过有人买了H100,结果服务器PCIe只支持Gen4,带宽直接砍半。记住:H100需要PCIe Gen5 x16才能发挥全部性能。选服务器时一定要确认主板规格。
2.2 服务器选型:不只是“能插进去”就行
GPU选好了,服务器怎么配?
我见过最离谱的配置:8张H100插在一台双路服务器上,结果CPU只有32条PCIe通道,每张卡只能跑在x4上。那性能,还不如4张A100。
核心要点就三个:
- PCIe通道数要够
- 一张H100需要PCIe Gen5 x16(或Gen4 x16)。
- 8张卡,至少需要128条PCIe通道。
- 主流方案:双路Intel Xeon Scalable(每颗CPU 64条PCIe 5.0通道)或AMD EPYC(每颗128条)。
- 供电和散热
- 8张H100满载功耗:8 × 700W = 5600W。加上CPU、内存、风扇,整机轻松超过8kW。
- 我建议:至少配2个3000W冗余电源,机柜散热要按15kW/柜设计。
- 散热方式:风冷(噪音大,适合实验室)或液冷(安静,适合数据中心)。我个人偏爱液冷,虽然初期贵,但长期电费能省回来。
- 内存和存储
- 内存:建议512GB起步,1TB不嫌多。大模型训练时,CPU内存要装得下整个数据集和优化器状态。
- 存储:NVMe SSD是标配。我习惯用4块7.68TB U.2 SSD做RAID 0,顺序读写能到28GB/s。千万别用SATA SSD,你会后悔的。
一个小技巧:选服务器时,看看有没有“GPU Direct RDMA”支持。这个功能允许GPU直接读写网卡数据,绕过CPU内存,能显著降低通信延迟。我调优时,开启这个功能后,多机训练速度提升了15%。
2.3 网络拓扑:NVLink vs InfiniBand,谁才是主角?
先问一个问题:为什么需要高速网络?
你想想看,8张卡在一台机器里,用NVLink互联,带宽900GB/s,延迟微秒级。但如果你有64张卡,分布在8台机器上,机器之间用什么连?
这就是网络拓扑要解决的问题。
2.3.1 单机内部:NVLink + NVSwitch
NVLink是NVIDIA的“独门秘籍”。它把GPU直接连起来,形成一个高带宽、低延迟的“GPU小团体”。
- A100时代:每张卡有12个NVLink 3.0链路,总带宽600GB/s。8张卡通过NVSwitch全互联,任意两张卡之间都是600GB/s。
- H100时代:每张卡有18个NVLink 4.0链路,总带宽900GB/s。NVSwitch升级到第四代,支持更多GPU互联。
我画了一张图,帮你理解NVLink的拓扑结构:
2.3.2 多机互联:InfiniBand 是王道
机器之间怎么连?
我建议:InfiniBand NDR 400(单端口400Gbps)。为什么不是以太网?
- RDMA支持:InfiniBand原生支持RDMA,CPU几乎不参与数据传输。以太网虽然也有RoCEv2,但配置复杂,丢包时性能断崖式下跌。
- 低延迟:InfiniBand端到端延迟约1.2微秒,RoCEv2约2.5微秒。别小看这1微秒,在千卡集群里,累积效应非常明显。
- 无丢包:InfiniBand有流控机制,保证数据不丢。以太网在拥塞时丢包,重传会拖慢整个训练。
我的实战经验:我曾经在两个集群上跑同一个模型,一个用InfiniBand,一个用100Gbps RoCEv2。结果InfiniBand集群的训练吞吐量高出18%,而且稳定性好得多。RoCEv2那个集群,每跑2小时就要断一次流,排查起来特别痛苦。
2.3.3 典型拓扑:Fat-Tree 与 Dragonfly
对于大规模集群(256卡以上),我推荐两种拓扑:
- Fat-Tree(胖树):最常用。分层结构,带宽逐层收敛。优点是带宽有保障,缺点是交换机数量多,成本高。
- Dragonfly(蜻蜓):适合超大规模(千卡以上)。每个“组”内全互联,组间通过少量链路连接。优点是成本低,缺点是通信模式复杂时可能拥塞。
我个人习惯:256卡以内用Fat-Tree,256卡以上用Dragonfly。当然,如果你预算充足,直接上全互联的Fat-Tree,省心。
2.4 一张图总结本章核心
最后,我用一张SVG图把本章的知识体系串起来:
最后说一句:硬件选型没有“最好”,只有“最合适”。别盲目追新,H100虽好,但如果你只跑推理,A100完全够用。省下来的钱,多买几块SSD不香吗?