基础设施选型:GPU服务器选型(NVIDIA A100/H100)、存储方案(对象存储、NAS)、网络架构(RDMA)
好,咱们进入第二章。这一章聊的是基础设施选型,说白了就是「买什么硬件、搭什么网络、存什么数据」。很多团队在AIGC项目上栽跟头,不是因为算法不行,而是基础设施没选对。我见过不少案例,GPU买回来发现网络带宽不够,训练时卡在数据传输上,GPU利用率不到30%。嗯,这钱花得冤枉。
GPU服务器选型:A100 vs H100
先聊GPU。目前企业级AIGC平台的主流选择就两个:NVIDIA A100和H100。怎么选?我个人的习惯是看三个维度:算力需求、显存容量、互联带宽。
| 对比项 | A100 (80GB) | H100 (80GB) |
|---|---|---|
| FP16算力 | 312 TFLOPS | 989 TFLOPS |
| 显存带宽 | 2 TB/s | 3.35 TB/s |
| NVLink带宽 | 600 GB/s | 900 GB/s |
| 典型功耗 | 400W | 700W |
| 适用场景 | 大模型推理、中等规模训练 | 千亿参数模型训练、MoE架构 |
为什么H100的FP16算力是A100的三倍?因为它引入了Transformer Engine和FP8精度支持。说白了,H100就是为Transformer架构量身定做的。我在项目中遇到过,用A100训练一个175B参数的模型,需要64卡并行,通信开销巨大。换成H100后,同样的模型只需要32卡,训练时间缩短了40%。
核心建议:
- 预算充足且模型规模在100B以上 → 直接上H100
- 模型规模在10B-100B之间 → A100性价比更高
- 推理场景为主 → A100完全够用,H100有点浪费
个人经验:别只看单卡性能。我建议你重点关注「集群扩展效率」。A100在8卡节点内表现不错,但跨节点通信时,H100的NVLink 4.0优势就体现出来了。如果你计划部署超过32卡,H100的投入是值得的。
存储方案:对象存储 vs NAS
存储这块,很多团队容易踩坑。AIGC场景下,数据量动不动就是PB级,而且读写模式很特殊:训练时是大量小文件随机读取,推理时是模型权重顺序加载。
我一般把存储分为两层:
- 热数据层:训练数据集、模型checkpoint,需要高吞吐、低延迟
- 冷数据层:历史数据、备份模型,容量大、访问频率低
对象存储(如MinIO、Ceph RGW)
对象存储适合冷数据层。它的优势是容量大、成本低、扩展性好。但有个坑:对象存储的延迟通常在10ms级别,不适合频繁读写。
我曾经遇到一个团队,把训练数据直接放在对象存储上,结果每次epoch加载数据要等半小时。后来改成NAS做缓存层,对象存储只做归档,问题就解决了。
避坑指南:对象存储的S3协议虽然通用,但元数据操作性能很差。如果你有大量小文件(比如图片数据集),建议先用tar打包成大文件再上传。我曾经因为没注意这个细节,上传100万张图片花了整整两天。
NAS(如NFS、Lustre)
NAS适合热数据层。它的延迟在微秒级别,支持POSIX语义,训练框架可以直接读写。但NAS的扩展性有限,单节点带宽容易成为瓶颈。
我个人的习惯是:
- 单机训练 → 本地SSD + NFS挂载
- 多机训练 → 并行文件系统(如Lustre、GPFS)
- 推理服务 → 本地NVMe + 对象存储做冷备
存储选型速查表:
| 场景 | 推荐方案 | 原因 |
|---|---|---|
| 训练数据加载 | NAS(Lustre) | 高吞吐、低延迟 |
| 模型checkpoint | 本地SSD + 异步同步到对象存储 | 避免训练中断 |
| 推理模型存储 | 对象存储 | 容量大、成本低 |
| 日志和监控数据 | 对象存储 | 写入频繁、无需高IOPS |
网络架构:RDMA与InfiniBand
网络这块,是AIGC基础设施里最容易被忽视的环节。你想想看,训练一个千亿参数模型,数据需要在几百张GPU之间来回传输。如果网络带宽不够,GPU就得干等着。
RDMA(Remote Direct Memory Access)就是解决这个问题的。它允许数据直接从一台机器的内存传输到另一台机器的内存,绕过CPU和操作系统。延迟从毫秒级降到微秒级。
三种主流方案
- InfiniBand:性能最强,延迟最低(1-2μs),但价格贵。适合HPC场景。
- RoCEv2:基于以太网的RDMA,成本低,兼容性好。延迟在5-10μs。
- NVLink:NVIDIA私有协议,只用于同一节点内的GPU互联。
我建议的架构是:
- 节点内:NVLink + NVSwitch,8卡全互联
- 节点间:InfiniBand(预算充足)或 RoCEv2(预算有限)
避坑指南:RoCEv2虽然便宜,但需要PFC(优先级流控制)和ECN(显式拥塞通知)配合。我曾经在一个项目里,因为交换机没开启PFC,导致RoCEv2丢包率高达5%,训练速度直接腰斩。如果你选RoCEv2,一定要确认网络设备支持无损以太网。
网络拓扑设计
常见的拓扑有两种:
- Fat-Tree:带宽均匀,扩展性好。适合大规模集群。
- Dragonfly:延迟更低,但布线复杂。适合超算场景。
我个人更推荐Fat-Tree。原因很简单:它好排查问题。我在项目中遇到过Dragonfly拓扑,某个链路故障时,排查起来非常痛苦。Fat-Tree的对称结构让故障定位容易得多。
网络带宽计算:
假设你有64张H100,每张卡的NVLink带宽是900GB/s。如果采用All-Reduce通信模式,理论上需要:
总通信量 = 模型参数大小 × 2(梯度+参数)
以175B模型为例,FP16精度:
总通信量 = 175GB × 2 = 350GB
单次All-Reduce时间 = 350GB / (64 × 900GB/s) ≈ 6ms
但实际中,由于网络拓扑和通信库开销,这个时间会放大到20-30ms。嗯,这就是为什么网络优化如此重要。
总结一下
基础设施选型没有银弹。我见过用A100+RoCEv2跑出不错效果的团队,也见过H100+InfiniBand但利用率不到50%的案例。关键还是看你的业务场景和预算。
最后给个建议:别在基础设施上省钱,但也别盲目堆料。先做小规模验证,再逐步扩展。我见过太多团队一上来就买几百张H100,结果网络和存储跟不上,GPU利用率不到30%。这钱花得真不值。
下一章,咱们聊聊容器化部署和Kubernetes集群搭建。到时候我会分享一些我在生产环境中踩过的坑,保证实用。