1. GPU集群基础认知
1.1 为什么需要GPU集群?——单卡不够用,那就上集群
说实话,我刚入行那会儿,觉得一张V100就能跑大部分模型了。直到有一天,我接了个百亿参数的大模型训练任务……嗯,单卡显存直接爆掉,连模型都加载不进去。
你想想看,一个1750亿参数的GPT-3模型,光参数就要占用约700GB的显存(FP16精度)。而目前最强的H100也只有80GB显存。单卡根本塞不下。怎么办?
核心原因就三个:
- 显存墙:模型太大,单卡装不下。我见过有人硬塞,结果OOM(Out of Memory)报错,白跑了两天。
- 算力墙:单卡算力有限。训练一个LLaMA-65B,单卡H100要跑几个月,谁能等?
- 效率墙:数据并行、模型并行、流水线并行……这些技术说白了,就是让多张卡协同工作,把训练时间从几个月压缩到几天。
核心结论:GPU集群不是锦上添花,而是大模型训练的刚需。没有集群,你连模型都跑不起来。
1.2 GPU集群的典型架构——节点、网络、存储
集群架构说白了就三块:计算节点、互联网络、存储系统。我习惯把它们比作「大脑、神经和记忆」。
1.2.1 计算节点
每个节点就是一台服务器,里面插了4张或8张GPU卡。常见的配置是:
- 8卡A100节点:80GB × 8 = 640GB显存,单节点算力约312 TFLOPS(FP16)
- 8卡H100节点:80GB × 8 = 640GB显存,单节点算力约2000 TFLOPS(FP16)
节点内部通过NVLink/NVSwitch互联,卡间通信带宽高达600GB/s。我在项目中遇到过一个问题:如果NVLink带宽不够,数据并行时的梯度同步会成为瓶颈,训练速度直接腰斩。
1.2.2 互联网络
节点之间怎么通信?靠网络。主流方案有两种:
- InfiniBand:200Gb/s或400Gb/s,延迟极低,适合大规模集群。我个人习惯用IB,稳定。
- RoCE(RDMA over Converged Ethernet):成本低一些,但配置复杂。我曾经被RoCE的流控问题坑过,丢包导致训练中断,排查了两天。
网络拓扑也很关键。常见的拓扑有:
- Fat-Tree:带宽均匀,适合AllReduce通信模式
- Dragonfly:跳数少,延迟低,适合超大规模集群
避坑指南:我曾经在一个256卡集群上做测试,发现网络带宽利用率只有30%。后来发现是路由策略没配好,导致流量拥塞。调整后利用率提升到85%。网络调优,真的不能忽视。
1.2.3 存储系统
训练数据、checkpoint、日志……这些都得存。存储系统一般分三层:
- 高速缓存层:NVMe SSD,存放热数据,读写延迟微秒级
- 容量层:分布式文件系统(如Lustre、GPFS),PB级容量
- 归档层:对象存储(如S3),存冷数据
我建议把checkpoint存到高速缓存层,因为训练中断后恢复需要快速读取。有一次我忘了配,checkpoint写到对象存储,恢复时等了半小时……那感觉,真不想再体验。
1.3 主流GPU型号对比——A100、H100、V100
这三款卡我都用过。V100是「老将」,A100是「中坚」,H100是「新王」。直接看表:
| 参数 | V100 (32GB) | A100 (80GB) | H100 (80GB) |
|---|---|---|---|
| 架构 | Volta | Ampere | Hopper |
| 显存带宽 | 900 GB/s | 2039 GB/s | 3350 GB/s |
| FP16算力 | 125 TFLOPS | 312 TFLOPS | 2000 TFLOPS |
| NVLink带宽 | 300 GB/s | 600 GB/s | 900 GB/s |
| 显存容量 | 32GB | 80GB | 80GB |
| 典型功耗 | 300W | 400W | 700W |
说说我的实际感受:
- V100:32GB显存,跑BERT-Large还行,但跑GPT类模型就捉襟见肘了。我最早用V100训练一个6.7B模型,需要4卡流水线并行,显存刚好够。
- A100:80GB显存,性价比之王。我建议中小团队首选A100。训练13B模型,8卡A100就能搞定,不需要复杂的并行策略。
- H100:算力是A100的6倍多,但功耗也翻倍。适合超大规模训练。不过要注意,H100的FP8算力才是它的真正杀手锏,配合Transformer Engine,训练速度能再翻倍。
注意:H100虽然强,但配套的软件栈还不够成熟。我遇到过CUDA版本不兼容、Transformer Engine报错等问题。如果你追求稳定,A100仍然是稳妥之选。
1.4 知识体系总览
下面这张图,是我自己梳理的GPU集群知识体系。你可以把它当作本章的「地图」:
1.5 小结
这一章我们聊了三个核心问题:
- 为什么需要集群:显存、算力、效率,三座大山逼着你上集群
- 集群长什么样:节点(GPU服务器)+ 网络(IB/RoCE)+ 存储(三层架构)
- 选什么卡:V100够用但过时,A100性价比高,H100性能强但贵
我个人建议:如果你刚开始搭建集群,先拿A100练手。等把数据并行、模型并行这些技术玩熟了,再上H100。别一上来就追新,容易翻车。
一句话总结:GPU集群不是堆硬件,而是让硬件协同工作。理解架构,才能用好集群。