4. EPYC服务器平台选型与配置规划

EPYC 平台选型不是“先买服务器再插 GPU”的简单动作,而是从 CPU 路数、主板芯片组、内存通道、PCIe 扩展、GPU 直连拓扑到供电散热的一次整体约束求解。AI 训练负载对平台的要求与通用虚拟化、Web 服务差异很大:GPU 需要持续高带宽喂数据,CPU 要负责数据预处理、内核调度和通信协调,内存容量与带宽决定能否把数据集和中间张量留在近端,PCIe 拓扑决定 GPU 之间以及 GPU 与网卡之间的通信效率。本节按“先定路数与主板,再定内存与扩展,最后校核供电散热”的顺序展开,并给出可执行的配置校核方法。

单路与双路:先看 GPU 数量和内存带宽需求

单路 EPYC 平台(如 9004/9005 系列单插槽)的优势是成本低、功耗可控、PCIe 根端口集中,适合 2~4 张 GPU 的中小规模训练或推理节点。双路平台提供 2 倍内存通道和更多 PCIe 通道,适合 8 张 GPU 的高密度训练节点。判断依据可以量化为:每张 GPU 至少需要 1 个 x16 PCIe 5.0 链路(约 64 GB/s 双向),若 8 张 GPU 全部直连 CPU,则单路平台通常只有 128 条 PCIe 5.0 通道,扣除 NVMe、网卡和 BMC 后余量紧张;双路平台合计 256 条通道,可从容分配。内存侧,单路 12 通道 DDR5-4800 提供约 460 GB/s 带宽,双路约 920 GB/s。若训练任务中 CPU 侧数据预处理吞吐超过 400 GB/s,单路就会成为瓶颈,此时应选双路。

主板与芯片组:通道分配决定扩展上限

EPYC 主板的核心差异在于 PCIe 插槽的电气分配和芯片组下行通道。以典型双路 SP5 主板为例,CPU0 提供 128 条 PCIe 5.0,其中 4 个 x16 插槽可分配给 GPU0~GPU3,另留 x4 给 NVMe、x4 给管理网;CPU1 同样提供 128 条,分配给 GPU4~GPU7 和高速网卡。芯片组(如 AMD EPYC 7003/9004 配套的 Promontory 芯片组)主要提供 SATA、USB、低速 PCIe 和 BMC 管理通道,不承担 GPU 主数据通路。选型时要确认主板是否支持 PCIe 5.0 x16 全速插槽数量、是否支持 PCIe Bifurcation(x16 拆分为 x8+x8),以及 M.2 与 U.2 接口是否与 GPU 插槽共享通道。若主板把两个 x16 插槽做成 x8 电气,GPU 带宽会减半,训练中 all-reduce 时间可能增加 30% 以上。

内存容量与频率:按“GPU 显存 × 2~4 倍”估算

内存容量建议按“单卡显存 × 2~4 倍”估算主机侧需求。例如 8 张 80 GB GPU,显存合计 640 GB,主机内存建议 1.5~2.5 TB,用于存放数据集缓存、数据加载器缓冲、CPU 侧优化器状态和通信缓冲。频率方面,DDR5-4800 是 EPYC 9004 的基准,DDR5-5600 在 9005 上可支持;但要注意“每通道 1 DIMM”才能跑满频率,插满 2 DIMM/通道时频率会降到 4400 或 4000。配置时优先保证通道数填满(12 通道插 12 条或 24 条),而不是盲目追求单条大容量。可用以下命令在 Linux 下确认实际频率与通道:

# 查看内存频率与通道
sudo dmidecode -t memory | grep -E "Speed|Locator|Size"
# 查看 NUMA 节点与 GPU 亲和
numactl --hardware
nvidia-smi topo -m

NVMe 与网络扩展:别让存储和网络拖住 GPU

