大语言模型的分布式训练依赖高性能计算集群(HPC)完成,其架构设计需综合考虑分布式系统 、大语言模型结构、优化算法。本文详细解析分布式训练的两种核心集群架构 ——参数服务器架构与去中心化架构,并探讨硬件组成、通信瓶颈及优化方案。
一、高性能计算集群的硬件组成
1.1 典型硬件架构
分布式训练集群的硬件以多层树状拓扑为基础,核心组件包括:
服务器:单台服务器通常搭载 2-16 个计算加速设备(如 GPU/TPU),负责模型计算。
机柜与交换机:
架顶交换机(ToR):连接同一机柜内的服务器。
骨干交换机(Spine Switch):跨机柜通信,构建多层树状网络拓扑(如图 4.18 所示)。
高速网络:采用 InfiniBand(IB)技术,单链路带宽可达 200Gbps/400Gbps,NVIDIA DGX/HGX 服务器通过 NVLink 实现单机内 1.6Tb-3.2Tb 带宽。
1.2 通信瓶颈与优化
跨机柜通信挑战:以 GPT-3 为例,1024 卡集群单轮训练需传输 89.6TB 梯度数据,传统多层树拓扑易导致网络拥塞。
拓扑优化:采用胖树(Fat-Tree)拓扑实现无收敛带宽,结合 InfiniBand 高速网络降低延迟。
服务器内通信:PCIe 5.0 总线带宽仅 128GB/s,远低于 GPU 显存带宽(如 H100 HBM 达 3.35TB/s),因此 NVIDIA HGX 服务器通过NVLink+NVSwitch实现 GPU 间直接通信(如图 4.19 所示)。
二、参数服务器架构(Parameter Server, PS)
2.1 角色与流程
双角色分工:
参数服务器(PS 节点):存储模型参数,负责梯度聚合与参数更新,需高内存与通信能力。
训练服务器(Worker 节点):执行前向 / 反向计算,推送梯度至 PS 节点,需高计算能力。
典型流程(以 2 训练服务器 + 2 参数服务器为例):
训练服务器处理数据分片,计算梯度并推送至对应 PS 节点。
PS 节点等待所有梯度到达后,计算平均梯度并更新参数。
PS 节点通知训练服务器拉取新参数,启动下一轮迭代(如图 4.20 所示)。
2.2 同步与异步训练模式
同步训练:
优势:参数更新一致,训练结果稳定。
缺点:需等待所有 Worker 完成计算,速度较慢。
异步训练:
优势:无需等待,训练速度显著提升。
缺点:梯度更新存在延迟,可能导致训练波动。
选择策略:根据模型收敛要求权衡,大规模训练常采用异步模式提升效率。
三、去中心化架构(Decentralized Network)
3.1 核心思想与通信原语
无中心节点:所有节点平等通信,通过集合通信(Collective Communication)实现梯度同步与参数更新,避免单点瓶颈。
关键通信原语介绍
Broadcast(广播):主节点向所有节点发送相同数据(如模型初始化参数

Scatter(散射):主节点将数据分片发送至不同节点。
Reduce(归约):将多节点数据聚合至单节点(如求和、求平均)。
All Reduce(全归约):所有节点参与聚合,最终各节点均获得相同结果。
Gather/All Gather:收集多节点数据至单节点 / 所有节点。

Reduce Scatter/All to All:数据切分后分发至多节点处理。

3.2 通信库与框架实现
常用通信库:
PyTorch 分布式通信示例:
# 初始化分布式环境
import torch.distributed as dist
def init_process(rank, size, fn):
os.environ["MASTER_ADDR"] = "127.0.0.1"
os.environ["MASTER_PORT"] = "29500"
dist.init_process_group(backend="nccl", rank=rank, world_size=size) # 使用NCCL backend
fn(rank, size)
# All Reduce通信示例
def do_all_reduce(rank, size):
tensor = torch.tensor([rank + 1])
dist.all_reduce(tensor, op=dist.ReduceOp.SUM) # 所有节点求和
print(f"Rank {rank}: Result = {tensor.item()}") # 输出均为10(1+2+3+4)
# 启动4个进程
if __name__ == "__main__":
size = 4
mp.set_start_method("spawn")
processes = []
for rank in range(size):
p = mp.Process(target=init_process, args=(rank, size, do_all_reduce))
p.start()
processes.append(p)
for p in processes:
p.join() 四、两种架构对比与选型建议
选型建议:
中小规模模型或参数更新密集型任务:优先参数服务器架构。
大规模分布式训练(如千亿参数模型):采用去中心化架构,结合 NCCL 通信库与胖树拓扑优化通信效率。
五:连接接口:
InfiniBand (IB):专为高性能计算设计的网络协议和硬件标准。
核心技术:RDMA。允许服务器内存直接访问另一台服务器的内存,完全绕过CPU和操作系统,实现极低延迟和高带宽。
特点:高性能、低延迟、高吞吐量、内置网络计算能力(如NVIDIA的SHARP)。
高性能以太网 (RoCEv2 / iWARP):
RoCEv2:在标准以太网上实现RDMA的技术。需要支持无损传输的网络环境(如PFC、ECN等流控技术)。
iWARP:另一种在TCP/IP协议上实现RDMA的标准,但不如RoCEv2普及。
特点:基于广泛使用的以太网生态,成本通常低于同带宽InfiniBand,但对网络配置要求高,延迟通常略高于InfiniBand。
Unified Bus:华为Unified Bus (UB/灵衢) 的核心使命是构建数据中心级计算机,推倒计算机体系结构中总线与网络之间的墙。它旨在创造一种既拥有总线级的编程简易度和极致性能(纳秒/微秒级延迟、高带宽、内存语义),又具备网络级超大规模扩展能力的统一互联范式。137
因此,它的应用范围自然覆盖了服务器间的连接,即“Scale-Out”场景。它通过“Jetty”等抽象概念和“UB-Mesh”拓扑结构,专门设计用于构建包含数千乃至上万张算力卡的超大规模集群。
Unified Bus与InfiniBand、RoCEv2的技术对比
典型应用与选择建议
选择华为Unified Bus (灵衢) 的场景:
构建全新、超大规模AI算力集群,特别是以华为昇腾NPU为核心的全栈国产化解决方案。
追求 “数据中心即计算机” 的愿景,需要将整个集群的算力、内存、存储资源深度池化,实现像单机一样的极简编程和管理。110
对技术自主可控和开源开放有强烈要求。
选择InfiniBand的场景:
对极致且稳定的性能有绝对要求,且预算充足。
构建以英伟达GPU为核心的集群,并希望获得其NVLink+IB的最佳软硬件协同性能。
应用于对延迟极其敏感的尖端科学计算或金融交易场景。
选择RoCEv2的场景:
希望平衡性能与成本,充分利用现有或主流的以太网数据中心基础设施。
集群规模极大,且网络流量模型相对复杂,需要与通用业务网络融合。
技术团队熟悉以太网运维,能够对无损网络进行精细调优。
总结
华为Unified Bus是一种面向未来的、具有革命性的互联方案,它通过统一总线和网络的范式,直接瞄准了AI算力集群的核心痛点。它不仅能用于服务器间连接,更是为此而生。与深耕高性能网络的InfiniBand和基于开放以太网的RoCEv2相比,UB的差异化优势在于其“统一内存语义”的编程模型和开源开放的生态战略。
简而言之:
追求极致性能与成熟度,选 InfiniBand。
追求成本与通用性平衡,选 RoCEv2。
追求架构革新、自主可控与资源深度池化,并采用昇腾生态,选 华为Unified Bus。
评论 (0)