MINIBLOG

Blog Note Tags Links About
Home Search
Jun 16, 2026
miniyuan

在网计算


在网计算概念

动机:AI/HPC 并行编程中 AllReduce 为全局通信瓶颈,Host-centric 方案(PS、Ring AllReduce)受限于网卡带宽与端侧处理能力,将计算下沉到交换机/网卡可在转发路径上消除冗余流量。

核心约束:

约束含义影响
资源有限交换机片上存储与计算单元极少聚合器数组容量受限
有状态需维护聚合窗口、未确认状态状态膨胀将阻塞后续聚合
可靠性丢包、ACK 丢失不可避免需保证聚合结果正确性与一致性

设计空间:

维度选项
下沉位置交换机(SwitchML / ATP)/ 网卡侧近端(NetReduce)
聚合粒度向量级 / 包级 / 块级
可靠性机制端侧重传 / 网内 ACK / 超时清空

分布式训练通信

数据并行训练迭代:

  1. 各 Worker 计算本地梯度
  2. 聚合所有 Worker 梯度(AllReduce)
  3. 各 Worker 用全局梯度更新模型

AllReduce:跨主机对向量逐元素求和,并将结果返回所有主机。广泛存在于数据并行与张量并行中。

Host-centric 方案对比

方案拓扑通信模式流量特征瓶颈
Parameter Server (PS)星型Worker → PS → WorkerPS 侧流量为 Worker 总和PS 单点瓶颈与流量汇聚
Ring AllReduce环型两轮环传递每节点收发各 2 份数据量环延迟累积,总流量翻倍

Ring AllReduce 第一轮沿环累加中间结果(Scatter-Reduce),第二轮沿环分发最终值(AllGather);两轮向量传递使总流量为 2 × 数据量。

网内梯度聚合

SwitchML

核心机制:在交换机内维护聚合器数组,对经过的梯度数据包执行逐元素累加,替代 PS 或环聚合。

关键参数:

  • 聚合器数组大小:交换机可并发维护的聚合槽位数
  • 窗口大小:允许未确认(未收到 ACK)的并发聚合任务数

理想流程:

Worker 1: [0][1][2][3][4][5] ──→
                                      交换机: [0][1] 逐包累加 ──→ 回传聚合结果
Worker 2: [0][1][2][3][4][5] ──→
                聚合器数组大小 = 2,窗口大小 = 2

可靠性问题——ACK 丢失:

  • 正常情况下:聚合器数组大小 = 窗口大小(如 2),聚合完成后收到 ACK 即释放槽位
  • ACK 丢失后:交换机无法确认聚合完成,槽位无法释放,聚合器数组膨胀(如增至 4)
  • 解决:检测到异常后清空聚合器数组,回退到端侧重传,避免状态无限增长

NetReduce

核心机制:基于 RoCE NIC 的网内聚合,利用 RDMA 连接在交换机处对数据包 payload 进行累加。

架构组件:

  • RoCE NIC:支持 RDMA 的网卡,绕过内核直接内存访问
  • Ethernet Switch:嵌入聚合逻辑,维护 packet buffer

数据包格式:

Packet: [header | payload] [header | payload] [header | payload] ...

工作流程:

  1. 建连:Worker 与交换机、Worker 之间建立 RDMA 连接
  2. 发送:Worker 发送梯度数据包(gradients)到交换机
  3. 聚合:交换机在 packet buffer 中对齐累加同序号 payload
  4. 回传:将聚合结果发送回对应连接
  5. ACK:ACK 沿反向路径原样返回,不修改内容

ATP

核心机制:细粒度包级聚合,交换机维护多列聚合器,支持多 Worker 异步到达。

理想情况:

  • 各 Worker 发送的数据包按列对齐(如 a1, b1, c1, d1 等列)
  • 交换机对同一列的多个 Worker 数据执行 +a1+a2+…+an

丢包处理:

场景现象处理
部分到达某列仅收到部分 Worker 数据超时后发送部分聚合结果
重复/冗余重传包与已聚合包序号重复消冗余:丢弃已聚合序号的数据
重传聚合重传包再次进入聚合器禁止开启聚合:重传报文直接转发,不触发累加

状态管理:

  • 聚合器数组按数据包序号索引
  • 每列聚合完成或超时后向下转发
  • 重传包标记为”非聚合”,避免重复累加导致结果错误

其他在网计算应用

网内键值聚合

场景:分布式系统(如参数服务器、推荐系统)中多 Worker 向中心节点发送键值对更新。

在网优化:交换机对同 Key 的 Value 执行归约(如求和、取最值),减少上传至 Server 的流量。

Worker 1: [d1][c1][b1][a1] ─┐
Worker 2: [d2][c2][b2][a2] ─┼→ Switch: 按列聚合 ─→ Server: [Σd][Σc][Σb][Σa]
Worker n: [dn][cn][bn][an] ─┘

本质:将 PS 的聚合计算从 Server 下沉到 Switch,缓解 Server 侧 CPU 与网卡瓶颈,实现网内归约(In-network Reduction)。

目录
  • 在网计算概念
  • 分布式训练通信
  • Host-centric 方案对比
  • 网内梯度聚合
  • SwitchML
  • NetReduce
  • ATP
  • 其他在网计算应用
  • 网内键值聚合
© 2026 miniyuan. All rights reserved.
Go to miniyuan's GitHub repo