训练节点通常需要 2~4 块 NVMe SSD 做本地数据集缓存和检查点写入。建议每块 NVMe 使用独立 x4 PCIe 5.0 链路,顺序读不低于 12 GB/s,避免多块盘共享一个 x4 上行。网络方面,GPU 间通信若走 RDMA,建议配置 1~2 张 200/400 GbE 或 NDR InfiniBand 网卡,每张网卡独占 x16 PCIe 5.0 插槽。若网卡与 GPU 共享 PCIe 交换机或芯片组下行,带宽争用会显著增加。一个实用的检查方法是:在满载训练时用 nvidia-smi dmon 观察 GPU 利用率,同时用 ibstat 或 ethtool -S 查看网卡丢包与重传;若 GPU 利用率周期性掉到 70% 以下而网卡重传上升,说明 PCIe 或网络存在争用。

GPU 直连拓扑:NUMA 亲和与 PCIe 树

GPU 直连拓扑的目标是让每张 GPU 的 PCIe 根端口尽量靠近其使用的 CPU 和内存。双路平台上,GPU0~GPU3 挂 CPU0,GPU4~GPU7 挂 CPU1,训练进程应通过 numactl --cpunodebind=0 --membind=0 绑定到对应 NUMA 节点。若使用 NVLink 桥接(如 H100 NVL 或 A100 NVLink),GPU 对之间的带宽可达 600 GB/s,远高于 PCIe 5.0 x16 的 64 GB/s,此时应优先把通信密集的 GPU 对放在同一 NVLink 域内。下图给出一个双路 8 卡节点的典型拓扑与约束关系,可作为选型校核的参照。

双路 EPYC + 8 GPU 训练节点拓扑与约束校核 CPU0 · EPYC 9004/9005 12 通道 DDR5-4800 ≈ 460 GB/s 128× PCIe 5.0 lanes NUMA node 0 CPU1 · EPYC 9004/9005 12 通道 DDR5-4800 ≈ 460 GB/s 128× PCIe 5.0 lanes NUMA node 1 xGMI 互连 GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 PCIe 5.0 x16 · 64 GB/s PCIe 5.0 x16 · 64 GB/s NVMe ×2 PCIe 5.0 x4 · 12 GB/s RDMA NIC ×1 400 GbE · PCIe 5.0 x16 NVMe ×2 PCIe 5.0 x4 · 12 GB/s RDMA NIC ×1 400 GbE · PCIe 5.0 x16 供电与散热约束校核 • 8× GPU 峰值约 5600 W + 2× CPU 约 800 W + 内存/盘/网卡约 400 W ≈ 6800 W • 电源建议 2× 3000 W 钛金冗余(N+N),单路市电需 ≥ 32 A @ 220 V • 风冷需 ≥ 6 个 80 mm 高静压风扇;液冷需确认冷板覆盖 GPU+CPU,进水温度 ≤ 45 ℃

电源与散热:按峰值功耗的 1.3 倍留余量

8 卡训练节点的峰值功耗可以按“GPU TDP × 数量 + CPU TDP × 路数 + 200~400 W 其他”估算。以 8× 700 W GPU、2× 400 W CPU 为例,峰值约 6400 W,加上内存、NVMe、网卡和风扇,整机约 6800 W。电源应按峰值 1.3 倍配置,即约 8800 W,常见做法是 2× 3000 W 或 4× 2200 W 钛金电源做 N+N 冗余。散热方面,风冷需要高静压风扇和足够的机箱风道,进风温度建议控制在 25 ℃ 以下;若采用液冷,需确认冷板覆盖 GPU 和 CPU,并检查快接头是否与主板布局冲突。上电前可用 ipmitool sensor list 读取进风温度、CPU 温度和电源功率,作为基线记录。

配置校核顺序建议:先确认 GPU 数量与 PCIe 通道预算,再选单路或双路;然后按通道数填满内存并确认频率;最后核算电源与散热余量。任何一步不满足,都应回到上一步调整,而不是靠降频或限功耗硬撑。

综合来看,单路平台适合 2~4 卡、预算敏感、功耗受限的场景;双路平台适合 8 卡高密度训练,但必须同时满足 PCIe 通道、内存带宽、电源和散热四项约束。实际选型时,建议把上述拓扑图作为校核清单,逐项确认 GPU 与 CPU 的 NUMA 亲和、NVMe 与网卡的独立链路、电源冗余和散热能力,再进入采购与上架流程。