文章

把集合通信从计算核搬走:Meta HCCL 与 MTIA 300 的软硬件协同设计

深度解读 Meta HCCL 与 MTIA 300:专用 Message Engine、近存计算、片上 RDMA NIC、编译式通信子图、拓扑感知算法,以及训练 940 GB/s、推理亚 6 微秒背后的真实口径与工程代价。

把集合通信从计算核搬走:Meta HCCL 与 MTIA 300 的软硬件协同设计

论文:Wesley Bland 等 66 位 Meta 作者,HCCL: Collective Communication for Meta Training and Inference Accelerators,arXiv:2608.00358,2026-08-01;论文计划发表于 SC 2026。

名称说明:本文的 HCCL 是 Meta 的 Hoot Collective Communication Library,不是华为昇腾生态中同名的 HCCL。

发布说明:该论文使用 arXiv 非独占分发许可,并未向第三方授予完整转载或翻译权。因此本文不复制英文全文、完整中文译文或论文原图,而是由 ChatGPT/Codex 在完整阅读 12 页论文并核对 17 幅图表后完成原创技术综述。文中架构图为本站依据论文公开信息独立绘制。


先给结论:HCCL 的关键不是“又一个 NCCL”,而是改变谁来执行通信

大多数 GPU 集合通信库把 AllReduce、AllGather 或 AllToAllv 实现成运行在 GPU 计算核上的通信 kernel。网络数据传输可以由 NIC 完成,但集合算法的推进、依赖管理、分块和部分归约仍会占用 GPU 的 SM、寄存器、片上存储与调度资源。

Meta 在 MTIA 300 上选择了另一条路线:把网络直接集成进加速器封装,再增加 16 个专用 Message Engine(ME)Near-Memory Compute(NMC)。HCCL 在主机侧把一次集合通信编译成完整的 work packet、子图和 WQE 依赖链,交给 ME 自主执行。训练期间,计算 PE 阵列可以继续跑 GEMM,通信引擎同时驱动片上 RDMA NIC 和 NMC 做数据搬运与归约。

这使 HCCL 在单机架内达到最高 940 GB/s 的论文报告带宽,同时与大 GEMM 并行运行时,计算吞吐下降约 0.5%。但推理的小消息延迟又暴露出“编译并调度完整子图”太重,于是 Meta 增加了 PE 直接发起的单边通信、device-resident collective 和 device-triggered collective,最终把优化路径的小消息集合通信压到 6 μs 以下

因此,HCCL 最值得关注的不是单个峰值,而是三个设计判断:

  1. 集合通信可以拥有独立于张量计算阵列的执行资源;
  2. 训练吞吐与推理延迟需要不同的数据路径,不能由同一套调度机制包打天下;
  3. 通信库、编译器、内存系统、NIC 和机架拓扑必须共同设计,软件算法无法补救所有硬件路径成本。

一、为什么推荐系统比大模型更依赖 AllToAllv

MTIA 300 主要面向 Meta 的排序与推荐训练。此类模型包含巨大的 embedding table;每个样本访问的 embedding、路由目标和数据量并不固定,因此通信模式与以密集矩阵计算为主的模型不同。

  • AllToAllv:各 rank 向其他 rank 发送不同长度的数据,适合交换按需查找的 embedding 或 MoE token;不规则性使负载均衡和接收端准备更困难。
  • AllReduce:在反向传播中聚合梯度,通信量较规则,适合 ring、tree 或分层算法。
  • AllGather:收集分散在不同 rank 的参数或优化器相关数据。

论文展示的真实负载分布集中在中到大尺寸 collective:40-rank 与 256-rank 推荐模型中,大尺寸 AllToAllv、AllReduce 和 AllGather 占据主要时间。这个分布解释了为什么 MTIA 300 的第一目标是饱和带宽并与计算重叠,而不是先追求几 KB 消息的最低延迟。

这也是理解后续数据的前提:940 GB/s 是为大消息训练路径优化出来的结果,不能直接代表推理 token 路由的尾延迟。

二、MTIA 300 为 HCCL 准备了什么硬件

Meta HCCL 与 MTIA 300 集合通信原创架构图

图 1:本站原创的 HCCL 执行路径。它重新组织论文中的文字信息,用于解释控制面、数据面及训练/推理分流,不复制论文 Figure 1-17,也不按芯片物理尺寸绘制。

1. 网络不再挂在主机 PCIe 之外

