第二章:硬件环境规划——GPU服务器选型与基础设施搭建
各位同学,大家好。这一章我们聊聊硬件环境规划。说白了,就是你要把大模型跑起来,得先准备好“家伙什儿”。我见过不少团队,模型选得挺好,代码写得也漂亮,结果卡在硬件上——要么GPU不够用,要么网络带宽成瓶颈,要么机房散热直接把服务器干宕机了。嗯,今天咱们就把这些坑一个个填上。
2.1 GPU服务器选型:A100、H100与国产昇腾
先说说GPU选型。目前主流的选择就三个方向:NVIDIA的A100、H100,以及国产的昇腾系列。我个人习惯是,先看预算,再看场景。
2.1.1 NVIDIA A100
A100是上一代旗舰,但说实话,现在依然能打。80GB显存版本,单卡算力312 TFLOPS(FP16)。如果你做的是百亿参数级别的模型微调,A100完全够用。我在项目中遇到过,用8卡A100跑一个130亿参数的LLaMA,全参数微调,显存刚好卡在临界点。嗯,这里要注意,如果你要做全参数微调,建议至少8卡起步。
关键参数速览:
- 显存:40GB / 80GB(推荐80GB版本)
- 互联:NVLink 3.0,600GB/s
- 功耗:400W(被动散热)
- 适用场景:百亿参数级训练、推理、微调
2.1.2 NVIDIA H100
H100是当前最强。单卡算力达到1979 TFLOPS(FP8),显存带宽3.35TB/s。说白了,如果你要训千亿参数以上的模型,H100是唯一选择。我曾经帮一个客户部署千亿参数模型,用H100的FP8精度,训练速度比A100快了将近4倍。但价格嘛……嗯,一张卡顶一台A100服务器。
我的建议:如果预算充足,直接上H100。如果预算有限,A100 80GB是性价比之王。别买40GB版本,显存不够用,你会后悔的。
2.1.3 国产昇腾(Ascend)
昇腾910B是目前国产化替代的主力。单卡算力约256 TFLOPS(FP16),显存64GB。说实话,单卡性能比A100略低,但胜在国产化、供应链稳定。我在信创项目中用过昇腾,踩过不少坑——比如算子兼容性问题、框架适配问题。但最近半年,昇腾的生态进步很快,PyTorch适配已经基本成熟。
避坑指南:我曾经在昇腾上跑一个Transformer模型,结果因为某个算子不支持,卡了整整一周。后来发现是版本问题。建议:使用昇腾前,先确认你的模型框架版本与CANN(昇腾计算框架)版本完全匹配。
2.2 内存与存储配置
GPU选完了,接下来是内存和存储。很多人只盯着GPU,忽略了这两个,结果训练时CPU内存爆了,或者数据加载成了瓶颈。
2.2.1 CPU内存配置
大模型训练时,CPU内存主要用于存放优化器状态、数据预处理、模型参数副本等。我个人习惯是:每张GPU至少配256GB CPU内存。举个例子,8卡A100服务器,建议至少2TB内存。为什么?因为混合精度训练时,优化器状态(Adam的动量项)会占用大量内存。我曾经遇到过,内存配少了,训练到一半直接OOM,整个任务白跑。
| GPU数量 | 推荐CPU内存 | 典型场景 |
|---|---|---|
| 4卡 | 512GB - 1TB | 百亿参数微调 |
| 8卡 | 1TB - 2TB | 百亿参数全参数训练 |
| 16卡 | 2TB - 4TB | 千亿参数训练 |
2.2.2 存储配置
存储分两块:本地存储和共享存储。
- 本地存储:建议用NVMe SSD,至少2TB。用于存放临时数据、checkpoint。我习惯每台服务器配4块7.68TB的NVMe,做RAID 0,读写速度能到10GB/s以上。
- 共享存储:推荐用分布式文件系统,比如Lustre或GPFS。用于存放训练数据、模型权重。带宽要求:至少10GB/s,否则数据加载会成为瓶颈。
小技巧:训练时,把数据先缓存到本地NVMe上,再从本地读。这样能大幅降低共享存储的压力。我试过,训练速度能提升15%-20%。
2.3 网络架构设计:IB网络与RoCE
网络是大模型训练中最容易被忽视的环节。你想想看,8张卡之间要频繁交换梯度,如果网络带宽不够,GPU算力再强也是白搭。
2.3.1 InfiniBand(IB)网络
IB网络是高性能计算的标配。带宽高、延迟低,支持RDMA(远程直接内存访问)。目前主流的是HDR(200Gbps)和NDR(400Gbps)。我建议:如果预算允许,直接上NDR 400G。为什么?因为大模型训练时,AllReduce操作对网络带宽极度敏感。我曾经用HDR 200G跑千亿模型,网络利用率长期在95%以上,明显是瓶颈。换成NDR 400G后,训练速度提升了30%。
2.3.2 RoCE(RDMA over Converged Ethernet)
RoCE是另一种选择,基于以太网的RDMA。成本比IB低,但性能也差一些。如果你预算有限,或者已经有成熟的以太网基础设施,RoCE v2是个不错的选择。但要注意:RoCE对网络丢包非常敏感,需要配置PFC(优先级流控制)和ECN(显式拥塞通知)。
避坑指南:我曾经在一个项目中用RoCE,结果因为交换机没有开启PFC,导致网络丢包率超过0.1%,训练直接卡死。后来排查了三天才发现是网络配置问题。所以,用RoCE一定要先做网络调优。
2.3.3 网络拓扑建议
我个人习惯用Fat-Tree拓扑。比如8台8卡服务器,用两层交换机,每台服务器配4张网卡,上行带宽和下行带宽1:1。这样能保证任意两张卡之间的通信带宽都是满的。
2.4 机房环境要求
最后说说机房。很多人觉得机房就是放几台机器,插上电就行。其实不然,大模型服务器的功耗和散热,远超普通服务器。
2.4.1 电力要求
一台8卡A100服务器,满载功耗约6.5kW。H100更高,约10kW。如果你有10台这样的服务器,总功耗就是65-100kW。这还不算网络设备、存储、空调。我建议:机柜功率密度按15-20kW/柜设计,预留30%的余量。
电力配置清单:
- 单机柜:至少2路32A工业插座
- UPS:支持至少15分钟满载运行
- 发电机:建议配置柴油发电机,自动切换时间小于10秒
2.4.2 散热要求
大模型服务器发热量巨大。8卡A100,单机发热量约6.5kW。如果采用风冷,机柜前后温差会很大。我建议:有条件的话上液冷。液冷方案能降低PUE到1.1以下,而且噪音小、散热效率高。如果只能用风冷,确保机柜前后通风良好,冷通道温度控制在18-22°C。
2.4.3 机柜布局
机柜布局也有讲究。我习惯采用“冷热通道封闭”方案:机柜面对面摆放,冷风从底部送入,热风从顶部排出。这样能避免冷热空气混合,提高散热效率。另外,机柜深度建议至少1200mm,因为大模型服务器通常比较长。
知识体系总览
下面这张图,是我画的本章节知识体系结构。你可以快速回顾一下核心要点。
好了,这一章的内容就到这里。硬件环境规划是基础中的基础,你想想看,如果地基没打好,后面模型训练、推理优化都是空中楼阁。下一章我们聊聊软件环境搭建,包括CUDA、PyTorch、Docker镜像等。嗯,到时候见。
公众号:蓝海资料掘金营,微信deep3321