引言
超算正在成为大模型训练的算力底座,AI 也在反过来改造科学计算——HPC 与 AI 融合是当前计算领域最重要的趋势。一方面,大模型训练需要 HPC 级的高速网络与大规模并行;另一方面,科学模拟开始引入神经网络(科学 ML),HPC 作业与 AI 作业在同一张 GPU 集群上共存。
本文按「为什么融合 → 网络拓扑 → 并行策略 → 框架 → 混合调度 → 科学 ML → 存储 → 案例」讲解 HPC/AI 融合:超算跑大模型训练的网络需求、GPU 集群拓扑(NVLink/InfiniBand)、数据并行与模型并行、Horovod 与 DeepSpeed、HPC/AI 作业混合调度、科学 ML 方法、融合平台的存储与 I/O 挑战,以及超算上的 LLM 训练实践。
前置:/hpc-cuda-mpi-hybrid/(GPU 与 MPI)、/hpc-infini-band/(RDMA 网络)、/hpc-slurm-scheduling/(Slurm 调度)、/hpc-dask-ray-python/(Python 并行框架)。
目录
- 1. 从科学计算到机器学习:融合的必然
- 2. 大模型训练为什么需要 HPC 网络
- 3. GPU 集群拓扑:NVLink 与 InfiniBand
- 4. 分布式训练:数据并行与模型并行
- 5. Horovod 与 DeepSpeed:框架视角
- 6. HPC/AI 作业混合调度
- 7. 科学 ML:把物理定律放进损失函数
- 8. 融合平台的存储与 I/O 挑战
- 9. 案例:超算上的 LLM 训练
- 10. 速查表与一句话记忆
- 延伸阅读
1. 从科学计算到机器学习:融合的必然
两条计算线的历史分叉:
HPC 线:数值模拟——求解 PDE/分子动力学,强调双精度、确定性
AI 线:深度学习——矩阵运算/反向传播,混合精度即可、容错性好
为什么开始融合:算力共享(两者都用 GPU、硬件趋同);数据驱动范式(科学问题开始用「数据 + 模型」);大模型训练规模(需要 HPC 级网络/存储/调度);能效与成本(混合负载让 GPU 利用率更高)。
融合的两条路径:
路径 A:HPC 基础设施跑 AI 训练(超算训练大模型)
路径 B:AI 方法融入科学计算(科学 ML、AI for Science)
融合的挑战:作业特性差异大——HPC 作业长稳、AI 训练弹性;调度与资源管理需要同时服务两类负载;存储 I/O 模式也不同(HPC 大文件顺序读、AI 小文件随机读)。
认知:HPC 与 AI 融合 = 「同一张 GPU 集群,两种计算范式」——超算提供规模化基础设施,AI 提供数据驱动方法论,两者互相成就。
2. 大模型训练为什么需要 HPC 网络
大模型训练的本质是通信密集:每次迭代所有 GPU 要同步梯度(AllReduce),模型越大,梯度越大,通信越频繁。
一个 70B 参数模型(FP16,每参数 2 字节):
□ 全量梯度 ≈ 140 GB,每次迭代都要跨卡/跨节点归约
□ 单机 8 卡 NVLink 都快不够,跨机必须 InfiniBand
□ 通信与计算的比重大幅上升
大模型训练的「三个并行维度」通信特征:数据并行(DP)每迭代一次 AllReduce 梯度,通信量与参数规模正比;张量并行(TP)每层前向/反向做 AllReduce/AllGather,高频小消息;流水线并行(PP)层间边界通信,低频大消息。
为什么普通数据中心网络不行:TCP/以太网延迟高、带宽低,AllReduce 放慢训练;需要 RDMA(InfiniBand/RoCE)内核旁路低延迟;跨节点梯度同步要求几百 GB/s 到 TB/s 级聚合带宽;需要拓扑感知让通信走最短路径避免热点。
HPC 网络能给的:InfiniBand HDR/NDR(400Gbps+)、RDMA 直连 GPU(GPUDirect)、SHARP 交换机构内归约——这些正是大模型训练规模化必备的底座。
记忆:大模型训练 = 「每次迭代都要全网归约」——70B 模型的梯度同步量是 GB 级,普通以太网扛不住,必须 RDMA 低延迟 + 高带宽 + 拓扑感知。
3. GPU 集群拓扑:NVLink 与 InfiniBand
单机内:NVLink。NVIDIA GPU 通过 NVLink 高速互联,构成高带宽低延迟的「GPU 域」。
8×H100 节点:
NVLink 全互联(NVSwitch)→ 卡间带宽 900 GB/s(H100)
对张量并行特别关键:TP 的每层 AllReduce 在 NVLink 域内完成
NVLink 的两种形态:NVSwitch 交换实现 8 卡以上全互联、任意两卡满带宽(数据中心 GPU);直连拓扑是部分互联、卡间带宽受限;NVLink SHARP 在 NVLink 域内做归约减少数据往返。
跨机:InfiniBand。节点间通过 IB 交换机互联,提供低延迟 RDMA。
节点 A ── IB(NDR 400Gbps)── 节点 B
拓扑:Fat-Tree / Dragonfly;每节点 8 GPU 对应 4-8 个 HCA
GPUDirect RDMA:GPU 显存直连网卡,绕过主机内存
NCCL 的作用:把 NVLink 与 IB 的异构拓扑组织成高效的集合通信(AllReduce/AllGather/AlltoAll)——详见 hpc-nccl-collectives。
拓扑设计要点:机内 NVLink 带宽远高于 IB,优先卡内/机内数据交换;TP 放同一节点(NVLink 内)、DP 跨节点(IB),让通信量匹配带宽;保证网卡数量与 GPU 比例使跨机聚合带宽不成为瓶颈;拓扑感知把通信模式与物理拓扑对齐。
记忆:GPU 集群拓扑 = 「机内 NVLink 管高频小消息、机间 IB 管大梯度同步」——TP 放 NVLink 域、DP 跨 IB 域,NCCL 把两级拓扑组织成高效集合通信。
4. 分布式训练:数据并行与模型并行
数据并行(Data Parallelism):每张卡一份完整模型副本 + 不同数据,每迭代各自前向反向后梯度 AllReduce 同步。通信是梯度 AllReduce(数据规模越大越重);扩展受「通信/计算比」限制,模型大到单卡放不下就失效。
模型并行(Model Parallelism):把模型切开,分摊到多卡。
张量并行(TP) :一层内的矩阵切成多块,每卡算一块
流水线并行(PP):按层分段,卡间流水(micro-batch 并行)
序列并行(SP) :长序列沿序列维度切分(Transformer 用)
专家并行(EP) :MoE 的专家分到不同卡,token 路由(AlltoAll)
混合并行(3D 并行):大模型训练实际是多个维度叠加。
TP × PP × DP 三维组合:
□ TP 同节点(NVLink),PP 相邻节点,DP 全集群
□ 例:8×H100 节点 × N 节点 → TP=8(机内)+ PP=层间 + DP=多副本
□ ZeRO/FSDP:分片优化器,把优化器状态/梯度/参数分散,AllGather 按需取
并行策略选择:模型能放单卡就纯 DP(通信最小);单卡放不下则先 TP(机内)再 PP(跨节点)最后 DP 扩规模;MoE 以 EP 为主、DP 辅助;越靠近计算的并行(TP)通信越重但延迟越低。
记忆:分布式训练 = 「数据并行管规模、模型并行管放不下」——DP 每迭代 AllReduce、TP/PP 切模型、3D 并行把 TP 放 NVLink 域、PP 走 IB 域、DP 铺全场。
5. Horovod 与 DeepSpeed:框架视角
Horovod:Uber 开源的分布式训练框架,把「AllReduce 式数据并行」做到简洁——一套 API 对接 PyTorch/TensorFlow。
import horovod.torch as hvd
hvd.init()
model = hvd.DistributedModel(model)
optimizer = hvd.DistributedOptimizer(optimizer)
# 训练循环不变,梯度同步由 Horovod 调度(底层 NCCL/MPI)
Horovod 的 HPC 出身:支持 MPI(可复用 Slurm 的 MPI 环境)、支持弹性训练(容错)、通信融合(多个梯度合并成一个 AllReduce)——是「HPC 人写 AI」的友好入口。
DeepSpeed:微软的大模型训练优化框架,主打 ZeRO 与高效模型并行。
ZeRO 三阶段:
□ ZeRO-1:优化器状态分片(省最多显存)
□ ZeRO-2:+ 梯度分片
□ ZeRO-3(FSDP):+ 参数分片,每卡只留分片,按需 AllGather
DeepSpeed 的通信模式:
□ ZeRO-3:每层前向 AllGather 参数、反向 ReduceScatter 梯度
□ 通信与计算重叠:预取下一层参数
□ MoE 支持:AlltoAll token 路由
□ 算子融合:把多个小 kernel 合成大通信
框架选择:
□ 数据并行 + 简洁:Horovod / PyTorch DDP
□ 大模型 + 显存紧张:DeepSpeed ZeRO / FSDP
□ 极致并行(TP+PP+DP+EP):Megatron-LM + DeepSpeed 组合
□ 科学计算团队:Horovod(MPI 心智模型最顺)
记忆:Horovod 是「MPI 式的 AI 数据并行」、DeepSpeed 是「ZeRO 显存优化 + 模型并行全家桶」——要规模上 DeepSpeed/FSDP,要简洁走 Horovod/DDP。
6. HPC/AI 作业混合调度
同一集群两类负载的调度难题:
HPC 作业:MPI 全节点、长跑、同步屏障、独占性强
AI 作业:弹性训练、可断点续跑、GPU 利用率追求
冲突点:排队策略、资源碎片、检查点、优先级
混合调度策略:
□ 分区隔离:把集群分成 HPC 队列与 AI 队列,各管各
□ 共享调度:Slurm/Kubernetes 统一调度,按策略互借资源
□ 弹性 AI:AI 训练按可用 GPU 数自动调整 batch(elastic)
□ 优先级抢占:AI 训练可被 HPC 紧急作业抢占(检查点恢复)
Slurm 上的 AI 作业:
# AI 训练作业与 HPC 作业同队列
sbatch --gpus=8 --gres=gpu:8 train.slurm # GPU 批处理
salloc --gpus=8 bash # 交互式分配
Kubernetes vs Slurm:
□ Kubernetes:AI 生态友好(Helm/Pod)、弹性伸缩好
□ Slurm:HPC 作业管理成熟(MPI/队列/记账)
□ 趋势:K8s + Slurm 混合(K8s 管服务型 AI、Slurm 管批处理 HPC)
调度公平性:两类作业的排队时间、资源占比需要统一策略(fair-share),避免 AI 挤掉 HPC 或反之。
记忆:HPC/AI 混合调度 = 「分区隔离打底、弹性共享互补」——HPC 要独占批处理、AI 要弹性伸缩;Slurm 管 HPC、K8s 管 AI 服务,检查点让 AI 可被抢占恢复。
7. 科学 ML:把物理定律放进损失函数
科学 ML(Scientific ML / AI for Science):用神经网络求解或加速科学问题,是 HPC 与 AI 融合的另一条主线。
三个范式:代理模型(Surrogate)用 NN 拟合昂贵的数值模拟(如 PDE 求解器);神经算子学习「算子」而非「函数」(FNO、DeepONet 泛化到新输入);物理信息神经网络(PINN)把 PDE 残差放进损失函数约束网络满足物理。
PINN 的核心思想:
损失 = 数据项 + 物理残差项
L = 1/N Σ|NN(x)-y|² + λ/N Σ|∂NN/∂t - PDE(NN, ∂NN/∂x)|²
→ 网络在满足数据的同时也被物理方程约束
科学 ML 为什么需要 HPC:训练代理模型与物理模拟一样吃算力——需要大规模 GPU、检查点、与既有 HPC 工作流(如生成训练数据的大规模模拟)集成。
科学 ML 的落地挑战:标注数据难获得(要跑模拟生成);NN 对未见参数域的外推能力弱;科学决策需要置信区间;某些物理量需要双精度,与 AI 的 FP16 训练冲突。
记忆:科学 ML = 「用 NN 加速科学计算」——代理模型替代求解器、神经算子学映射、PINN 把物理定律写进损失函数;训练规模依然需要 HPC 支撑。
8. 融合平台的存储与 I/O 挑战
HPC 与 AI 的 I/O 模式截然不同:
HPC:大文件顺序读写(检查点、模拟输出),高带宽
AI :海量小文件随机读(训练样本),高 IOPS、需数据预处理管线
融合平台的存储设计:
□ 统一并行文件系统(Lustre/GPFS):两种负载共用,按目录/条带调优
□ 数据缓存层:训练数据热缓存到高速介质(NVMe/GPU 显存)
□ 对象存储 + 预处理:S3/MinIO 存原始数据,训练前转成 TFRecord/WebDataset
□ 检查点存储:大模型检查点 GB~TB 级,需高带宽并行写
大模型训练的 I/O 特征:每 epoch 读完整数据集,数据流水线要覆盖训练速度;检查点需频繁保存大模型权重(GB~TB 级);日志/指标海量小写入,注意别拖垮共享文件系统。
存储优化手段:数据预处理离线做(打成大文件,训练时顺序读);异步 I/O(训练线程与数据加载分离,PyTorch DataLoader workers);本地缓存(节点 NVMe 缓存训练数据减少网络读);分层存储(热 NVMe、温并行 FS、冷对象存储自动分层)。
记忆:融合平台存储 = 「HPC 大文件顺序读 + AI 小文件随机读并存」——并行文件系统兜底、NVMe 缓存热点、对象存储存原始数据、训练数据预处理成顺序读。
9. 案例:超算上的 LLM 训练
典型案例:在超算上训练大模型。以「N 节点 × 8 GPU + InfiniBand + Lustre」的典型超算环境为例。
配置:
□ 硬件:N×8×H100,NDR InfiniBand 400Gbps,Lustre 并行存储
□ 并行:TP=8(NVLink 域内)+ PP=层间流水 + DP=多副本
□ 框架:Megatron-LM + DeepSpeed ZeRO + NCCL
□ 调度:Slurm 申请整个分区,训练作业独占
训练流程:
# Slurm 申请节点
sbatch --nodes=64 --ntasks-per-node=8 --gpus-per-node=8 train.slurm
# 启动分布式训练(Megatron/DeepSpeed)
deepspeed --num_gpus=8 --num_nodes=64 train.py --model-size 70B
关键工程点:通信调优(NCCL 环境变量、拓扑感知);检查点定期保存到 Lustre、作业被抢占可恢复;训练数据预打为 WebDataset 并在节点本地缓存;监控 GPU 利用率、通信带宽、能耗;混合精度用 FP16/BF16 训练 + FP32 主权重。
为什么超算适合 LLM 训练:大模型训练与大规模科学模拟在「规模化通信、长时运行、检查点、批处理调度」上同构——超算的成熟基础设施直接复用。
实测要点:训练吞吐受「通信/计算重叠 + 数据加载 + 检查点开销」共同限制;先测单节点吞吐、再测跨节点扩展,逐层找瓶颈。
记忆:超算跑 LLM = 「TP 机内 + PP 流水 + DP 铺场 + Slurm 调度 + Lustre 检查点」——大模型训练本质是「有状态的长时科学作业」,超算的调度/网络/存储/容错正好都对口。
10. 速查表与一句话记忆
| 需求 | 手段 |
|---|---|
| 梯度同步 | NCCL AllReduce(RDMA) |
| 机内高速互联 | NVLink / NVSwitch |
| 机间互联 | InfiniBand(NDR 400Gbps+) |
| 单卡放不下 | TP(机内)+ PP(流水线) |
| 显存优化 | DeepSpeed ZeRO / FSDP |
| 数据并行 | Horovod / PyTorch DDP |
| 弹性训练 | elastic Horovod / 自适应 batch |
| 混合调度 | Slurm 分区 + K8s(AI 服务) |
| 科学 ML | PINN / 神经算子 / 代理模型 |
| 数据流水线 | WebDataset + NVMe 缓存 + 异步加载 |
| 检查点 | Lustre 并行写 + 定期保存 |
| 容错 | 检查点恢复 + 弹性重分配 |
一句话记忆:HPC 与 AI 融合 = 「超算的基础设施 + AI 的并行范式」——NVLink 管机内 TP、InfiniBand 管跨机梯度同步、ZeRO 管显存、Slurm/K8s 混合调度两类作业、PINN 把物理写进损失函数、Lustre 存好检查点——大模型训练就是「有状态的长时科学作业」。
延伸阅读
- /hpc-cuda-mpi-hybrid/ — GPU 与 MPI 混合编程
- /hpc-infini-band/ — InfiniBand 与 RDMA 原理
- /hpc-slurm-scheduling/ — Slurm 调度与队列
- /hpc-dask-ray-python/ — Python 并行框架
- /hpc-nccl-collectives/ — NCCL 集合通信与网络优化
- [[hpc]] — 高性能计算专题
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。