MTIA 300 封装包含两个 network chiplet,每个 chiplet 集成 6 个定制 800 Gb/s RDMA NIC。初始系统配置为每颗 MTIA 300 使用:

  • 8 个 NIC 连接 scale-up 网络,合计 800 GB/s
  • 2 个 NIC 连接 scale-out 网络,合计 200 GB/s
  • 总聚合带宽 1 TB/s
  • 另有 2 个 NIC 可供未来配置,理论上可把 I/O 提高到 1.2 TB/s

这里 800 Gb/s 是单个 NIC 的比特率,换算为字节率约 100 GB/s;10 个活动 NIC 对应 1 TB/s。NIC 与加速器缓存/HBM 通过封装内部网络相连,不必走传统的“设备—PCIe—主机/NIC”路径。

NIC 的 scale-up/scale-out 角色不是完全固化的。Meta 可以根据模型通信特征、功耗和计算成本重新分配链路,这说明 MTIA 300 把机架网络配置也纳入了芯片协同设计。

2. CPU-C 负责顺序,不负责搬数据

应用把计算和通信操作放入 stream 后,设备控制核 CPU-C 维护同一 stream 内的顺序以及跨 stream 依赖。对于 collective,CPU-C 接收一个 work packet,再把其中的多个子图分派给指定 ME。

CPU-C 的角色更像设备级调度器:它保证“什么时候可以开始”,但不会亲自展开每一个 RDMA 请求。

3. 16 个 ME 是真正的通信执行器

MTIA 300 包含两组、每组 8 个 ME。每个 ME 内部的 CPU-M 是一个 RISC-V 通信核,负责:

  • 从 HBM 取出子图;
  • 把子图展开为具体 WQE;
  • 检查 WQE 之间的依赖;
  • 把网络 WQE 投递给 NIC interface;
  • 把 copy/sum WQE 投递给 NMC;
  • 通过共享 completion queue 跟踪完成状态。

这相当于给通信建立了一套独立的微型控制处理器。多个 ME 可以并行处理不同子图,把一个 ring 切成多环,或把 AllToAllv 的数据切片分配到多个 NIC,以提高注入率。

4. NMC 把归约从 PE 阵列移到内存附近

NMC 支持 copy 和简单的 sum reduction,可处理 BF16、FP16 和 FP32。其内部以 FP32 做算术;输入/输出不是 FP32 时再重量化。论文给出的总归约/I/O 带宽约 2.8 TB/s

它的战略意义是让 AllReduce 的“Reduce”也不必返回通用计算阵列。NIC 搬数据,NMC 完成加法,ME 推进依赖,PE 阵列只负责模型计算。

但这也留下一个需要后续验证的问题:不同分块、ring 顺序与 FP32 累加后重量化,可能改变 BF16/FP16 结果的逐位确定性。论文没有给出数值误差、跨规模复现性或确定性训练测试。

5. Express Doorbell 用片上 SRAM 换启动延迟

普通 RDMA 提交流程先把 WQE 写入主机或设备内存中的队列,再敲 doorbell,NIC 随后读取 WQE 和数据。MTIA 300 的 Express Doorbell 把“写 WQE”本身变成触发动作:WQE 被写到特殊 doorbell 地址,NIC 直接收下并放入内部存储。

这样少了一次读取 WQE 的往返,但代价是 NIC 内部必须为 WQE 和 QP 保留有限 SRAM,无法无限缓存 queue pair。HCCL 因而按需创建、复用空闲 QP,并尽量让 collective 算法少依赖“堆更多 QP”来扩展性能。

三、HCCL 的编译式通信模型

1. 从 API 到 work packet

HCCL 同时接入 PyTorch c10d 和 torchcomms。应用调用一个 collective 后,控制面先通过 RDMA verbs 管理 QP、memory region 等资源,数据面再生成完整执行描述:

1
2
3
4
5
PyTorch collective
  → work packet(类似一次通信 kernel)
    → 多个可并行 subgraph
      → 顺序 WQE + 显式依赖
        → ME / NMC / NIC 执行

这个模型与传统“运行时边执行边决定下一步”不同。主机提前知道算法、地址、远端 key、分块和依赖,然后把相对静态的通信程序交给设备自治执行。对重复训练 step,已经编译的 work packet 可以缓存,重新入队的主机时间低于 10 μs。

从软件架构看,WQE 已经接近 MTIA 通信子系统的指令集。论文把它们分为三类:

WQE 类型代表操作执行位置用途
RDMA transferSend、Receive、Write、WriteWithImmediateNIC跨 rank 数据搬运
ComputeCopy、SumNMC本地数据重排与归约
Subgraph coordinationWait、Set、NOOP dependencyME/内存信号跨子图同步与条件触发

