硬件选型与配置:GPU型号对比、服务器选型、网络拓扑、存储配置
各位同学,咱们今天聊点实在的。做GPU集群,说白了就是砸钱买硬件。但钱怎么花,学问大了去了。我见过太多团队,预算花了不少,集群跑起来却像老牛拉车。嗯,今天我就把这几年的经验掰开揉碎,跟你讲讲硬件选型那些坑。
一、GPU型号对比:A100 vs H100 vs B200
先说说核心——GPU。目前市面上主流的训练卡就这三款。我个人的习惯是,先看业务再选卡,别盲目追新。
| 参数 | A100 (80GB) | H100 (80GB) | B200 |
|---|---|---|---|
| 架构 | Ampere | Hopper | Blackwell |
| FP8算力 | 624 TFLOPS | 1979 TFLOPS | 4500 TFLOPS |
| 显存带宽 | 2 TB/s | 3.35 TB/s | 8 TB/s |
| NVLink带宽 | 600 GB/s | 900 GB/s | 1800 GB/s |
| 功耗 | 400W | 700W | 1000W |
你看这个表,B200的FP8算力是A100的7倍多。但别急着下单。我在项目中遇到过,有些模型用A100跑得挺好,换H100反而因为显存管理策略不同出了bug。说白了,硬件升级不是简单的乘法。
我的选型建议:
- A100:性价比之王。如果你的模型参数量在百亿以内,A100完全够用。我去年帮一个客户搭集群,8卡A100跑LLaMA-13B,效果杠杠的。
- H100:适合千亿级模型。FP8和Transformer Engine是亮点。但注意,H100对散热要求极高,我曾经因为机房空调不给力,导致H100降频,性能直接打七折。
- B200:土豪专用。目前刚出,生态还不完善。我建议等半年再入手,让驱动和框架先稳定下来。
避坑指南:我曾经帮一个客户选型,他非要上B200,结果发现PyTorch对Blackwell架构的支持还不完整,很多算子需要手动优化。最后花了三个月才把性能调上来。所以,新硬件出来,别急着当小白鼠。
二、服务器选型:不只是堆GPU
GPU选好了,服务器怎么配?很多人以为把GPU插满就行。其实不然。你想想看,CPU、内存、PCIe通道,哪个环节出问题,GPU都得等着。
我个人习惯用这个配置清单:
- CPU:至少双路Intel Xeon或AMD EPYC。核心数建议64核以上。为什么?因为数据预处理和通信调度都靠CPU。我曾经见过一个集群,GPU利用率只有30%,一查发现CPU成了瓶颈。
- 内存:每张GPU配256GB系统内存。比如8卡服务器,至少2TB内存。别省这个钱,大模型加载时,内存不够会直接OOM。
- PCIe通道:确保每张GPU有x16通道。有些廉价主板会共享带宽,8张卡插上去,每张只能跑x8,性能损失10%-15%。
- 散热:液冷优先。风冷在700W功耗面前就是笑话。我有个朋友用风冷跑H100,夏天机房温度到40度,GPU直接降频到50%性能。
注意:服务器选型时,一定要看NVLink的拓扑。有些服务器虽然插了8张卡,但NVLink是分组的,比如4+4,跨组通信要走PCIe,速度慢很多。我建议选全互联的NVSwitch架构。
三、网络拓扑:Fat-Tree vs InfiniBand
网络是集群的血管。GPU算得再快,数据传不过去也是白搭。这里我重点讲两种主流拓扑。
Fat-Tree(胖树)
说白了,就是一层层往上堆交换机。优点是扩展性好,成本低。缺点是延迟高,带宽共享。适合中小规模集群(64卡以内)。
InfiniBand
这是高性能计算的标配。延迟低至1微秒,带宽可达400Gbps。但贵,一个交换机顶一台服务器。适合大规模集群(128卡以上)。
我个人的经验是:如果集群在64卡以内,用RoCE v2(RDMA over Converged Ethernet)就够了,成本只有InfiniBand的一半。但超过128卡,必须上InfiniBand。我曾经帮一个客户搭256卡集群,用RoCE死活跑不满带宽,换成InfiniBand后,通信效率提升了40%。
网络拓扑选择指南:
- 单机8卡:不需要外部网络,NVLink搞定。
- 2-8台服务器:用Fat-Tree + RoCE v2,性价比最高。
- 8台以上:上InfiniBand,别犹豫。
四、存储配置:别让IO拖后腿
存储这块,很多人不重视。觉得GPU算力够就行。错!大错特错!我见过一个集群,GPU利用率只有20%,一查发现数据加载太慢,GPU一直在等数据。
我的存储配置建议:
- 本地NVMe SSD:每台服务器至少配4块7.68TB NVMe SSD,做RAID 0。用于存放训练数据和checkpoint。读写速度要超过10GB/s。
- 分布式文件系统:推荐Lustre或GPFS。用于共享数据集和模型。带宽至少100GB/s。我曾经用Lustre搭过200GB/s的存储集群,跑千亿模型毫无压力。
- 对象存储:用于归档和备份。可以用MinIO或Ceph。成本低,但延迟高,不适合训练时直接读取。
我的经验:训练大模型时,建议把数据集提前缓存到本地NVMe上。别每次都从分布式存储读。我曾经优化过一个项目,把数据预加载到本地后,训练速度提升了3倍。说白了,IO优化往往比算力优化更见效。
注意:存储网络不要和计算网络混在一起。我建议存储走独立的25GbE网络,计算走InfiniBand。混在一起的话,数据加载会干扰通信,导致训练不稳定。
好了,硬件选型这块就讲这么多。记住一句话:没有最好的硬件,只有最合适的配置。你想想看,花大价钱买B200,结果网络和存储跟不上,那不是白搭吗?