Maia 200: A Software Defined Dataflow System for Large-scale AI Acceleration
Sherry Xu, Marco Heddes, Jackson Peng, Tom Savell, Monica Tang, Prashant Ranjan, Jesse Benson, Ofer Dekel, Saurabh Dighe, Anupama Kurpad, Artour Levin, Matthew Mattina, George Petre, Cheng Tang, Yuan Yu, Li Zhang, Torsten Hoefler
cs.AR, cs.AI, cs.DC, cs.ET, cs.LG
2026-08-25
微软第二代推理加速器Maia 200把数据搬运写成可编程数据流,750W下给出FP4峰值10145 Tflop/s;矩阵乘算力区打到99.69%,7B模型生成2434 tokens/s。
推理已经吃掉全球大部分加速器周期。微软给的保守估计:每天至少 1.2 万亿 token;8B 模型对应约 6.85 exaflop/s 持续算力,400B 则到 0.3 zettaflop/s。瓶颈不在再堆几个 tensor core,而在数据怎么搬、搬完怎么立刻算。GPU 那套 SIMT 把线程当一等公民,DMA 和 warp 调度多半藏在固件里,专家只能靠 warp specialization 把访存和计算硬拆到不同 warp 上。
Maia 200 是微软第二代自研加速器,已经在 Azure 集群量产。它把这套矛盾收成一个抽象机:Software Defined Locally Accessed Dataflow Architecture,简称 SDLA。控制流和数据流拆开编程,片上内存按功能单元就近摆。论文要回答的是,这种契约能不能在真实硅片上跑出接近峰值的效率。
SDLA 仿 Flynn 分类,按「数据从哪取」和「搬运由谁发」切四象限。CPU 共享内存是 LSGA,GPU 与 Cerebras 是 LSLA,带可编程 DMA 的 CPU 是 SDGA。Maia 落在 SDLA:本地寻址加软件定义数据流。三条原则写进契约:给程序员暴露并行的搬运、转换、同步引擎;管理分布式专用内存;尽量做成可规划的确定性性能。
芯片是 TSMC 3nm,超过 1400 亿晶体管,近光罩尺寸 26×33 mm,CoWoS-S 封装 75×75 mm,SoC TDP 750 W,6 栈 HBM3e,带宽 7 TiB/s。四集群,每集群 9 或 10 个 Tile;每 Tile 一对 Tile Tensor Unit(TTU)和 Tile Vector Processor,外加 3 MiB 专用 SRAM。TTU 每周期 65536 次 FP4 MAC,2 GHz 时单单元 FP4 约 262 Tflop/s。控制用 C/C++ 写在 SoC、集群、Tile 三层处理器上,数据路径走 Dataflow ISA:一条宏指令最多等两个信号量,完成后最多打两个信号量。片上 SRAM 占比不到 20%。作者用缓存 30% 到 35% 的 tag 开销解释为什么不用 cache:AI 负载大多是 data oblivious 的,访存能在编译期排好。
网络侧 28 个 400 Gbps 以太网 ANC,合计 1.4 TB/s 全双工,走微软 ATLv2,后来影响了 Ultra Ethernet。6144 卡是当前推理部署的设计点,标称 62 exaflop/s FP4、43 PiB 内存、8.6 PiB/s 以太网。
峰值:FP4 10145 Tflop/s、FP8 5072 Tflop/s,750 W 下分别是 13.3 和 6.7 Tflop/W。内部数据称相对微软机队里其他 AI 加速器省 30% TCO、15% 能耗。论文明确不做公开 GPU 对照。
评测开 9 Tile/集群、2 GHz、未降频,BF16 峰值 1180 Tflop/s,FP8 4785 Tflop/s。6143 组推理常见矩阵规模下,输入从 HBM 反复装入再写回:
| 设置 | 指标 | 结果 |
| BF16 计算受限 | 相对峰值 | 最高 99.69% |
| BF16 计算量 >58 Tflop | 相对峰值 | >90% |
| BF16 访存受限 | 相对峰值带宽 | 最高 51.4% |
| FP8 计算受限 | 相对峰值 | 最高 96% |
| 8 卡 Allgather | 相对延迟 / 带宽上界 | 78% / 94% |
端到端跑 Qwen 2.5 7B 的 decode:前文 16384 token,生成第 16385 个,KV cache 939.52 MiB。PyTorch 调标准 kernel、未做算子融合,2434 tokens/s,超过估算上限的 70%。
对在 GPU 上写 FlashAttention 和 TMA 的人,这篇把「手工排数据搬运」从技巧升级成机器契约。NVIDIA Hopper 的 TMA 仍要跟 warp 系统缠在一起,Blackwell 为此把 WGMMA 改成 UMMA、断了兼容。Maia 从第一天就把本地 scratchpad 和异步 DMA 当一等公民,换来矩阵乘在计算受限区接近满峰值。代价是编程模型更像空间架构:高层能走 PyTorch 和 Triton,关键 kernel 要下到 C++ 去排信号量。
TCO 和能效数字来自微软内部对照,外人无法复核。能复核的是:在作者自己的屋顶线上,计算受限区几乎打满,访存区只吃到一半带宽。
软件栈几乎没写,编译器如何自动管理 scratchpad 仍是黑盒。矩阵乘和 Allgather 都是微基准;端到端只用了 7B 的 decode,没有 prefill,没有 MoE,没有多卡生成吞吐。作者自己说有意不做直接 GPU 对比。30% TCO、15% 能耗没有披露对照芯片、利用率假设和电价。6144 卡是设计点,论文没有给出这个规模的实测。对动态 batch、稀疏、agent 工作流这类非 oblivious 负载,SDLA 的静态规划优势会打折。文中只给了 MoE 路由可以在 Tile 内几拍完成的机制描述,没有速度数字。