2. 依赖是模型的核心,而不是附属元数据

HCCL 支持 Fence、Sync、WQE Sync、Receive Sync 和 Send Sync。它们分别约束后一条 WQE、此前全部 WQE、指定 WQE、全部接收和全部发送。

以 ring AllReduce 为例,每一轮都必须确认:上一块数据已经发送、下一块数据已经接收、NMC 完成加法、临时 buffer 可以复用。如果把这些依赖放回主机处理,片上网络再快也会被控制往返淹没。HCCL 的关键是让 CPU-M 在本地推进依赖链。

3. SendSync 解决接收端未准备好的退避问题

Send/Receive 语义要求接收端预先发布 receive WQE。若发送到达时没有匹配接收,远端会返回 RNR(Receiver Not Ready)NAK,发送方进入逐步加长的退避,尾延迟可能显著增加。

HCCL 的 SendSync 让请求方先等待响应方信号,再发布 SEND。进一步优化时,只在 collective 的第一次传输使用 SendSync,后续由算法保证 receive 数量和 pipeline depth 匹配,以避免每轮都支付握手成本。

这是一处很典型的软硬件协同:不是把网络重试参数调得更激进,而是改变算法的初始同步协议,使“接收端准备状态”成为通信图的一部分。

四、训练路径:多 ME、拓扑感知与真正的计算通信重叠

1. 多 ME 并行解决单核推进能力

单个 CPU-M 是单核控制器。面对大 AllReduce 或 AllToAllv,HCCL 把数据切为多个子图,同时交给多个 ME;每个 ME 可驱动不同 NIC/NMC。这样做的目标不是增加数学并行度,而是让 WQE 生成、依赖推进和网络注入都不成为瓶颈。

2. 机架内外带宽不对称,算法必须分层

一个 rack 包含 16 个 MTIA 300 rank。小于等于 16 rank 的任务只使用 800 GB/s scale-up 网络;超过 16 rank 后,跨机架路径只有 200 GB/s。

朴素算法如果把所有 rank 一视同仁,会过早把大量数据压到 scale-out。HCCL 的拓扑感知算法先在机架内聚合或交换,再用更少的数据跨机架,最后在目标机架内扩散。论文报告 128-rank AllGather 可达到 838 GB/s 的 on-the-wire/bus bandwidth,虽然单颗芯片的 scale-out 预算只有 200 GB/s;这并不违反物理带宽,而是因为大量字节仍在更快的机架内链路上流动。

3. 940 GB/s 应该怎样解读

论文在单 scale-up domain 内报告最高 940 GB/s collective bandwidth。相对于初始配置 1 TB/s 的总理论 I/O,这是约 94% 的聚合链路利用水平,说明 ME 能持续给 NIC 喂 WQE,NMC 与 HBM 也没有在对应数据点首先饱和。

但它不是“每个 rank 都获得 940 GB/s 的有效模型数据吞吐”,也不能直接与不同库公布的 algorithm bandwidth 相比。collective 的 bus bandwidth 会按算法通信量换算;rank 数、数据规模、单向/双向链路统计和是否包含归约都会改变口径。

4. 0.5% 的价值高于峰值带宽本身

论文让一个大 GEMM 饱和 PE 阵列,同时在另一条 stream 连续运行 100 次 collective。在 16 rank 下,GEMM 吞吐波动最高约 1 TFLOP,即约 0.5%;主要剩余干扰来自 NIC 与计算共同访问 HBM。

这说明专用 ME 的真正收益是资源隔离:通信不会直接抢 PE,但仍会争用 HBM、缓存和片上网络。因此“完全卸载”不等于“完全无干扰”,只是把冲突从计算核迁移到内存系统。

五、推理路径:为什么又让 PE 参与通信

训练的大 collective 能隐藏主机编译和调度成本,推理的小消息则不行。论文把稳态控制路径拆成:

环节稳态开销
Host-to-device 描述复制17.1 ± 0.3 μs
Event 处理3.6 ± 0.1 μs
CPU-C 分派2.9 ± 0.1 μs
CPU-M 执行1.1 ± 0.1 μs

H2D 复制在训练中通常能放到并行 stream 隐藏;但对几十微秒级推理 collective,CPU-C、event 和 ME 的固定成本已经比数据传输本身更显眼。于是 HCCL 提供三种更激进的路径。

1. One-sided:PE 直接提交 PUT

