二、硬件选型与资源规划:GPU选型、显存计算、CPU与内存配置、网络带宽需求
聊到硬件选型,很多同学第一反应就是「无脑上A100」。嗯,这个想法我特别理解。毕竟A100名声在外,谁不想一步到位呢?但说实话,我在实际项目中踩过不少坑,发现硬件选型这事儿,真不是越贵越好。
你想想看,如果只是跑个7B的小模型微调,上H100就是杀鸡用牛刀。反过来,要是搞千亿参数训练,拿几块L40S硬扛,那更是自讨苦吃。所以今天我就把这几款主流GPU的底裤扒干净,再聊聊显存、CPU、内存和网络该怎么配。
2.1 GPU选型:A100、H100、L40S怎么选?
这三款卡我都亲手摸过,各有各的脾气。先看一张对比表,心里有个底:
| 型号 | 显存 | 显存带宽 | FP16算力 | 互联带宽 | 典型功耗 |
|---|---|---|---|---|---|
| A100 80G | 80GB HBM2e | 2.0 TB/s | 312 TFLOPS | 600 GB/s (NVLink3) | 400W |
| H100 80G | 80GB HBM3 | 3.35 TB/s | 989 TFLOPS | 900 GB/s (NVLink4) | 700W |
| L40S 48G | 48GB GDDR6 | 864 GB/s | 182 TFLOPS | 无NVLink | 350W |
看到H100的700W功耗没?我第一次部署时,机房运维大哥直接打电话过来:「兄弟,你这功率顶我三台普通服务器了!」所以选型时,供电和散热必须提前算进去。
2.1.1 A100 80G:老黄牛型选手
A100是我用得最久的卡。它最大的优点是——稳。我有个项目跑了整整8个月,A100愣是一次没崩过。显存80G,对于70B以下模型的训练和推理,基本够用。
适合场景:
- 7B~13B模型的微调(单卡或双卡)
- 70B模型的推理(需要量化,比如INT8)
- 预算有限但需要稳定性的团队
2.1.2 H100 80G:性能猛兽
H100的FP16算力是A100的三倍多。我第一次跑LLaMA-70B训练时,H100比A100快了将近2.5倍。但代价也很明显——贵,而且功耗高。
适合场景:
- 千亿参数模型的预训练
- 需要极致推理速度的在线服务
- 不差钱的大厂或研究机构
2.1.3 L40S 48G:性价比之选
L40S这块卡,说实话,刚出来时我挺看不上。48G显存,还没NVLink,能干啥?但后来有个客户预算有限,硬着头皮上了L40S,结果发现推理场景下表现意外地好。
适合场景:
- 7B以下模型的推理(单卡无压力)
- 轻量级微调(LoRA等PEFT方法)
- 视频生成、图像生成等非LLM任务
我的建议: 如果你主要做推理,L40S的性价比其实很高。48G显存跑INT4量化的70B模型,刚刚好。但千万别用它做大规模训练,没有NVLink,多卡通信会卡死你。
2.2 显存计算:你的模型到底吃多少?
显存计算这事儿,我见过太多人翻车了。有人买了8块A100,结果模型加载时直接OOM。为什么会这样?因为大家只算了模型参数占用的显存,忘了算优化器状态和梯度。
咱们来算一笔账。以LLaMA-70B为例,加载到显存需要多少?
模型参数:70B × 2字节(FP16)= 140GB
梯度:70B × 2字节 = 140GB
优化器状态(Adam):70B × 4字节 × 2 = 560GB
总计:140 + 140 + 560 = 840GB
看到没?光优化器状态就占了560GB。这就是为什么训练大模型时,显存总是不够用。我有个项目,一开始用FP32训练,显存直接爆了。后来换成混合精度(FP16+FP32),显存占用降了将近一半。
显存占用速查表(以FP16为例):
| 模型规模 | 推理(单卡) | 训练(单卡,含优化器) | 推荐GPU |
|---|---|---|---|
| 7B | 14GB | 56GB | 1×A100 80G / 1×L40S |
| 13B | 26GB | 104GB | 2×A100 80G |
| 70B | 140GB | 560GB | 8×A100 80G |
| 130B | 260GB | 1040GB | 8×H100 80G |
2.3 CPU与内存配置:别让CPU拖后腿
很多人只盯着GPU,CPU和内存随便配。我告诉你,这绝对是个坑。CPU负责数据预处理、加载、调度,如果CPU太弱,GPU就得干等着「吃草」。你想想看,几万块的GPU闲着,几百块的CPU在吭哧吭哧干活,这合理吗?
我的配置建议:
- CPU核心数: 至少32核(64线程以上更佳)。我习惯用AMD EPYC或Intel Xeon Gold系列。
- 内存容量: 至少是显存总量的2倍。比如8卡A100(640GB显存),内存建议1TB以上。
- 内存频率: DDR5 4800MHz以上,别省这点钱。
为什么内存要这么大?因为数据加载时,整个数据集可能都放在内存里。我有个项目,数据集200GB,内存只有512GB,结果数据加载时频繁swap,训练速度直接掉到原来的三分之一。
2.4 网络带宽需求:多卡通信的命脉
网络带宽这事儿,我刚开始做分布式训练时完全没概念。觉得只要网线插上了,能通就行。结果第一次跑8卡训练,发现GPU利用率只有30%。查了半天,原来是网络带宽不够,梯度同步卡住了。
为什么会这样?因为分布式训练时,每张卡算完梯度后,需要把所有卡的梯度汇总(AllReduce操作)。如果网络慢,GPU就得干等着。
不同场景的网络需求:
| 场景 | 推荐网络 | 带宽 | 说明 |
|---|---|---|---|
| 单机多卡(≤8卡) | NVLink + PCIe 4.0 | 600-900 GB/s | 机内通信,NVLink是首选 |
| 多机多卡(小规模) | InfiniBand HDR | 200 Gb/s | 2-4台机器,IB直连 |
| 多机多卡(大规模) | InfiniBand NDR | 400 Gb/s | 8台以上,必须上IB |
| 推理服务 | RoCE v2 或 25GbE | 25-100 Gb/s | 推理对网络要求相对低 |
我个人习惯,只要是多机训练,一律上InfiniBand。虽然贵,但省心。我曾经试过用100GbE跑4机32卡训练,结果网络延迟高得离谱,训练效率比单机8卡还慢。后来换成IB HDR,问题才解决。
总结一下: 网络带宽是分布式训练的「高速公路」。路窄了,车再好也跑不快。预算允许的话,InfiniBand是首选。实在不行,RoCE v2也能凑合,但要做好调优的心理准备。
2.5 一个完整的配置示例
最后,我给出一个实际项目的配置单,供你参考:
项目:70B模型微调(LoRA)+ 推理服务
GPU:4 × A100 80G(NVLink互联)
CPU:AMD EPYC 7742(64核128线程)
内存:1TB DDR5 4800MHz
网络:InfiniBand HDR(200Gb/s)
存储:NVMe SSD 4TB(数据)+ 20TB HDD(备份)
功耗:约3000W(含服务器其他部件)
这套配置,我用了快两年,稳得很。当然,如果你预算有限,可以把GPU换成L40S,但训练速度会慢不少。嗯,硬件选型就是这样——没有最好的,只有最合适的。