Many Processors, Still One Computer: The Nested Parallel von Neumann Architecture and Nested BSP
Heng Liao
cs.DC, cs.AR
2026-09-15
华为把 BSP 递归嵌套、与逐层嵌套的硬件对齐,一个 SuperNode 装下 8000+ 节点、全机 barrier 低于 10 微秒
大模型把集群规模推到十万卡、百万卡,但体系结构的基本盘还是八十年前那套:一台机器、一个指令流。HPC 社区用 BSP(Bulk Synchronous Parallel,整体同步并行)加 MPI+OpenMP 混合栈应付多处理器,前提是「机器是平的」:一套全局 rank、一个全网 barrier、一个带宽参数描述整台机器。物理机从来不平,封装内两个核和隔着机房的两排机架,带宽延迟差几个数量级,平坦抽象只是把层级藏起来,代价记在性能账上。到百万处理器,全局 barrier 的耗时被最远最慢的参与者钉死,链路故障从异常变成日常,「主机指挥、设备服从」的主从设计又让中心在大规模下先垮。
两个配套扩展。
软件侧是 Nested BSP:把经典 BSP 的超步(本地计算、交换聚合、barrier)递归嵌套,外层超步的本地计算本身可以是更小范围的 BSP 计算。AI 训练早就在手写这个结构:TP(tensor parallel)每层同步多次、最吃延迟;EP 的 all-to-all 突发流量吃双分带宽;PP 点对点传激活,最能容忍延迟;DP 每个优化器步才归约一次。从内到外,同步越来越稀、越来越粗,这正是嵌套硬件要吃掉的属性。Nested BSP 只加一条硬约束:每层参与单位对等,没有必须路过的中心。
硬件侧是嵌套并行冯诺依曼架构:封装、板卡、机架、SuperNode、数据厅、自治区逐层嵌套,一条 Unified Bus 用同一套内存语义协议从封装直通自治区。支撑它的六个工程决策:协议端到端统一,旧方案里大型集群 80% 以上的能量花在搬数据上;访存语义把一次通信往返从几十微秒压到约 100 纳秒;CPU、NPU、内存、网卡上总线平权;电近光远,光电转换边界用 NPO 从约 1 米推近到 10 毫米,成本还比 CPO 低四成以上;不追兆瓦机架,算力随面积涨、I/O 和供电只随周长涨;每代只押少数硬仗,二十项各九成胜率的难题一起上,联合成功率只剩约八分之一。
负载适配的判别标准只有一条:问题能否切成自身的缩小副本,且子问题之间的接口比内部工作量增长得慢。矩阵乘、注意力、多重网格都过;全量 all-to-all 的 3D FFT、找不到好分割子的 scale-free 图遍历过不了,出路是关进单个 SuperNode,别往外摊。τ Scaling law 描述每层并行对时间的折叠,一层折一点,六层相乘。
立场论文,没有训练基准,给的是系统规格:
| 指标 | 数值 |
| 单次通信往返 | 数十微秒 → 约 100 纳秒,约 500 倍 |
| 单芯片 I/O 带宽 | 8 Tbps 量级 |
| SuperNode 规模 | 8000+ 节点 |
| 聚合内存带宽 | 6.7 PB/s |
| 全互联带宽 | 400 Tbps |
| 全机 barrier | <10 微秒 |
论文未给出与 InfiniBand 集群或 NVLink domain 的实测对照,以上是华为自家系统的规格陈述;256K 节点级系统「正在部署」,同样没有数据佐证。
对做训练框架和集群调度的人,这篇把「并行维度怎么摆」从调优经验上升成结构问题:每个并行维度就是一个有独立通信代价和同步边界的 BSP 层,与硬件层一一对应。今天 device mesh 的映射靠配置文件手工维护,改造方向是运行时自带嵌套机器模型,把「TP 组从一块板扩到一个 SuperNode」变成重映射而非重写。华为开源的 PyPTO(与 Triton、TileLang 同类的 tile 级语言)按这个思路做,而且不止管 kernel,一直管到节点和集群。
对 HPC 还有个附带论点:SuperNode 因 AI 的投入在长大,平坦负载能塞进的单一紧耦合域随之变大,科学计算可能白捡一个自己养不起的机器。