PE 直接构造 RDMA WQE 并写入 Express Doorbell,ME 只负责接收 completion、维护计数,让 PE 查询完成状态。论文测得 PE 直接提交的固定软件开销约 450 ns

这条路径可以嵌入 fused kernel,省掉单独启动通信 kernel 的成本,但也意味着通信重新占用部分 PE。HCCL 并不是教条地坚持“所有通信都必须卸载”,而是根据消息粒度选择更短的路径。

2. Device-resident:动态元数据留在设备侧

MoE 或推荐推理中的 AllToAllv 大小和 offset 要等路由 kernel 完成后才能确定。传统流程必须让主机看到这些结果,再构造 collective,导致 graph break 和暴露的调度延迟。

HCCL 的 AllToAllvDynamic 接收指向设备内存的元数据指针。路由 kernel 写入 size/offset,ME 在真正发出 WQE 前读取并修改通信描述,不必重新走完整主机软件栈。

3. Device-triggered:提前排队,等待设备信号

仅把元数据放在设备上仍然要等 CPU-C 调度。device-triggered collective 允许调用者附加一个地址与比较条件:collective 可以预先在另一条 stream 排队,ME 甚至先发布 receive;等计算 kernel 把 semaphore 写成指定值后,通信立即开始,完成后再写另一个信号解锁后续计算。

这把“先算路由,再由主机启动通信”改成“通信已在设备上等待,路由完成只需写一个信号”。论文的 trace 中,一个 AllToAllvDynamic 在时间线上跨度 123 μs,但其中大部分是在等待,真正阻塞计算流约 31 μs。

4. 小消息最终受网络 RTT 限制

PE 上的 PUT 型 AllReduce 和 AllToAllv 在 8/16 rank、4-64 KB 区间达到约 5-6 μs,更大消息后延迟随数据量上升。作者判断这条路径已主要受网络 RTT 限制,继续优化软件的边际收益较小。

六、HCCL 与 NCCL 不能只看一张带宽图

维度Meta HCCL / MTIA 300NVIDIA NCCL / GPU(论文描述口径)
集合算法执行者专用 ME,归约由 NMC 完成GPU communication kernel 推进
NIC 位置网络 chiplet 集成在加速器封装GPU 与 NIC/交换结构协同,具体路径随平台变化
计算资源占用训练主路径不占 PE通常占用少量 SM 与片上资源
大消息策略多 ME、多子图、拓扑分层多 channel/ring/tree 与平台拓扑优化
小消息策略PE 单边 PUT、device-triggered低延迟 kernel、网络卸载及平台特定优化
主要优势强资源隔离、可编程通信子图成熟生态、跨多代 GPU 与网络平台部署
主要代价专用芯片面积/功耗、私有硬件耦合通信与应用可能竞争 SM/缓存/带宽

论文引用了另一项 MTIA 300 工作的对比:16 个以上加速器或消息超过 16 MB 时,MTIA 300/HCCL 有明显优势,作者归因于更大的 scale-up domain 和约 2.2 倍 scale-up 带宽;小消息则仍常由 H100/NCCL 占优。

但这不是严格的通信库同平台 A/B 测试。两套系统的芯片、内存、scale-up 拓扑、NIC 数量和软件成熟度均不同。它证明的是 MTIA 300 整体通信架构在 Meta 目标负载上有效,不能单独证明 HCCL 算法普遍优于 NCCL。

七、这篇论文最重要的六个技术启示

1. 集合通信正在变成一种专用处理器工作负载

ME 的 CPU-M、WQE、依赖和 completion queue 组合起来,已经很像一台通信处理器及其 ISA。未来 AI 加速器的差异化不只来自矩阵核,也来自“通信程序能否独立运行”。

2. Near-memory reduction 是内存系统设计,不只是网络功能

AllReduce 同时消耗网络和内存带宽。把 sum 放到 NMC 可以避免数据为了加法进入 PE grid,但 NIC 仍会与 GEMM 争用 HBM。下一阶段优化重点会从“是否占计算核”转向 QoS、缓存分区、HBM 调度和片上 NoC 隔离。

3. 非对称网络要求编译器理解物理拓扑

scale-up 800 GB/s、scale-out 200 GB/s 的 4:1 差距决定了 collective 的分块和阶段。算法选择不能只知道 rank 数,还要知道 rack 边界、链路角色、可用 NIC 和数据分布。

4. MoE 把动态性推到了通信层

token 路由之后才知道 AllToAllv 元数据。若通信图不能在设备侧读取动态 size/offset,就会频繁 graph break。AllToAllvDynamic 说明通信 runtime 正在向编译器 IR 与设备运行时的交界处移动。

