TPS186 通信原语对比评估报告
评估配置
并行与带宽参数:
| 参数 | 值 | 参数 | 值 | 参数 | 值 |
|---|---|---|---|---|---|
| total_chips | 64 | tp | 2 | intra_bw | 400 GB/s |
| dp | 32 | ep | 64 | bw_urate | 0.90 |
@tbl-val-parallel-bw TPS186 并行与带宽参数
延迟参数:
| 参数 | 值 (us) | 含义 |
|---|---|---|
| c2c_lat | 0.200 | chip-to-chip 链路单向传播延迟 |
| ddr_r | 0.150 | DDR 读延迟 |
| ddr_w | 0.010 | DDR 写延迟 |
| noc | 0.050 | 片内 NoC 转发延迟 |
| d2d | 0.040 | die-to-die 互联单向延迟 |
| switch_delay | 1.000 | 交换机内部转发延迟(store-and-forward) |
| cable_delay | 0.025 | 芯片<->交换机一段链路传播延迟 |
@tbl-val-hw-latency 硬件延迟参数
派生延迟参数(聚合后参与 Math 公式):
| 参数 | 值 (us) | 公式 | 适用场景 |
|---|---|---|---|
| start_lat | 0.690 | $2 \cdot c2c\_lat + ddr\_r + ddr\_w + noc + 2 \cdot d2d$ | 所有原语的启动开销 |
| switch_lat | 2.050 | $2 \cdot (switch\_delay + cable\_delay)$ | 仅经交换机的全局通信(MoE) |
@tbl-val-derived-latency 派生延迟参数
通信原语与并行维度:
| Module | 通信原语 | 并行维度 | 参与芯片数 | 验证拓扑 |
|---|---|---|---|---|
| Dense_MLP | allreduce | TP=2 | 2 | Ring |
| MLA | allgather / reducescatter / allreduce | TP=2 | 2 | Ring |
| DSA | topk_allgather | TP=2 | 2 | Ring |
| MoE | dispatch / combine (all-to-all) | EP=64 | 64 | Single-Switch |
| LMHead | allreduce | TP=2 | 2 | Ring |
@tbl-val-primitives-by-module TPS186 各模块通信原语与并行维度
TP 组内通信无交换机参与,对应 Math 中只含 start_lat 的公式;EP 全局通信经过单层交换机,对应 Math 中加 switch_lat 的公式。
板级模型:每 8 颗芯片视为一个 board(CHIPS_PER_BOARD = 8),板内 8 颗芯片通过 c2c full-mesh 直连,板间走外部拓扑(ring / fat-tree / dragonfly 等)。板内/板间链路类型相同(c2c,400 GB/s, 0.025 us),仅由路由根据跳数选择最短路径。
通信组与并行策略
64 个芯片上,TP 和 EP 将芯片划分为不同的通信组(communicator),各自执行不同的通信原语。
| 并行策略 | 典型通信组大小 | 主要通信原语 | 通信特性 |
|---|---|---|---|
| TP(张量并行) | 2, 4, 8 | AllReduce, AllGather, ReduceScatter | 确定性,全组参与 |
| EP(专家并行) | 8, 16, 32, 64 | AllToAll | 每芯片总发送量确定,目标分布由路由决定 |
@tbl-val-parallel-strategy TP / EP 并行策略与典型通信原语
TP 和 EP 是独立的并行维度,作用于不同的网络层(TP 作用于注意力层,EP 作用于 MoE 层),复用同一批芯片。EP 的详细机制参见专家并行。
通信组划分
通信组由连续的芯片 ID 组成。TP 组大小由部署配置决定(TPS186 中 TP=2),EP 组大小同理(TPS186 中 EP=64 = 全部芯片)。不同通信组在拓扑上的物理位置不同,是否可以用一个组代表全部取决于具体拓扑的对称性,在各拓扑评估文档中说明。
EP 通信量
EP dispatch/combine 的每芯片通信量由模型参数确定:
M_dispatch = ceil(batch_tokens * top_K / EP) * hidden_dim * dispatch_dtype_bytes
M_combine = ceil(batch_tokens * top_K / EP) * hidden_dim * combine_dtype_bytes
TPS186 配置(batch=1024, top_K=8, EP=64, hidden=7168):
- dispatch:
128 * 7168 * 1 = 917,504 bytes(INT8 量化 activation) - combine:
128 * 7168 * 2 = 1,835,008 bytes(BF16 输出)
每芯片的总发送量是确定的,但发给哪些目标芯片由 top-K 路由决定。在通信原语层面,业界主流实现(NCCL、MPI)使用标准 AllToAll 算法(Pairwise 或 Bruck)调度 dispatch/combine。
评估方法说明
TP 评估:TP 通信是确定性的(AllReduce/AllGather/ReduceScatter),每个芯片向全组广播或归约,通信量和模式完全确定。直接扫描消息大小 × 算法 × 拓扑。
EP 评估:EP 的 dispatch/combine 语义上是 AllToAllv(每对芯片通信量由路由决定),但:
- 生产模型通过负载均衡机制使路由趋向均匀
- 业界 AllToAllv 实现使用标准 AllToAll 算法(Pairwise/Bruck)调度
- 每芯片总发送量是确定的,不确定的只是目标分布
因此拓扑评估中 EP AllToAll 使用均匀消息大小,对比 Pairwise 和 Bruck 算法在不同拓扑上的延迟。消息大小覆盖 dispatch 和 combine 的典型范围。
评估局限:通信原语评估只衡量 AllToAll 通信本身的延迟。生产部署中 EP 通信的端到端性能还受以下因素影响:
- 通信-计算重叠(DualPipe 等)
- 减少通信量(节点限制路由、专家镜像、拓扑感知路由)
- 避免 AllToAll(block-sparse 重构)
- 专用通信库(DeepEP、NCCL EP)
本评估提供的是 AllToAll 算法在各拓扑上的延迟基准,用于指导算法选择和拓扑评估。
Math 模型公式
Alpha-Beta 模型的两个派生参数:
$$\begin{equation} \alpha_{\text{start}} = 2 \times c2c\_lat + ddr\_r + ddr\_w + noc + 2 \times d2d = 2 \times 0.2 + 0.15 + 0.01 + 0.05 + 2 \times 0.04 = 0.69 \; \mu s \label{eq:val-start-lat} \end{equation}$$ $$\begin{equation} \alpha_{\text{switch}} = 2 \times (switch\_delay + cable\_delay) = 2 \times (1.0 + 0.025) = 2.05 \; \mu s \label{eq:val-switch-overhead} \end{equation}$$公式中 $M$ = 总搬运量(对应表格"Size (bytes)"列),$N$ = 参与通信的芯片数。各原语完整推导见:
ReduceScatter / AllGather:
$$\begin{equation} T_{\text{AG/RS}} = \frac{N-1}{N} \cdot \frac{M}{\beta \cdot u} + (N-1) \, \alpha_{\text{start}} \label{eq:val-agrs-latency} \end{equation}$$AllReduce(= RS + AG 两阶段):
$$\begin{equation} T_{\text{AR}} = 2 \cdot \frac{N-1}{N} \cdot \frac{M}{\beta \cdot u} + 2 (N-1) \, \alpha_{\text{start}} \label{eq:val-ar-latency} \end{equation}$$MoE dispatch / combine(AllToAll,经单层交换机):
$$\begin{equation} T_{\text{MoE}} = \frac{M}{\beta \cdot u} + \alpha_{\text{start}} + \alpha_{\text{switch}} \label{eq:val-moe-latency} \end{equation}$$Math 表格自洽校验
将表格中的 (M, repeat) 代入对应公式:AR 用 $\eqref{eq:val-ar-latency}$,AG/RS 用 $\eqref{eq:val-agrs-latency}$,MoE 用 $\eqref{eq:val-moe-latency}$。M 为该集合通信操作的全量数据大小(与 集合通信文档 M 定义一致)。
| Module | Operator | Primitive | Size (bytes) | Repeat | 原值 (us) | 修正后 (us) |
|---|---|---|---|---|---|---|
| Dense_MLP | allreduce | allreduce | 458,752 | 3 | 1.9643 | 2.6543 |
| MLA | allgather | allgather | 1,179,648 | 61 | 3.9668 | 2.3284 |
| MLA | reducescatter | reducescatter | 1,048,576 | 61 | 3.6027 | 2.1457 |
| MLA | allreduce | allreduce | 458,752 | 61 | 1.9643 | 2.6543 |
| DSA | topk_allgather | allgather | 32,768 | 61 | 0.7810 | 0.7355 |
| MoE | dispatch | alltoall | 917,504 | 58 | 5.2886 | 5.2886 |
| MoE | combine | alltoall | 1,835,008 | 58 | 7.8372 | 7.8372 |
| LMHead | allreduce | allreduce | 458,752 | 1 | 1.9643 | 2.6543 |
@tbl-val-math-selfcheck Math 模型表格自洽校验(原值来自 CHIPMathica comm_protocol.py / 历史 Excel;修正后按 集合通信文档 spec 真值公式重算)
修订说明(2026-05-12):原值有两类错误:
- AR 行:CHIPMathica
allreduce()用 $(N-1)\alpha$ 系数(漏算一倍)—— N=2 时差 0.69 us。修正后用 $2(N-1)\alpha$(NCCLtuning.cc、Thakur 2005, arXiv 2510.03491 业界实现均如此) - AG / RS / topk_AG 行:CHIPMathica
allgather()公式漏 $/N$(直接用 $(N-1) \cdot M$ 算 wire,等价于把 M_total 当作 shard 处理),RS 行在 Excel 中也套用了同样的 buggy 形式。修正后用 $(N-1)/N \cdot M$ 系数,N=2 时 wire 量减半
MoE dispatch/combine 是 AllToAll 单步过交换机,无 Ring 系数,原值和修正后一致。
G5 仿真 vs Math(Baseline 验证)
G5 参数对齐
| 参数 | G5 设置 | 来源 |
|---|---|---|
| c2c link BW | 400 GB/s | 配置 intra_bw |
| c2c link latency | 0.200 us | 对齐 Math c2c_lat(含 SerDes/MAC/FEC 协议层;物理传播 25 ns 由独立链路时延承担) |
| CDMA bandwidth_per_cdma | 64 GB/s | 单 CDMA 带宽 |
| CDMA startup_latency_ns | 290 ns | ddr_r(150) + ddr_w(10) + noc(50) + 2*d2d(80),仅对 Transfer/Send/Receive 生效 |
| switch forwarding_latency | 1000 ns | 对齐 Math 的 switch_delay = 1.0 us |
@tbl-val-g5-params G5 仿真参数对齐 Math 的设置
CDMA startup 290ns = $\alpha_{\text{start}}$ 去掉 $2 \times c2c\_lat$(G5 由链路延迟 + PAXI 协议独立建模)。msg-only 指令(MsgSend / MsgWait / RemoteMsgSend / Fence)不读写 GMEM,不付 startup latency;它们的延迟由各自路径(A4S 32-bit handshake、msg_central 累加)独立建模。
Baseline 对比结果
TP 组(N=2)跑在 Ring 上,EP 组(N=64)跑在 single-switch 上:
| Module | Operator | N | Topo | Size (MB) | Math (us) | G5 (us) | G5/Math |
|---|---|---|---|---|---|---|---|
| Dense_MLP | allreduce | 2 | ring | 0.4375 | 2.654 | 2.817 | 1.06x |
| MLA | allgather | 2 | ring | 1.125 | 2.328 | 2.337 | 1.00x |
| MLA | reducescatter | 2 | ring | 1.000 | 2.146 | 2.162 | 1.01x |
| MLA | allreduce | 2 | ring | 0.4375 | 2.654 | 2.817 | 1.06x |
| DSA | topk_allgather | 2 | ring | 0.0312 | 0.736 | 0.786 | 1.07x |
| MoE | dispatch | 64 | single-switch | 0.875 | 5.289 | 5.972 | 1.13x |
| MoE | combine | 64 | single-switch | 1.750 | 7.837 | 7.843 | 1.00x |
| LMHead | allreduce | 2 | ring | 0.4375 | 2.654 | 2.817 | 1.06x |
@tbl-val-baseline-vs-g5 Baseline 通信原语 Math vs G5 延迟对比(qp_id 编码契约 + emit_pair_transfer write+msg 路径修复后)
结论:G5 与 Math 在 8 条原语上比值范围 1.00 ~ 1.13x:
- TP=2 AR 偏慢 6%:G5/Math = 1.06x。qp_id 编码契约修复后跨 chip 同步严格遵循 SG2262 spec L294 "write+msg 显式同步"路径(前序 MsgWait + Transfer + RemoteMsgSend),剩余 6% 偏慢源自 PAXI 分段尾部串行化 + A4S 握手累加,符合"指令级仿真比代数模型保守"预期。
- TP=2 AG / RS 几乎一致:G5/Math = 1.00 ~ 1.01x。N=2 Ring 单步通信下两者契合度极高。
- TP=2 topk_AG 略偏慢 7%:G5/Math = 1.07x。小消息(32 KB)下 Math 的 α 占总时长 94%,hash ITLV 在小消息下的统计性碰撞让部分 LG 偏忙。
- EP=64 alltoall 偏慢 0 ~ 13%:G5/Math = 1.00 ~ 1.13x。combine(大消息 1.75 MB)几乎完美对齐;dispatch(中消息 0.875 MB)偏慢 13% 源自 switch 端口在 64 路 hash 散布下的瞬时排队尾部,Math 假设交换机延迟固定可加。
Bus Bandwidth 指标定义
Bus bandwidth(busbw)按 NCCL 业界惯例定义:将原语延迟反推到 "等效单链路带宽消耗",因子由算法决定。本评估按 NCCL Tests 文档 的因子:
$$\begin{equation} \text{busbw} = \frac{M \cdot f(N)}{T} \label{eq:val-busbw} \end{equation}$$其中 $f(N)$ 为算法相关因子:
| 原语 | 因子 $f(N)$ | 物理含义 |
|---|---|---|
| AllReduce | $2(N-1)/N$ | RS + AG 两阶段,每节点收发 $M$ 同时进行 |
| AllGather | $(N-1)/N$ | 每节点贡献 $M/N$,wire 总量 $M(N-1)/N$ |
| ReduceScatter | $(N-1)/N$ | 与 AG 对称 |
| AllToAll | $(N-1)/N$ | 每节点发出 $M(N-1)/N$ 到其它节点 |
| P2P | $1$ | 直接传输 |
@tbl-val-busbw-factors NCCL 业界 busbw 因子定义
busbw 是跨算法可比指标——同一消息大小下,不同算法的 algbw(algorithm bandwidth, $M/T$)相差很大(如 N=2 AR 的 algbw 是 AG 的一半),但 busbw 反映了 wire 上实际承载的字节,可直接对比硬件链路带宽利用率。
差异分析
| 因素 | Math 模型 | G5 仿真 |
|---|---|---|
| 数据传输 | $M / (\beta \cdot u)$ 一次到位 | CDMA 64GB/s 门控注入 + 多 CDMA 并行 + PAXI 分包 |
| 启动延迟 | $\alpha_{\text{start}} = 0.69$ us 一次性 | CDMA startup 290ns + PAXI 事务开销 |
| 交换机延迟 | $\alpha_{\text{switch}} = 2.05$ us(固定) | forwarding_latency 1000 ns(已对齐 Math)+ 端口仲裁/排队 |
| 带宽利用 | 假设 $u = 0.9$ | 受 CDMA 数量、链路带宽、交换机端口共同约束 |
| 模型定位 | 理想上界(最优传输效率) | 指令级仿真(含协议、流控、CDMA 硬件约束) |
@tbl-val-math-vs-g5-factors Math 与 G5 在主要建模因素上的差异
主要偏差来源(qp_id 编码契约修复后):
- TP=2 AllReduce G5 偏慢 6%(1.06x):AllReduce 走 RS + AG 两阶段 dep chain,每阶段 1 次跨 chip pair transfer。qp_id 编码契约修复后跨 chip 同步严格按 SG2262 spec L294 "write+msg 显式同步"路径展开(前序 MsgWait + Transfer + RemoteMsgSend),qp_id 编码契约
(cdma_id<<2)|vc_bank与硬件 PAXI RCLINK Source_qpid 一致。剩余 6% 偏慢源自 PAXI 分段尾部串行化(最后一帧最慢 LG)+ A4S 握手累加。 - TP=2 AllGather/ReduceScatter G5 几乎一致(1.00-1.01x):N=2 Ring 单步通信,G5 实测与 Math 公式吻合到 < 1%。
- TP=2 topk_AllGather G5 略偏慢 7%(1.07x):小消息(32 KB)下 Math 的 $\alpha$ 占总时长 94%,hash ITLV 在小消息下的统计性碰撞让部分 LG 偏忙。
- EP=64 dispatch G5 偏慢 13%(1.13x):64 路 hash 在 switch 端口的瞬时排队尾部超过 Math 单 α 上界;combine(更大消息 1.75 MB)的尾部排队被传输时间摊薄,回到 1.00x。
- N=2 跨算法等价性达成:见 §N=2 跨算法等价性 章节,ring / ring_2port / RH / RD / HD 在 1MB 各原语上 max-min = 0 ns,验证 qp_id 不再受软件 thread_id 干扰。