2. ThinkSystem服务器硬件架构解析
在AI计算基础设施中,服务器不是一块GPU的简单堆叠,而是一套围绕GPU带宽、供电与散热重新平衡的系统。理解ThinkSystem GPU服务器的硬件架构,核心要抓住三件事:机型定位决定能装多少卡、CPU-GPU拓扑决定数据走哪条路、PCIe与NVLink互联决定这条路有多宽。三者共同构成选型的判断依据。
一、机型谱系:从通用GPU服务器到8卡NVLink整机
Lenovo ThinkSystem的GPU服务器大致可分为三个层次。第一层是通用PCIe GPU服务器,如SR650 V3、SR670 V2,它们以标准PCIe插槽承载GPU,适合推理、虚拟化桌面、小规模训练等对卡间带宽要求不极端的场景。第二层是高密度多卡服务器,如SR675 V3,采用4U或更高机箱,支持8块双宽GPU,并引入NVLink桥接或NVSwitch实现卡间高速互联。第三层是NVLink整机与HGX平台,如基于HGX H100/H200的ThinkSystem SR675 V3配置,8块GPU通过NVSwitch构成全互联域,单卡间带宽可达900GB/s量级,面向大模型训练与高性能推理。
机型选择的第一道分水岭是GPU形态:是标准PCIe卡、SXM模组,还是OAM模组。PCIe卡可插拔、易维护、单卡独立;SXM/OAM模组则焊在基板上,通过NVLink直连,带宽和密度远高于PCIe,但整机绑定、升级路径受限。选型时先问“卡间通信是否成为瓶颈”,再决定形态。
二、CPU-GPU拓扑:NUMA与PCIe Root的分配逻辑
在双路服务器中,CPU0和CPU1各自管理一部分PCIe通道和内存。GPU插在哪个CPU的PCIe Root下,就直接决定它与哪颗CPU、哪组内存“近”。这就是CPU-GPU亲和性。若一块GPU挂在CPU1下,而训练进程运行在CPU0的核上,数据要跨UPI总线绕行,延迟和带宽都会受损。
以典型的双路8卡服务器为例,常见拓扑是每颗CPU下挂4块GPU,形成两个对称的“CPU+4GPU”域。此时应把进程、内存和GPU绑定在同一域内。Linux下可用 numactl 与 CUDA_VISIBLE_DEVICES 配合,例如把进程绑到node 0,并只暴露挂在CPU0下的4块GPU。判断依据是 nvidia-smi topo -m 输出的拓扑矩阵:NV#表示NVLink连接,PIX表示同一PCIe交换机下,SYS表示跨NUMA,PHB表示经PCIe Host Bridge。矩阵中SYS越多,跨域通信代价越大。
三、PCIe与NVLink:两条带宽路径的分工
PCIe是GPU与CPU、网卡、存储之间的通用通道。以PCIe 5.0 x16为例,单向带宽约64GB/s,双向约128GB/s。它适合承载数据加载、主机通信、跨节点网络。但GPU之间的梯度同步、张量并行通信若走PCIe,会迅速成为瓶颈。
NVLink则是GPU之间的专用高速链路。以NVLink 4.0为例,单GPU提供18条链路,总带宽900GB/s,是PCIe 5.0 x16的约7倍。在8卡NVSwitch架构中,任意两块GPU之间都是单跳全互联,通信延迟低且可预测。这就是为什么大模型训练优先选择SXM+NVSwitch整机,而不是8块PCIe卡。
实际判断时,可用 nvidia-smi topo -m 查看互联类型。若矩阵中GPU间显示NV12或NV18,说明走NVLink;若显示PIX或PHB,说明走PCIe;若显示SYS,说明跨NUMA,性能最差。对于张量并行度较高的模型,应尽量让参与同一并行组的GPU落在NVLink域内。
四、选型依据:从模型规模反推硬件配置
选型不是先看机型,而是先看模型。假设一个示例场景:需要微调一个70B参数量的模型,采用FP16精度,仅权重就约140GB。若用80GB显存的GPU,至少需要2块才能放下权重,但考虑优化器状态、激活值和梯度,实际往往需要4块以上。若采用张量并行4路,则这4块GPU之间需要高频通信,应优先选择NVLink互联的SXM机型。
再考虑推理场景:一个7B模型,FP16权重约14GB,单块24GB或48GB的PCIe GPU即可承载,此时PCIe机型SR650 V3更具性价比,且维护方便。若推理并发高、需要多卡分担,则要评估卡间是否需要NVLink,还是通过PCIe加批处理即可满足。
选型时可参考以下判断顺序:
- 显存总量:模型权重+优化器+激活值是否放得下,决定GPU数量下限。
- 卡间通信强度:张量并行、专家并行是否频繁,决定是否需要NVLink/NVSwitch。
- CPU-GPU亲和性:进程与GPU是否同NUMA域,决定实际有效带宽。
- 机箱与供电:8卡SXM整机功耗可达10kW以上,需确认机柜供电与散热能力。
- 扩展与维护:PCIe卡易更换,SXM整机升级路径受限,需结合生命周期规划。
nvidia-smi topo -m,再结合 numactl --hardware 查看NUMA节点与GPU的对应关系。若发现GPU与进程跨NUMA,可用 numactl --cpunodebind=0 --membind=0 绑定后再启动训练任务,通常能观察到通信等待时间下降。五、一个可执行的拓扑检查示例
假设一台双路8卡服务器,登录后执行以下命令查看拓扑:
nvidia-smi topo -m
# 输出示例(节选):
# GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU Affinity
# GPU0 X NV18 NV18 NV18 SYS SYS SYS SYS 0-31
# GPU1 NV18 X NV18 NV18 SYS SYS SYS SYS 0-31
# GPU4 SYS SYS SYS SYS X NV18 NV18 NV18 32-63
从输出可判断:GPU0-3之间为NVLink全互联,GPU4-7之间同样,但两组之间为SYS,即跨NUMA。若训练任务使用8卡张量并行,跨组通信会走UPI,性能下降。此时可考虑将并行组限制在4卡以内,或改用支持8卡NVSwitch的机型。这个判断过程,就是CPU-GPU拓扑与NVLink互联知识在实际运维中的直接应用。
总结来看,ThinkSystem GPU服务器的选型逻辑是:先由模型显存需求确定卡数,再由并行策略确定互联等级,最后由NUMA拓扑确定进程绑定方式。机型、拓扑、互联三者环环相扣,缺一不可。