3. 硬件资源规划:计算节点、GPU/FPGA加速卡、内存和网络带宽选型
硬件选型这事儿,说实话,我见过不少团队在这块栽跟头。不是买贵了,就是买了用不上。咱们今天聊的,是把每一分钱都花在刀刃上。
我个人习惯,做规划之前先问三个问题:跑什么负载?数据量多大?预算天花板在哪?答案不同,选型方向完全不同。这一章咱们就围绕这三个问题,把计算节点、加速卡、内存和网络掰开揉碎了讲。
3.1 计算节点选型:CPU的“配比”学问
计算节点是集群的主力。选CPU不能只看核心数,要看“单核性能”和“内存通道数”的平衡。
主流的两个阵营:
- AMD EPYC系列:核心多,PCIe通道多,适合大规模并行。我去年部署过一个96核心的EPYC节点,跑分子动力学,吞吐量比同价位的Intel高了30%。
- Intel Xeon系列:单核频率高,AVX-512指令集强。适合那些对串行计算敏感的任务,比如某些CFD求解器。
关键选型参数对比:
| 参数项 | AMD EPYC 9654 | Intel Xeon Platinum 8480+ | 说明 |
|---|---|---|---|
| 核心/线程 | 96C/192T | 56C/112T | 核心多不一定赢,看任务并行度 |
| 基础频率 | 2.4 GHz | 2.0 GHz | 低频更省电,高频适合串行 |
| 内存通道 | 12通道DDR5 | 8通道DDR5 | 通道数决定内存带宽 |
| PCIe通道 | 128 lanes Gen5 | 80 lanes Gen5 | 通道多才能挂更多加速卡和NVMe |
| TDP | 360W | 350W | 功耗和散热成本必须算进去 |
选型思路:
- 如果跑的是MPI并行任务(如WRF、OpenFOAM),尽量选高频+大缓存。我曾经在一个WRF集群里用Intel 8480+替换了AMD的上一代CPU,单任务完成时间缩短了15%。
- 如果是裸金属虚拟化场景(比如跑多个容器),核心数优先,频率可以妥协。
- 所有节点建议标配双路CPU,单路对NUMA亲和性不友好,双路能更好平衡内存带宽。
3.2 GPU/FPGA加速卡:显存是硬门槛,带宽是软实力
加速卡是HPC的“心脏”。选错了,CPU再强也白搭。
GPU这块,我踩过的坑不少。
先说显存。你训练一个大模型,batch size稍大一点,显存就爆了。那时候我遇到过一个用户,用24GB的A10跑GPT-2微调,每次OOM。后来换成80GB的A100,问题直接消失。说白了,显存决定了你“能不能跑”。
核心参数清单:
- 显存容量:训练类任务,建议40GB起步。推理任务可以宽松些,但也要预留20GB以上。
- 显存带宽:直接决定数据搬运速度。HBM2e(A100)带宽约2TB/s,HBM3(H100)可达3.35TB/s。带宽越高,训练收敛越快。
- NVLink/NVSwitch:多卡互联的“高速公路”。如果你打算4卡以上并行,NVLink必不可少。否则PCIe会形成瓶颈。
- TDP功耗:一张A100是400W,机柜的供电和散热必须跟得上。我见过一个机房因为GPU功率密度太高,空调直接宕机,教训深刻。
FPGA相对小众,但特定场景很香。
比如金融风控里的低延迟计算、信号处理这类任务。FPGA的优势是确定性延迟和能效比。一块Xilinx Alveo U250,功耗才75W,但处理某些加解密算法比GPU快几倍。选FPGA时注意两点:
- 开发工具链是否成熟。Vitis HLS还是RTL开发?团队里有人会写吗?
- PCIe带宽。建议选PCIe Gen4 x16以上,否则数据搬运会成为瓶颈。
加速卡选型速查表:
| 型号 | 显存 | 带宽 | 互联方式 | TDP | 适合场景 |
|---|---|---|---|---|---|
| NVIDIA A100 | 80GB HBM2e | 2 TB/s | NVLink 3.0 | 400W | 大型训练、科学计算 |
| NVIDIA H100 | 80GB HBM3 | 3.35 TB/s | NVLink 4.0 | 700W | 大模型、多卡并行 |
| AMD MI250X | 128GB HBM2e | 1.6 TB/s | Infinity Fabric | 500W | AMD生态、双精度计算 |
| Intel Xe Link | 64GB HBM2e | 1.2 TB/s | Xe Link | 250W | AI推理、FPGA协同 |
3.3 内存选型:容量和带宽,两手都要硬
内存是CPU和加速卡之间的“数据中转站”。容量不够,任务直接挂;带宽不够,GPU饿着等数据。
容量规划原则:
- 计算节点:单CPU至少配64GB,双路建议128GB起步。如果跑内存密集型任务(如基因组组装),直接上512GB或1TB。
- GPU节点:建议每张GPU配2-4倍显存的主机内存。比如一张80GB的A100,主机内存配到256GB以上。为什么?因为数据预处理、装载都需要主机内存做缓冲。
- 登录/管理节点:不用太大,64GB足以,但SSD要快。
带宽的讲究:
你觉得8通道DDR5够用吗?够用是够用,但如果你的CPU和GPU之间频繁做数据交换,内存带宽会变成天花板。我做过一个测试,从DDR5-4800升级到DDR5-5600,某个深度学习训练的数据加载时间缩短了18%。
内存类型速览:
- DDR5:主流选择,频率4800-6000 MT/s,单条容量64GB常见。
- HBM (高带宽内存):用于GPU和部分高端CPU(如Intel Xeon Max系列)。带宽极高,但容量有限。
- 傲腾持久内存(Optane PMem):这东西已经不产了。如果你手头有,可以当大容量慢速内存用。但新项目不建议碰。
选内存的时候,别忘了看CPU的官方支持内存频率。插了高频率内存,但CPU不支持,它也会降频运行。这个细节,很多新人会忽略。
3.4 网络带宽选型:InfiniBand是王者,RoCE是性价比之选
网络是HPC集群的“血管”。带宽不够,计算节点之间互相等数据,集群效率直线下降。
三种主流方案:
| 方案 | 带宽 | 延迟 | 成本 | 适合场景 |
|---|---|---|---|---|
| InfiniBand (HDR200) | 200 Gbps | < 1 μs | 高 | 强耦合MPI任务、多节点训练 |
| RoCEv2 (25/100GbE) | 100 Gbps | 约2-10 μs | 中等 | 非强耦合任务、弹性扩展 |
| 弹性网卡 (传统TCP/IP) | 10-40 Gbps | 数十μs以上 | 低 | 数据上传、管理流量 |
我的建议:
- 如果集群节点数超过8台,而且跑的是MPI、AllReduce这类通信密集的任务,InfiniBand是唯一选择。别想着用40GbE代替,延迟差一个数量级,任务完成后期的等待时间会让你崩溃。我记得有一次给一个8节点的集群配100GbE,跑NCCL测试,AllReduce带宽只有InfiniBand的70%,后来还是加钱换了HDR。
- 如果节点不多(4台以内),或者任务不依赖节点间强通信,RoCEv2完全可以胜任。成本只有InfiniBand的三分之一。
- 管理网络和存储网络可以共用低成本的万兆以太网,但计算网络和存储网络一定要分开,否则IO流量会冲垮计算网络。
拓扑架构也很重要:
- Fat-Tree(胖树):最常见的拓扑。适合大规模集群,无阻塞。缺点是对交换机端口要求高。
- Dragonfly(蜻蜓):适合超大规模集群,跨组延迟更低。但路由调度复杂,需要硬件支持。
- 直连拓扑(Partial Mesh):小集群省钱方案。每个节点直接连两到三台邻居,路由靠上层软件。
选型示例:
假设我们要部署一个16节点的HPC集群,每节点4张A100 GPU,用户跑的是PyTorch DDP训练。
- 网络方案:InfiniBand HDR200,每节点配1张双端口HCA卡,连接到一个高密度脊交换机。
- 网络拓扑:Fat-Tree,脊层2台交换机,每台64端口,提供无阻塞带宽。
- 备选方案:如果预算有限,可以用RoCEv2+100GbE,但需要配置PFC和ECN对流量进行精细化管控,否则丢包会严重影响多卡通信效率。
最后,别忘了机架内部的布线。现在都用光模块或者DAC线缆了,铜缆在100G以上场景信号衰减厉害。我建议全用AOC有源光缆,虽然贵一点,但故障率低很多。
3.5 一张图串起来:硬件资源选型全景
到了这里,硬件资源规划的各个模块你心里应该有数了。我习惯把每一层的关键参数画成一张图,方便团队内部对齐。下面这张SVG图,就是我对本章内容的一个快速总结:
这张图从左到右,展示了计算节点、加速卡、内存、网络这四个维度,以及它们之间的关联——数据怎么搬、怎么协同、拓扑怎么搭。你把这个图贴在团队白板上,沟通效率至少翻倍。