硬件选型与配置:GPU选型、CPU与内存配比、NVLink与NVSwitch

说到训练吞吐,硬件选型这块我踩过的坑可真不少。很多人一上来就问「哪个GPU最强」,其实问题没这么简单。你想想看,选硬件就像配电脑打游戏,光显卡好,CPU和内存跟不上,照样卡成PPT。

GPU选型:A100、H100、4090怎么选?

先聊聊这三款主流GPU。我个人习惯把GPU分成两类:训练专用卡和消费级卡。A100和H100属于前者,4090属于后者。

核心结论:大规模分布式训练,闭眼选H100或A100。单卡小实验或微调,4090性价比极高。

A100(80GB)

这卡我用了两年多,说实话,它是个「稳」字。80GB显存,能塞下大部分主流模型。我在项目中遇到过用A100跑175B参数模型的情况,配合模型并行,勉强能跑起来。它的FP16算力是312 TFLOPS,支持TF32和稀疏计算。

H100

H100相比A100,提升是质的飞跃。FP8算力接近2000 TFLOPS,Transformer Engine专门优化了注意力机制。我记得第一次用H100跑GPT训练,同样的batch size,吞吐直接翻倍。但要注意,H100的显存带宽是3.35TB/s,比A100的2TB/s高出一大截,这对大模型训练非常关键。

RTX 4090

4090其实是个「异类」。24GB显存,FP16算力82.6 TFLOPS,单卡性能不差。但问题在于:没有NVLink,多卡通信全靠PCIe 4.0 x16。我曾经试过用4张4090跑分布式训练,通信开销大得离谱,吞吐还不如2张A100。所以,4090适合做推理、小模型微调,或者个人开发者做实验。

GPU型号 显存 FP16算力 显存带宽 NVLink 适用场景
A100 80GB 80GB HBM2e 312 TFLOPS 2 TB/s 支持(600 GB/s) 大规模训练、混合精度
H100 80GB HBM3 989 TFLOPS 3.35 TB/s 支持(900 GB/s) 超大模型训练、FP8
RTX 4090 24GB GDDR6X 82.6 TFLOPS 1 TB/s 不支持 小模型、推理、个人实验

我的建议:预算充足直接上H100。如果预算有限,A100二手市场性价比很高。4090只适合做「玩具」或「辅助卡」。

CPU与内存配比:别让CPU拖后腿

很多人只盯着GPU,忽略了CPU和内存。我见过一个项目,8张A100配了2个核心的CPU和16GB内存,结果数据加载成了瓶颈,GPU利用率不到30%。

CPU的核心作用是什么?说白了就是数据搬运工。你要把数据从硬盘读到内存,再从内存搬到GPU显存。这个过程如果CPU太弱,GPU就得干等着。

CPU核心数怎么配?

我个人习惯:每张GPU至少配4-8个物理核心。比如8卡A100,建议配32-64核的CPU。为什么?因为数据预处理、数据增强、分布式通信这些操作都需要CPU参与。我曾经用32核CPU带8张A100,数据加载刚好够用,再少就会卡。

内存容量怎么算?

内存配比有个简单公式:内存 = 显存总量 × 2 ~ 4倍。举个例子,8张A100共640GB显存,内存建议配1280GB到2560GB。为什么?因为每个batch的数据、模型参数副本、优化器状态都需要在内存里暂存。我踩过坑,内存配少了,训练到一半直接OOM,进程被kill掉。

避坑指南:我曾经在64GB内存的机器上跑8卡训练,结果数据加载线程一多,内存直接爆了。后来改成256GB才稳定。记住,内存宁多勿少。

NVLink与NVSwitch:多卡通信的命脉

多卡训练时,通信开销是最大的瓶颈之一。你想想看,8张卡要同步梯度,每张卡都得把梯度发给别人,再收别人的梯度。如果通信带宽不够,训练速度会被严重拖慢。

NVLink和NVSwitch就是解决这个问题的。

NVLink是什么?

NVLink是NVIDIA的高速互联技术。它直接连接GPU之间,带宽远高于PCIe。A100的NVLink带宽是600 GB/s(双向),H100是900 GB/s。而PCIe 4.0 x16只有32 GB/s。差距有多大?NVLink比PCIe快20-30倍。

我记得第一次用NVLink跑分布式训练,梯度同步时间从原来的5秒降到了0.2秒。那种感觉,就像从绿皮火车换成了高铁。

NVSwitch的作用

NVSwitch是一个交换机,它让所有GPU之间都能全互联。什么意思?就是每张GPU都能直接和其他GPU通信,不需要经过CPU或PCIe。NVSwitch的带宽高达7.2 TB/s(H100版本),可以支持8卡甚至16卡的全互联。

没有NVSwitch会怎样?比如你用4张A100,没有NVSwitch,它们只能两两互联,通信路径会绕路,延迟增加。有了NVSwitch,所有GPU都在一个高速网络中,通信效率极高。

关键点:NVLink解决的是「点对点」通信,NVSwitch解决的是「多对多」通信。两者配合,才能发挥多卡训练的最大性能。

实际配置建议

  • 2-4卡训练:NVLink足够,不需要NVSwitch。每对GPU之间直接互联即可。
  • 8卡训练:强烈建议用NVSwitch。8张卡全互联,梯度同步效率最高。
  • 16卡以上:必须用NVSwitch,否则通信会成为瓶颈。

我的经验:如果你用8张A100,但没有NVSwitch,训练吞吐可能只有有NVSwitch时的60%-70%。这笔钱不能省。

硬件选型与配置核心逻辑 GPU 选型 A100 / H100 / 4090 CPU & 内存配比 核心数 & 容量计算 多卡通信 NVLink / NVSwitch 显存容量 算力(TFLOPS) 显存带宽 CPU核心数 内存容量 数据加载效率 点对点带宽 全互联拓扑 梯度同步效率

这张图把硬件选型的三个核心维度串起来了。GPU选型决定算力和显存,CPU和内存配比决定数据供给,NVLink和NVSwitch决定多卡通信效率。三者缺一不可。

最后说一句,硬件选型没有「万能答案」。你得根据自己的模型大小、数据量、预算来权衡。我见过有人用4090跑出了不错的吞吐,也见过有人用H100但配置不合理,性能还不如A100。关键还是理解瓶颈在哪,然后对症下药。