5. 最优卸载程度随消息大小变化

大消息适合 ME/NMC 完全卸载,因为固定调度成本可被带宽收益摊薄;小消息适合 PE 直接 doorbell,因为一条 WQE 的 450 ns 构造成本低于穿过完整控制路径。正确设计不是“全卸载”或“全 kernel”,而是按数据规模和依赖动态选择。

6. 可观测性会影响被测性能

论文指出 event timer 本身带来接近 6 μs 的开销,因此端到端 benchmark 使用更细粒度的计数器,排除通常能被重叠的 H2D 和 CPU-C 调度。这是合理的稳态测量,却也提醒读者:应用实际看到的延迟可能包含更多软件层成本。

八、论文还没有回答什么

1. 缺少真实模型端到端加速比例

论文展示真实负载的 collective 分布,但核心性能主要来自 synthetic benchmark、PARAM 与 trace。尚未给出同一推荐模型在不同 HCCL 版本或不同通信架构下的 step time、吞吐/瓦、训练成本变化。

2. 没有尾延迟与拥塞数据

平均或中位带宽不能描述 P99/P99.9。AllToAllv 对 rank skew、热点和 RNR 退避特别敏感;跨机架 oversubscription、背景流量和坏链路降级没有展开。

3. 故障恢复与可运维性没有展开

编译后的子图包含地址、QP 和依赖。发生 rank failure、QP reset、链路切换或 communicator 缩容时,哪些状态需要重建?缓存 work packet 如何失效?论文重点是性能,不是容错协议。

4. 专用硬件的面积、功耗与机会成本不透明

16 个 ME、NMC、两个 network chiplet、NIC SRAM 和封装链路都不是免费的。论文没有量化这些模块的面积和功耗,也未给出“节省的 PE 时间”是否足以覆盖专用通信硬件成本。

5. 数值语义需要更完整验证

NMC 以 FP32 运算再重量化有利于精度,但 reduction tree/ring 顺序会改变浮点舍入。确定性训练、异常值处理、不同 rank 数下结果一致性以及 FP8/更低精度支持均未报告。

6. 生态可移植性有限

HCCL 的优势建立在 MTIA 300 的 ME、NMC、Express Doorbell 和定制 NIC 上。c10d/torchcomms 提供了上层接口兼容,但底层优化很难直接迁移到通用 GPU。它是垂直整合的收益,也是平台锁定的代价。

九、对 AI 基础设施的产业意义

HCCL 说明自研加速器竞争已经进入“计算核之外”的阶段。推荐与 MoE 负载中,embedding/token 交换可能比矩阵乘更早成为瓶颈;如果芯片仍把通信当作主机和外置 NIC 的附属功能,更多 FLOPS 不一定转化为更高模型吞吐。

对系统设计者,论文给出三条直接路线:

  • 在封装或芯片层把网络接近 HBM,减少 PCIe/主机往返;
  • 为 collective 提供独立的调度与归约资源,释放通用计算核;
  • 让通信 runtime 理解 graph、动态元数据、机架拓扑和设备信号量。

对产业判断则需要克制:940 GB/s 并不意味着 Meta 已经在通用 AI 训练上全面超越 GPU 生态。MTIA 300 针对 Meta 自己的推荐负载、网络和软件栈深度定制;它真正证明的是,在工作负载足够大且稳定时,垂直整合能够把通信从软件库问题提升为芯片与数据中心共同优化的问题。

我的结论

这篇论文最精彩的地方,是同时展示了“完全卸载”的收益和边界。

训练侧,HCCL 把 collective 编译成通信子图,由 16 个 ME 推进、NMC 归约、片上 RDMA NIC 传输,实现接近链路上限的吞吐,并把并发 GEMM 影响压到约 0.5%。推理侧,同一套完整路径因固定调度成本过高,又必须允许 PE 直接发 WQE、让元数据驻留设备并用信号量触发 collective,才能进入 6 μs 以下。

这并不矛盾,反而是论文最重要的工程结论:通信卸载不是一个开关,而是一组根据消息大小、动态性、拓扑和计算重叠程度选择的执行路径。 HCCL 的价值不是复制 NCCL,而是让 MTIA 300 在硬件层拥有这种选择权。

论文与延伸阅读

本文为公开论文的技术研究与评论,不构成投资建议。论文及原图著作权归原作者所有;本站原创示意图不代表 Meta 或论文作者背书。

本文由作者按照 CC BY 4.0 进行授权